diff --git a/search-index.js b/search-index.js
index 7ddb2f0b7..0c2a91918 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1 +1 @@
-antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1-1",[0,43.715,1,26.872]],["name/1-1",[]],["text/1-1",[]],["component/1-1",[]],["title/1-2",[2,43.715,3,46.979]],["name/1-2",[]],["text/1-2",[]],["component/1-2",[]],["title/1-3",[4,33.918]],["name/1-3",[]],["text/1-3",[]],["component/1-3",[]],["title/1-4",[5,17.367,6,34.335]],["name/1-4",[]],["text/1-4",[]],["component/1-4",[]],["title/1-5",[6,34.335,7,24.761]],["name/1-5",[]],["text/1-5",[]],["component/1-5",[]],["title/1-6",[8,55.175]],["name/1-6",[]],["text/1-6",[]],["component/1-6",[]],["title/1-7",[9,24.68,10,26.41,11,44.834]],["name/1-7",[]],["text/1-7",[]],["component/1-7",[]],["title/1-8",[12,45.863]],["name/1-8",[]],["text/1-8",[]],["component/1-8",[]],["title/1-9",[13,47.462]],["name/1-9",[]],["text/1-9",[]],["component/1-9",[]],["title/1-10",[14,36.369]],["name/1-10",[]],["text/1-10",[]],["component/1-10",[]],["title/1-11",[5,17.367,15,41.949]],["name/1-11",[]],["text/1-11",[]],["component/1-11",[]],["title/1-12",[5,15.121,16,20.442,17,26.144]],["name/1-12",[]],["text/1-12",[]],["component/1-12",[]],["title/1-13",[18,17.472,19,31.638]],["name/1-13",[]],["text/1-13",[]],["component/1-13",[]],["title/1",[20,18.118,21,36.723]],["name/1",[17,1.833]],["text/1",[2,2.02,3,2.171,4,2.135,5,2.59,6,3.809,7,3.27,9,1.31,10,2.804,12,1.031,13,1.867,14,2.29,15,2.585,16,2.713,17,2.775,18,2.746,20,2.722,21,0.969,22,1.263,23,1.209,24,1.905,25,2.792,26,1.82,27,0.943,28,3.068,29,2.331,30,1.82,31,1.554,32,1.107,33,3.214,34,3.131,35,1.53,36,0.697,37,1.275,38,1.107,39,2.904,40,2.904,41,3.462,42,2.116,43,1.18,44,1.82,45,0.943,46,1.971,47,1.412,48,2.02,49,1.673,50,1.554,51,2.331,52,1.814,53,0.809,54,0.809,55,1.13,56,1.475,57,2.337,58,2.29,59,1.53,60,1.359,61,1.642,62,1.82,63,2.096,64,2.754,65,0.709,66,9.923,67,1.673,68,1.789,69,0.659,70,2.988,71,3.009,72,0.826,73,2.804,74,2.297,75,1.154,76,0.969,77,1.322,78,2.715,79,1.938,80,1.748,81,1.66,82,1.673,83,1.673,84,2.27,85,1.31,86,1.412,87,0.864,88,2.49,89,1.014,90,2.331,91,1.286,92,1.031,93,1.359,94,0.722,95,0.943,96,1.628,97,2.677,98,2.171,99,3.257,100,2.22,101,2.232,102,1.673,103,2.813,104,1.673,105,1.673,106,1.475,107,2.367,108,2.232,109,1.586,110,1.13,111,1.087,112,2.959,113,2.471,114,2.116,115,2.379,116,1.087,117,2.066,118,1.835,119,1.804,120,2.652,121,2.367,122,1.359,123,1.359,124,1.359,125,1.359,126,1.412,127,0.826,128,1.462,129,1.586,130,1.978,131,1.416,132,2.821,133,1.431,134,2.232,135,2.066,136,1.412,137,1.087,138,0.818,139,1.315,140,0.709,141,1.475,142,1.66,143,3.086,144,1.66,145,2.02,146,1.867,147,1.087,148,0.854,149,1.475,150,1.18,151,1.412,152,0.77,153,2.171,154,1.938,155,1.902,156,1.867,157,1.902,158,2.379,159,1.804,160,0.999,161,1.554,162,2.406,163,1.13,164,1.412,165,1.048,166,0.984,167,1.107,168,1.18,169,0.826,170,0.801,171,2.066,172,1.067,173,1.82,174,1.554,175,2.232,176,0.532,177,1.209,178,1.24]],["component/1",[179,0.571]],["title/2-1",[148,32.348,180,68.937]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["title/2-2",[148,28.165,181,51.246,182,42.056]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["title/2",[183,26.41,184,29.895,185,60.022]],["name/2",[186,4.208]],["text/2",[5,1.505,7,1.401,10,2.629,12,2.21,15,3.635,18,2.345,20,1.57,21,2.078,22,1.547,24,1.365,35,3.486,36,1.495,45,2.021,52,1.666,53,1.734,57,1.329,58,1.752,65,1.521,67,3.813,68,1.369,69,1.412,70,1.843,76,2.078,77,1.619,83,2.049,90,2.141,96,2.289,97,3.813,100,1.699,112,1.682,115,2.914,119,2.21,120,2.309,127,5.354,128,1.79,129,1.943,133,2.684,137,2.329,140,1.521,143,2.078,148,1.83,149,3.161,160,2.141,166,2.109,176,1.747,178,2.658,183,2.629,187,3.901,188,3.975,189,1.338,190,2.818,191,3.571,192,1.446,193,2.818,194,4.262,195,3.901,196,3.901,197,5.1,198,3.026,199,3.901,200,5.1,201,3.557,202,3.901,203,2.591,204,3.331,205,3.867,206,3.901,207,3.901,208,1.83,209,1.435,210,2.174,211,3.901,212,3.901,213,3.901,214,3.901,215,6.198,216,3.557,217,3.901,218,3.901,219,2.53,220,3.662,221,3.901,222,3.557,223,3.901,224,1.716,225,3.901,226,3.901,227,1.81,228,2.914,229,3.901,230,2.591,231,3.278,232,3.901,233,3.901,234,2.287,235,3.901,236,3.901,237,2.287,238,3.331,239,3.026,240,3.901,241,3.331,242,3.901,243,3.901,244,2.733,245,5.447,246,3.331,247,2.658,248,3.901,249,1.752,250,3.901,251,3.901,252,3.331,253,2.53,254,3.901,255,3.901,256,3.901,257,1.79,258,3.901,259,3.901,260,1.79,261,4.635,262,3.161,263,1.851,264,3.901,265,3.901,266,3.901,267,2.329,268,3.901,269,3.901,270,3.901,271,2.474]],["component/2",[179,0.571]],["title/3-1",[152,29.157,188,27.586]],["name/3-1",[]],["text/3-1",[]],["component/3-1",[]],["title/3-2",[70,21.266,152,29.157]],["name/3-2",[]],["text/3-2",[]],["component/3-2",[]],["title/3",[13,35.186,20,15.775,25,17.789]],["name/3",[17,1.833]],["text/3",[0,2.21,1,1.359,5,2.226,7,1.252,10,1.533,14,1.566,18,2.342,20,2.846,21,2.916,22,3.504,23,2.315,24,1.908,25,3.21,35,1.674,46,2.54,48,2.21,66,9.517,67,3.55,68,3.837,70,2.952,71,1.997,83,1.83,84,2.236,87,1.654,91,1.407,100,2.384,131,2.433,140,1.359,146,3.209,152,4.343,167,2.121,168,2.26,183,1.533,184,2.726,188,4.334,189,2.319,209,2.486,224,1.533,230,3.636,231,3.004,249,1.566,260,1.599,263,2.598,272,3.178,273,4.64,274,3.268,275,3.835,276,3.178,277,2.315,278,1.781,279,2.976,280,3.485,281,3.178,282,2.603,283,2.081,284,3.485,285,3.485,286,2.704,287,3.178,288,4.607,289,2.824,290,3.848,291,2.603,292,2.164,293,2.315,294,3.636,295,2.704,296,3.178,297,2.976,298,3.178,299,2.121,300,1.282,301,3.004,302,3.485,303,3.331,304,1.241,305,2.26,306,1.913,307,2.517,308,3.471,309,2.442,310,1.884,311,2.976,312,3.398,313,2.693,314,3.268,315,2.164]],["component/3",[179,0.571]],["title/4-1",[77,33.601]],["name/4-1",[]],["text/4-1",[]],["component/4-1",[]],["title/4-2",[96,31.027]],["name/4-2",[]],["text/4-2",[]],["component/4-2",[]],["title/4-3",[7,29.08]],["name/4-3",[]],["text/4-3",[]],["component/4-3",[]],["title/4-4",[16,20.442,24,10.068,73,19.298]],["name/4-4",[]],["text/4-4",[]],["component/4-4",[]],["title/4-5",[80,44.429]],["name/4-5",[]],["text/4-5",[]],["component/4-5",[]],["title/4-6",[82,36.205,83,36.205]],["name/4-6",[]],["text/4-6",[]],["component/4-6",[]],["title/4-7",[316,60.476]],["name/4-7",[]],["text/4-7",[]],["component/4-7",[]],["title/4-8",[97,42.521]],["name/4-8",[]],["text/4-8",[]],["component/4-8",[]],["title/4-9",[317,69.125]],["name/4-9",[]],["text/4-9",[]],["component/4-9",[]],["title/4-10",[318,69.125]],["name/4-10",[]],["text/4-10",[]],["component/4-10",[]],["title/4-11",[319,53.776]],["name/4-11",[]],["text/4-11",[]],["component/4-11",[]],["title/4-12",[189,23.654,300,25.356]],["name/4-12",[]],["text/4-12",[]],["component/4-12",[]],["title/4-13",[304,15.63,320,22.48]],["name/4-13",[]],["text/4-13",[]],["component/4-13",[]],["title/4",[24,10.068,73,19.298,74,23.807]],["name/4",[24,0.215,52,0.547,73,0.412,74,0.508,75,0.813]],["text/4",[0,1.205,1,1.712,4,0.796,5,1.769,6,0.946,7,3.182,13,1.114,16,2.657,18,2.295,19,1.518,20,2.707,23,1.262,24,1.888,33,1.668,35,0.912,36,2.691,38,1.156,40,3.016,41,1.668,42,3.953,45,1.713,52,4.362,57,1.126,58,2.674,59,0.912,60,2.47,65,1.289,69,2.155,70,1.02,72,0.863,73,3.021,74,3.727,75,1.205,76,4.719,77,4.307,78,2.339,79,3.196,80,4.605,81,4.004,82,3.431,83,3.431,84,1.094,85,2.447,87,2.084,91,3.149,94,1.742,96,3.657,97,3.907,98,4.056,117,3.86,148,0.892,169,0.863,175,1.331,176,1.741,184,4.51,188,1.323,208,0.892,219,2.145,224,0.836,246,1.622,293,1.262,300,0.699,301,4.28,304,0.431,305,3.86,306,1.043,316,3.923,317,4.484,318,3.749,319,3.488,321,1.84,322,2.382,323,2.717,324,1.474,325,1.732,326,2.16,327,2.68,328,3.914,329,2.53,330,0.946,331,5.252,332,0.781,333,2.566,334,1.905,335,1.54,336,1.732,337,1.732,338,0.819,339,2.197,340,1.905,341,2.566,342,1.474,343,1.622,344,1.9,345,1.331,346,3.407,347,2.102,348,1.843,349,1.9,350,1.9,351,1.815,352,1.622,353,0.902,354,2.68,355,2.317,356,0.923,357,2.145,358,2.823,359,0.984,360,2.68,361,2.389,362,2.197,363,3.307,364,1.773,365,1.474,366,2.691,367,1.474,368,1.9,369,1.9,370,1.9,371,1.622,372,1.331,373,1.905,374,0.923,375,1.295,376,1.84,377,6.402,378,1.114,379,1.419,380,1.607,381,2.41,382,2.848,383,0.984,384,3.016,385,1.043,386,0.998,387,1.278,388,0.923,389,1.732,390,1.156,391,0.71,392,1.419,393,1.076,394,1.54,395,1.059,396,1.54,397,0.958,398,1.331,399,1.474,400,1.372,401,0.667,402,0.667,403,0.667,404,0.667,405,0.667,406,0.667,407,0.667,408,0.667,409,0.667]],["component/4",[179,0.571]],["title/5-1",[304,15.63,320,22.48]],["name/5-1",[]],["text/5-1",[]],["component/5-1",[]],["title/5",[20,15.775,84,19.854,85,24.68]],["name/5",[84,0.886,85,1.101]],["text/5",[1,1.211,5,2.225,9,2.054,10,1.367,12,1.759,16,2.445,17,3.126,18,2.238,20,0.816,24,1.051,29,2.741,45,1.609,46,1.441,52,1.326,60,2.32,65,1.211,67,1.631,69,1.808,70,0.958,71,1.823,74,1.232,84,2.374,85,4,86,2.409,87,1.474,94,4.139,97,1.631,114,2.063,119,1.759,127,2.268,128,3.294,143,1.654,145,1.969,147,1.854,160,2.741,166,1.679,182,2.176,192,1.152,194,1.509,209,1.142,227,1.441,249,1.395,260,4.053,263,1.474,290,1.353,304,0.704,323,1.082,326,1.528,328,2.784,332,2.054,334,1.789,347,1.999,348,4.001,353,3.733,358,2.652,364,2.017,376,3.52,387,1.93,391,2.94,401,1.09,402,1.09,403,1.09,404,1.09,405,1.09,406,1.09,407,1.09,408,1.09,409,1.09,410,2.063,411,2.652,412,3.106,413,2.517,414,3.623,415,2.063,416,2.832,417,3.973,418,2.243,419,2.652,420,3.106,421,2.409,422,5.283,423,7.661,424,2.652,425,1.928,426,2.176,427,2.652,428,2.832,429,3.392,430,3.5,431,2.832,432,2.652,433,6.597,434,2.832,435,4.39,436,2.409,437,3.106,438,1.491,439,2.073,440,1.821,441,3.106,442,3.106,443,2.832,444,2.176,445,3.404,446,2.832,447,2.832,448,2.32,449,2.832,450,3.106,451,4.048,452,4.264,453,2.652,454,2.063,455,2.832,456,1.89,457,1.928,458,4.995,459,2.832,460,2.832,461,2.832,462,3.106,463,1.731,464,2.832,465,3.106,466,2.832,467,2.784,468,2.832,469,2.488,470,3.106,471,3.167,472,2.243,473,1.731,474,1.821,475,2.32,476,6.128,477,2.832,478,3.106,479,4.995,480,2.409,481,3.106,482,2.014,483,3.106,484,3.106,485,2.517,486,2.32,487,4.048,488,1.679,489,3.106,490,2.32,491,3.106,492,3.106,493,1.679,494,2.652,495,2.652,496,2.117,497,2.832,498,2.014,499,2.117,500,2.832,501,2.832,502,2.409,503,2.832,504,2.832,505,3.608,506,2.832,507,2.117,508,2.832]],["component/5",[179,0.571]],["title/6-1",[58,26.963,96,23.002,365,46.565]],["name/6-1",[]],["text/6-1",[]],["component/6-1",[]],["title/6-2",[58,26.963,96,23.002,306,32.938]],["name/6-2",[]],["text/6-2",[]],["component/6-2",[]],["title/6-3",[91,27.834,96,26.419]],["name/6-3",[]],["text/6-3",[]],["component/6-3",[]],["title/6-4",[96,26.419,509,37.263]],["name/6-4",[]],["text/6-4",[]],["component/6-4",[]],["title/6-5",[96,23.002,414,25.885,510,33.456]],["name/6-5",[]],["text/6-5",[]],["component/6-5",[]],["title/6-6",[96,20.368,127,24.13,511,26.144,512,31.157]],["name/6-6",[]],["text/6-6",[]],["component/6-6",[]],["title/6-7",[58,26.963,96,23.002,153,40.904]],["name/6-7",[]],["text/6-7",[]],["component/6-7",[]],["title/6-8",[91,27.834,96,26.419]],["name/6-8",[]],["text/6-8",[]],["component/6-8",[]],["title/6-9",[96,26.419,509,37.263]],["name/6-9",[]],["text/6-9",[]],["component/6-9",[]],["title/6-10",[96,23.002,414,25.885,510,33.456]],["name/6-10",[]],["text/6-10",[]],["component/6-10",[]],["title/6-11",[58,26.963,96,23.002,120,23.198]],["name/6-11",[]],["text/6-11",[]],["component/6-11",[]],["title/6-12",[91,27.834,96,26.419]],["name/6-12",[]],["text/6-12",[]],["component/6-12",[]],["title/6-13",[513,47.462]],["name/6-13",[]],["text/6-13",[]],["component/6-13",[]],["title/6-14",[96,26.419,509,37.263]],["name/6-14",[]],["text/6-14",[]],["component/6-14",[]],["title/6-15",[95,27.531,310,28.729,514,26.144,515,41.232]],["name/6-15",[]],["text/6-15",[]],["component/6-15",[]],["title/6-16",[29,37.83,514,33.91]],["name/6-16",[]],["text/6-16",[]],["component/6-16",[]],["title/6-17",[84,26.781]],["name/6-17",[]],["text/6-17",[]],["component/6-17",[]],["title/6-18",[97,36.205,138,30.967]],["name/6-18",[]],["text/6-18",[]],["component/6-18",[]],["title/6-19",[58,26.963,96,23.002,364,24.234]],["name/6-19",[]],["text/6-19",[]],["component/6-19",[]],["title/6-20",[58,23.875,96,20.368,176,15.547,364,21.459]],["name/6-20",[]],["text/6-20",[]],["component/6-20",[]],["title/6-21",[189,23.654,300,25.356]],["name/6-21",[]],["text/6-21",[]],["component/6-21",[]],["title/6-22",[304,15.63,320,22.48]],["name/6-22",[]],["text/6-22",[]],["component/6-22",[]],["title/6",[5,13.39,20,13.968,58,23.875,96,20.368]],["name/6",[52,0.839,58,0.883,96,0.753]],["text/6",[1,0.266,5,1.88,6,0.339,9,0.28,13,0.399,14,0.306,16,1.463,18,2.032,19,1.658,20,1.641,23,0.453,24,1.377,25,0.383,27,0.353,29,2.681,32,0.415,33,0.344,34,0.368,35,0.887,36,0.496,38,0.787,46,0.857,49,2.834,51,3.526,52,1.835,54,0.575,58,3.803,59,1.128,61,0.263,63,0.28,64,2.342,65,1.258,68,1.508,69,2.656,70,0.21,71,2.054,73,1.037,74,0.932,75,1.171,76,2.875,77,1.499,79,1.963,80,1.54,82,0.679,83,0.358,84,0.428,85,0.532,87,1.332,88,0.399,91,2.361,92,1.828,94,2.141,95,2.055,96,3.852,97,0.358,102,0.358,103,0.679,104,0.679,118,0.745,120,2.73,127,2.089,133,0.306,137,0.407,138,1.449,140,1.793,148,0.607,153,3.984,154,3.133,155,2.156,159,0.386,160,1.77,163,0.803,165,1.353,166,0.368,167,0.415,169,0.309,170,1.034,176,2.401,183,1.034,184,0.339,188,2.936,191,0.908,192,1.339,194,1.141,209,0.864,219,0.839,220,0.344,224,1.589,227,0.6,231,0.374,237,0.758,239,0.529,246,1.577,249,0.83,257,0.594,260,0.848,273,0.38,274,0.407,278,0.348,286,0.529,287,0.621,290,0.297,291,0.966,292,0.423,293,2.853,295,1.004,296,1.18,304,0.154,306,4.026,310,2.64,320,0.222,323,1.124,324,1.004,325,0.621,329,0.745,332,2.642,335,0.552,338,1.984,340,0.393,347,1.841,348,0.38,351,0.374,353,1.332,356,1.928,360,3.215,364,3.481,365,2.802,366,0.496,373,0.393,374,1.141,376,0.984,380,0.897,381,1.54,383,1.671,385,1.013,386,0.679,387,4.552,388,1.928,390,1.124,391,3.068,393,0.386,397,0.653,398,0.906,401,0.239,402,0.239,403,0.239,404,0.239,405,0.239,406,0.239,407,0.239,408,0.239,409,0.239,410,0.453,414,1.558,415,1.227,417,0.432,422,2.013,425,0.423,426,0.477,429,0.294,433,0.509,438,0.887,439,1.499,452,1.577,456,0.415,463,0.38,467,1.309,469,1.607,471,2.29,472,0.934,474,1.377,476,1.105,482,0.442,490,0.509,496,0.464,509,4.386,510,3.008,511,1.155,512,2.117,513,1.377,514,2.113,515,0.529,516,1.433,517,0.464,518,0.621,519,1.294,520,0.681,521,0.681,522,0.859,523,0.552,524,0.882,525,0.681,526,1.928,527,0.621,528,3.008,529,2.565,530,0.681,531,1.755,532,1.046,533,2.667,534,2.142,535,1.294,536,1.18,537,1.684,538,0.681,539,0.582,540,0.582,541,3.224,542,0.772,543,0.681,544,3.226,545,0.432,546,1.56,547,1.004,548,0.966,549,3.135,550,2.349,551,1.38,552,1.294,553,0.906,554,2.027,555,1.294,556,1.105,557,0.492,558,1.18,559,3.084,560,2.972,561,1.147,562,0.966,563,1.251,564,1.294,565,1.697,566,1.294,567,1.004,568,1.416,569,1.048,570,1.697,571,0.509,572,0.582,573,2.142,574,1.294,575,0.621,576,1.105,577,0.745,578,0.509,579,0.552,580,0.492,581,0.681,582,0.529,583,1.847,584,0.966,585,0.368,586,0.348,587,0.492,588,1.294,589,1.18,590,3.226,591,1.294,592,1.004,593,0.432,594,0.681,595,1.124,596,0.882,597,2.531,598,1.676,599,0.477,600,0.839,601,0.582,602,1.847,603,0.681,604,0.681,605,0.681,606,0.681,607,0.621,608,0.582,609,0.582,610,0.582,611,0.582,612,0.621,613,0.492,614,0.464,615,1.56,616,0.681,617,0.386,618,0.464,619,0.442,620,0.509,621,0.453,622,1.18,623,0.621,624,0.529,625,0.621,626,0.477,627,1.891,628,1.18,629,1.294,630,0.552,631,0.368,632,0.681,633,0.582,634,0.653,635,0.552,636,0.399,637,0.681,638,0.681,639,2.573,640,2.349,641,2.349,642,1.294,643,0.71,644,0.453,645,1.577,646,0.363,647,1.048,648,0.621,649,0.681,650,0.453,651,0.681,652,1.294,653,1.334,654,1.847,655,1.27,656,1.847,657,1.497,658,1.847,659,1.847,660,1.847,661,1.847,662,1.847,663,1.847,664,1.402,665,1.684,666,1.847,667,0.681,668,1.891,669,0.621,670,0.407,671,0.529,672,0.681,673,0.582,674,0.681,675,0.681,676,0.386,677,0.681,678,0.621,679,0.82,680,1.18,681,1.59,682,1.105,683,0.393,684,0.552,685,1.227,686,0.552,687,0.509,688,0.552,689,3.612,690,0.733,691,0.681,692,1.847,693,0.621,694,0.393,695,3.226,696,0.681,697,0.442,698,1.227,699,0.582,700,1.294,701,0.552,702,1.294,703,0.621,704,1.847,705,1.429,706,1.847,707,0.681,708,0.681,709,0.621,710,2.349,711,0.621,712,0.464,713,0.681,714,0.681,715,0.621,716,0.681,717,0.882,718,0.681,719,0.313,720,1.684,721,0.681,722,0.582,723,1.294,724,0.681,725,0.509,726,0.681,727,0.787,728,0.681,729,0.681,730,0.681,731,1.294,732,0.681,733,0.681,734,0.681,735,0.681,736,0.681,737,0.681,738,1.294,739,0.442,740,0.492,741,1.294,742,0.681,743,0.415,744,0.681,745,0.681,746,1.004,747,0.681,748,0.464,749,0.582,750,0.681,751,0.681,752,0.681,753,0.681,754,1.294,755,0.552,756,0.621,757,0.681,758,0.681,759,0.681,760,1.105,761,0.681,762,0.681,763,0.681,764,0.681,765,0.681,766,0.681,767,0.681,768,0.681,769,0.621,770,0.681]],["component/6",[179,0.571]],["title/7-1",[88,40.412,90,37.83]],["name/7-1",[]],["text/7-1",[]],["component/7-1",[]],["title/7-2",[89,38.425,90,37.83]],["name/7-2",[]],["text/7-2",[]],["component/7-2",[]],["title/7-3",[176,17.558,771,48.643,772,54.731]],["name/7-3",[]],["text/7-3",[]],["component/7-3",[]],["title/7-4",[321,28.88,773,51.494]],["name/7-4",[]],["text/7-4",[]],["component/7-4",[]],["title/7-5",[189,23.654,300,25.356]],["name/7-5",[]],["text/7-5",[]],["component/7-5",[]],["title/7-6",[304,15.63,320,22.48]],["name/7-6",[]],["text/7-6",[]],["component/7-6",[]],["title/7",[20,12.533,88,27.955,89,26.581,90,26.169,91,19.254]],["name/7",[24,0.26,88,0.909,90,0.851,94,0.615]],["text/7",[5,1.315,6,1.634,9,3.324,16,2.753,18,2.049,20,0.862,24,1.828,25,1.547,36,1.257,46,1.522,52,1.401,53,1.458,59,1.575,69,1.889,70,1.61,71,1.904,73,2.381,74,2.937,76,1.748,77,1.361,80,1.8,82,1.723,84,1.085,85,2.146,87,1.557,88,5.046,89,4.505,90,5.927,91,3.476,92,3.681,93,2.45,94,2.577,95,4.459,102,1.723,103,1.919,112,4.04,133,1.474,140,1.279,168,2.127,169,1.489,170,2.296,176,1.526,189,1.126,192,1.216,208,1.539,209,3.446,210,1.829,227,1.522,237,1.923,239,2.545,249,3.327,257,1.506,260,1.506,267,3.115,293,2.179,304,0.744,308,2.08,310,1.773,322,1.313,323,1.818,326,1.614,345,2.299,347,2.088,348,3.622,351,4.064,353,1.557,364,2.623,366,2,367,2.545,372,2.299,373,1.89,380,2.536,383,1.699,385,1.8,387,3.731,397,1.655,401,1.151,402,1.151,403,1.151,404,1.151,405,1.151,406,1.151,407,1.151,408,1.151,409,1.151,422,1.829,438,2.506,454,2.179,467,1.829,486,2.45,488,1.773,523,2.659,548,2.45,560,3.175,561,2.037,586,1.677,595,4.506,634,1.655,646,1.748,727,1.996,771,7.823,772,7.371,773,2.45,774,3.059,775,2.236,776,5.218,777,7.405,778,5.041,779,2.659,780,3.656,781,3.281,782,2.801,783,2.659,784,2.299,785,3.281,786,3.413,787,3.059,788,2.037,789,2.991,790,2.991,791,3.281,792,3.281,793,3.656,794,3.281,795,3.281]],["component/7",[179,0.571]],["title/8-1",[7,21.559,176,17.558,373,34.576]],["name/8-1",[]],["text/8-1",[]],["component/8-1",[]],["title/8-2",[189,23.654,300,25.356]],["name/8-2",[]],["text/8-2",[]],["component/8-2",[]],["title/8-3",[304,15.63,320,22.48]],["name/8-3",[]],["text/8-3",[]],["component/8-3",[]],["title/8",[7,24.761,20,18.118]],["name/8",[7,0.706,24,0.33,83,1.032]],["text/8",[1,2.946,5,0.627,7,4.084,9,3.299,18,2.034,19,1.142,20,0.654,24,1.652,29,4.954,33,2.101,34,2.251,36,1.596,57,0.848,59,3.015,65,3.28,69,2.273,72,1.13,77,4.258,78,3.345,85,3.299,91,3.645,94,0.987,96,0.954,102,1.307,116,1.486,117,1.614,118,1.434,119,1.41,120,0.962,140,0.97,147,2.486,169,1.13,176,2.461,183,1.833,192,0.923,224,1.833,260,1.142,274,1.486,299,1.515,304,0.564,321,1.043,322,0.996,323,1.451,339,1.653,346,6.527,347,2.512,348,3.895,353,2.549,364,3.977,366,0.954,373,4.353,376,1.043,378,2.441,383,1.289,385,1.366,386,2.187,387,4.584,391,2.825,396,2.017,401,0.874,402,0.874,403,0.874,404,0.874,405,0.874,406,0.874,407,0.874,408,0.874,409,0.874,414,1.796,467,2.321,499,1.696,524,1.696,526,4.249,528,3.5,571,3.111,580,1.798,586,1.272,598,2.486,599,4.399,655,2.251,681,1.41,685,2.766,688,5.088,784,2.918,788,1.545,796,2.125,797,3.798,798,3.763,799,4.897,800,3.958,801,1.931,802,6.819,803,1.859,804,3.375,805,5.047,806,1.614,807,5.37,808,5.37,809,6.278,810,2.489,811,6.278,812,1.614,813,2.489,814,1.744,815,4.011,816,2.489,817,2.489,818,4.165,819,1.614,820,2.489,821,1.744,822,1.744,823,2.017,824,1.931,825,2.269,826,2.489]],["component/8",[179,0.571]],["title/9-1",[24,11.564,97,36.205]],["name/9-1",[]],["text/9-1",[]],["component/9-1",[]],["title/9-2",[7,24.761,97,36.205]],["name/9-2",[]],["text/9-2",[]],["component/9-2",[]],["title/9-3",[77,24.91,78,31.973,97,31.523]],["name/9-3",[]],["text/9-3",[]],["component/9-3",[]],["title/9-4",[77,24.91,97,31.523,357,38.925]],["name/9-4",[]],["text/9-4",[]],["component/9-4",[]],["title/9-5",[7,21.559,77,24.91,97,31.523]],["name/9-5",[]],["text/9-5",[]],["component/9-5",[]],["title/9-6",[24,8.915,63,21.854,68,18.653,374,25.828]],["name/9-6",[]],["text/9-6",[]],["component/9-6",[]],["title/9-7",[20,13.968,128,24.392,188,21.268,205,28.312]],["name/9-7",[]],["text/9-7",[]],["component/9-7",[]],["title/9-8",[24,10.068,70,18.516,71,21.901]],["name/9-8",[]],["text/9-8",[]],["component/9-8",[]],["title/9-9",[97,36.205,178,46.979]],["name/9-9",[]],["text/9-9",[]],["component/9-9",[]],["title/9-10",[189,23.654,300,25.356]],["name/9-10",[]],["text/9-10",[]],["component/9-10",[]],["title/9-11",[304,15.63,320,22.48]],["name/9-11",[]],["text/9-11",[]],["component/9-11",[]],["title/9",[20,18.118,97,36.205]],["name/9",[52,1.144,97,1.407]],["text/9",[1,1.78,5,1.871,7,3.526,9,3.75,15,3.189,16,1.785,17,0.68,18,2.232,19,2.096,20,1.527,21,0.832,24,1.737,25,0.463,27,1.949,33,1.403,35,2.516,36,2.008,49,0.82,52,1.951,53,1.673,54,0.694,57,0.532,61,1.075,63,1.547,65,2.456,68,0.976,69,1.007,70,0.482,71,1.015,73,1.469,74,1.812,76,1.482,77,4.433,78,3.583,84,3.144,85,2.919,87,0.741,88,0.915,91,0.63,94,2.499,97,5.405,106,1.265,128,1.277,137,0.932,138,0.701,140,0.609,162,1.576,163,1.727,164,2.158,169,1.263,170,0.687,171,1.013,176,2.335,178,1.896,183,0.687,188,1.506,190,1.128,192,0.579,205,1.482,220,0.788,224,0.687,231,2.506,244,3.2,249,1.25,257,1.277,260,0.717,267,0.932,300,0.574,304,0.354,322,0.625,323,1.311,326,0.768,334,0.899,338,0.673,346,1.211,347,1.113,348,0.87,351,0.857,352,1.333,353,0.741,356,0.759,357,3.398,359,0.809,364,1.844,366,2.846,373,1.603,374,4.098,376,0.654,378,1.631,380,0.759,387,4.544,388,0.759,390,0.95,391,2.355,395,0.87,397,0.788,399,1.211,401,0.548,402,0.548,403,0.548,404,0.548,405,0.548,406,0.548,407,0.548,408,0.548,409,0.548,426,1.094,439,1.562,440,0.915,469,1.874,473,3.512,480,4.508,488,0.844,493,0.844,509,2.034,511,0.768,524,3.113,526,3.609,528,2.097,529,2.246,556,1.333,563,0.832,598,0.932,600,1.013,613,1.128,614,1.064,617,0.884,643,1.527,670,0.932,719,1.277,725,3.412,780,1.094,784,1.949,787,0.915,800,2.587,802,1.265,805,3.785,815,1.166,827,1.211,828,4.247,829,1.265,830,2.375,831,2.255,832,3.702,833,1.166,834,0.857,835,1.561,836,1.561,837,1.265,838,1.561,839,2.782,840,1.561,841,1.424,842,3.763,843,1.561,844,1.333,845,2.537,846,1.561,847,3.049,848,2.782,849,1.352,850,0.99,851,1.561,852,1.561,853,1.561,854,1.561,855,1.561,856,0.857,857,1.424,858,1.064,859,1.064,860,4.434,861,2.206,862,1.424,863,4.778,864,1.211,865,1.561,866,1.424,867,1.424,868,2.537,869,3.049,870,1.424,871,1.424,872,1.211,873,1.265,874,1.424,875,1.424,876,2.537,877,1.064,878,1.333,879,1.211,880,3.431,881,0.899,882,1.333,883,2.158,884,1.424,885,1.424,886,1.424,887,1.424,888,1.424,889,1.424,890,1.561,891,1.561,892,3.431,893,2.255,894,2.255,895,2.537,896,1.424,897,2.537,898,3.431,899,1.424,900,1.424,901,1.265,902,1.949,903,1.211,904,1.265,905,0.832,906,1.013,907,1.265,908,1.265,909,1.561]],["component/9",[179,0.571]],["title/10-1",[79,29.019,80,26.169,176,13.95,231,26.169,357,30.926]],["name/10-1",[]],["text/10-1",[]],["component/10-1",[]],["title/10-2",[79,29.019,80,26.169,96,18.275,176,13.95,509,25.777]],["name/10-2",[]],["text/10-2",[]],["component/10-2",[]],["title/10-3",[16,16.242,79,29.019,80,26.169,176,13.95,381,26.169]],["name/10-3",[]],["text/10-3",[]],["component/10-3",[]],["title/10-4",[189,23.654,300,25.356]],["name/10-4",[]],["text/10-4",[]],["component/10-4",[]],["title/10-5",[304,15.63,320,22.48]],["name/10-5",[]],["text/10-5",[]],["component/10-5",[]],["title/10",[79,41.949,80,37.83]],["name/10",[79,1.196,80,1.078,167,1.196]],["text/10",[1,0.94,5,0.608,6,0.663,7,2.058,9,1.359,13,0.781,16,3.401,18,1.33,19,1.517,20,0.35,24,1.809,25,1.935,29,0.731,36,0.51,41,0.672,42,1.602,49,0.699,52,0.569,53,1.072,54,0.592,57,0.454,59,0.64,63,0.992,64,1.564,65,0.519,69,2.364,70,2.294,72,0.605,73,2.825,74,1.609,77,3.584,78,0.709,79,3.194,80,5.554,84,0.441,85,3.904,88,1.937,89,2.261,91,0.974,93,0.995,94,2.723,95,3.852,96,3.367,112,2.472,133,0.598,138,1.822,147,1.44,148,1.132,155,1.44,159,0.754,165,0.767,169,0.605,176,2.901,188,1.623,191,1.186,192,2.932,208,0.625,209,0.49,219,2.143,227,0.618,231,3.377,244,1.69,257,1.517,260,0.611,274,0.795,293,5.927,294,0.885,304,0.302,310,3.873,318,2.822,321,0.558,322,0.533,323,1.151,330,1.201,340,0.767,351,0.731,353,0.632,357,2.631,361,2.387,364,1.638,366,1.267,374,0.647,376,0.558,377,2.199,379,0.995,381,5.097,382,3.991,384,1.214,385,0.731,387,4.181,391,1.962,393,0.754,397,1.667,398,1.69,401,0.846,402,0.467,403,0.467,404,0.467,405,0.467,406,0.467,407,0.467,408,0.467,409,0.467,414,3.313,415,0.885,422,2.926,425,0.827,429,0.574,433,2.469,436,1.033,467,0.742,469,0.663,471,5.264,480,4.446,488,0.72,505,0.962,509,3.711,510,3.826,518,1.214,526,4.197,528,1.842,529,1.973,545,0.845,546,1.602,562,1.802,563,0.709,568,2.648,570,2.387,571,0.995,576,1.137,577,4.555,580,2.93,582,2.564,585,0.72,586,3.337,593,1.529,597,1.69,598,0.795,614,0.908,627,1.937,630,3.287,631,0.72,634,1.217,643,0.731,679,0.845,683,1.389,685,2.694,697,1.564,786,0.699,788,0.827,798,0.933,804,1.079,805,0.962,806,0.864,827,1.033,829,1.079,849,0.647,850,2.096,858,0.908,860,2.804,879,1.033,893,1.079,894,2.678,906,0.864,910,1.69,911,0.864,912,2.412,913,0.933,914,3.36,915,2.316,916,1.955,917,1.332,918,0.827,919,1.137,920,1.079,921,1.332,922,1.137,923,1.137,924,0.672,925,0.885,926,1.137,927,0.908,928,1.332,929,1.332,930,4.283,931,4.283,932,3.699,933,1.332,934,5.226,935,1.214,936,2.199,937,2.199,938,3.014,939,1.214,940,2.199,941,0.885,942,1.214,943,1.332,944,1.214,945,4.697,946,1.332,947,2.412,948,1.332,949,3.134,950,1.214,951,3.305,952,1.332,953,0.908,954,2.059,955,1.332,956,1.332,957,1.137,958,1.332,959,2.143,960,2.199,961,1.214,962,1.079,963,0.781,964,1.137]],["component/10",[179,0.571]],["title/11-1",[82,36.205,91,27.834]],["name/11-1",[]],["text/11-1",[]],["component/11-1",[]],["title/11-2",[82,31.523,83,31.523,176,17.558]],["name/11-2",[]],["text/11-2",[]],["component/11-2",[]],["title/11-3",[189,23.654,300,25.356]],["name/11-3",[]],["text/11-3",[]],["component/11-3",[]],["title/11-4",[304,15.63,320,22.48]],["name/11-4",[]],["text/11-4",[]],["component/11-4",[]],["title/11",[20,15.775,82,31.523,83,31.523]],["name/11",[24,0.26,82,0.815,83,0.815,167,0.944]],["text/11",[1,0.72,5,1.619,7,0.664,9,0.76,16,1.099,18,1.629,19,2.364,20,1.129,24,1.669,25,0.957,41,0.932,42,1.227,46,0.857,47,5.367,51,2.358,57,0.629,58,1.45,59,0.887,64,2.093,65,0.72,70,0.996,72,1.465,73,1.382,74,1.28,76,0.984,77,3.196,80,1.771,82,5.835,83,4.489,85,0.76,88,1.083,89,1.03,91,3.237,92,2.434,93,1.38,94,3.054,95,0.957,96,1.974,102,5.417,112,0.797,133,2.314,137,1.927,148,0.867,155,3.075,159,1.047,160,3.209,165,1.064,169,1.465,170,1.891,176,2.345,177,2.144,188,1.72,192,0.685,203,1.227,208,1.514,219,2.787,224,0.813,257,3.534,260,0.848,290,0.805,293,3.421,301,4.69,304,0.419,306,3.527,308,1.172,310,0.999,320,0.602,321,0.774,322,0.739,323,0.644,328,2.395,332,1.327,334,1.064,335,3.483,337,2.943,338,0.797,340,1.064,347,0.739,351,1.014,353,0.877,356,0.898,364,2.962,367,6.958,373,2.967,382,1.198,387,4.294,391,3.278,393,1.047,395,1.03,397,0.932,401,0.648,402,0.648,403,0.648,404,0.648,405,0.648,406,0.648,407,0.648,408,0.648,409,0.648,414,1.392,422,1.03,429,1.392,435,2.261,469,0.92,471,5.084,509,1.745,510,2.395,515,2.504,524,1.259,526,1.568,527,1.685,528,1.799,529,1.927,539,1.577,540,3.669,541,3.609,548,4.368,554,2.331,560,3.559,561,1.147,563,1.719,568,0.932,571,3.21,575,1.685,577,1.064,584,1.38,636,1.892,639,1.198,643,1.014,646,1.719,647,1.497,679,2.047,680,1.685,681,1.047,690,1.047,697,1.198,705,3.134,719,0.848,743,1.124,749,2.756,755,1.497,774,2.519,780,1.295,786,0.97,806,1.198,812,1.198,850,3.266,859,1.259,860,4.38,872,1.433,873,1.497,906,2.093,910,2.261,913,1.295,924,0.932,953,2.199,960,1.685,965,1.497,966,1.259,967,0.97,968,1.685,969,1.685,970,1.577,971,1.848,972,1.848,973,1.334,974,1.685,975,1.848,976,1.38,977,1.685,978,1.433,979,1.685,980,1.848,981,1.848,982,5.151,983,1.848,984,3.227,985,1.848,986,1.295,987,1.848,988,1.848,989,1.848,990,1.334,991,4.398,992,6.428,993,1.848,994,3.227,995,3.227,996,1.433,997,1.848,998,1.848,999,1.577,1000,6.428,1001,8.298,1002,3.227,1003,1.848,1004,1.848,1005,1.848,1006,1.848,1007,1.848,1008,1.848,1009,1.295,1010,4.297,1011,1.227,1012,1.848,1013,1.103]],["component/11",[179,0.571]],["title/12-1",[77,24.91,78,31.973,176,17.558]],["name/12-1",[]],["text/12-1",[]],["component/12-1",[]],["title/12-2",[189,23.654,300,25.356]],["name/12-2",[]],["text/12-2",[]],["component/12-2",[]],["title/12-3",[304,15.63,320,22.48]],["name/12-3",[]],["text/12-3",[]],["component/12-3",[]],["title/12",[20,18.118,78,36.723]],["name/12",[35,1.286,78,1.427]],["text/12",[1,0.757,5,1.666,7,3.128,16,2.252,18,2.145,20,0.886,22,0.77,24,1.794,25,1.96,29,5.959,33,3.792,34,1.821,36,1.291,38,1.181,42,1.289,46,0.901,51,2.45,54,0.863,57,0.661,63,0.798,65,2.351,67,1.019,69,2.184,70,2.04,72,1.53,73,2.126,77,3.614,78,5.187,83,1.77,84,1.115,88,1.975,91,1.36,94,0.77,103,0.714,109,0.967,117,4.288,118,3.475,119,3.417,120,0.75,137,3.601,159,1.1,163,1.205,167,1.181,176,2.668,183,1.964,188,0.777,191,0.955,192,2.237,194,1.637,208,1.581,209,0.714,244,4.227,249,0.872,257,1.546,260,1.546,274,1.159,290,0.846,293,2.965,304,0.44,306,2.45,321,1.412,322,1.348,323,1.555,329,1.118,330,1.678,343,1.657,345,1.36,347,0.777,364,3.931,366,1.711,373,1.118,376,0.813,385,2.925,387,4.134,388,3.213,391,2.654,397,0.979,398,3.128,401,0.681,402,0.681,403,0.681,404,0.681,405,0.681,406,0.681,407,0.681,408,0.681,409,0.681,422,2.488,439,0.806,451,1.573,467,1.082,473,5.496,486,1.45,499,4.111,510,2.488,526,3.451,533,4.106,549,1.323,554,1.402,561,1.205,563,1.795,567,1.506,577,3.809,598,1.159,600,1.259,636,1.138,643,1.065,655,1.821,671,2.614,676,1.1,679,1.231,681,3.019,683,3.475,698,1.289,705,1.181,743,1.181,755,1.573,800,1.909,805,2.434,815,1.45,822,6.391,823,2.731,824,1.506,825,1.77,849,2.169,850,1.231,856,2.45,860,1.159,861,1.138,864,2.614,877,1.323,893,2.731,894,1.573,905,1.795,911,2.185,924,0.979,944,1.77,964,2.877,1014,1.975,1015,1.941,1016,1.573,1017,1.657,1018,1.77,1019,1.506,1020,6.254,1021,1.77,1022,1.77,1023,1.77,1024,1.138,1025,1.941,1026,1.402,1027,1.289,1028,3.369,1029,1.941,1030,1.77,1031,1.45,1032,1.941,1033,1.941,1034,1.941,1035,1.941,1036,1.941,1037,1.941,1038,1.77,1039,1.77,1040,1.77,1041,1.77,1042,1.77,1043,1.941,1044,1.657,1045,1.45,1046,1.941,1047,1.77,1048,2.877,1049,1.941,1050,1.941,1051,1.941,1052,1.941,1053,1.77,1054,1.941,1055,3.369,1056,1.941,1057,1.941,1058,1.941,1059,1.941,1060,1.36,1061,2.296]],["component/12",[179,0.571]],["title/13-1",[24,10.068,57,20.442,98,40.904]],["name/13-1",[]],["text/13-1",[]],["component/13-1",[]],["title/13-2",[24,10.068,61,23.198,98,40.904]],["name/13-2",[]],["text/13-2",[]],["component/13-2",[]],["title/13-3",[24,8.915,61,20.541,98,36.22,342,41.232]],["name/13-3",[]],["text/13-3",[]],["component/13-3",[]],["title/13-4",[189,23.654,300,25.356]],["name/13-4",[]],["text/13-4",[]],["component/13-4",[]],["title/13-5",[304,15.63,320,22.48]],["name/13-5",[]],["text/13-5",[]],["component/13-5",[]],["title/13",[20,18.118,98,46.979]],["name/13",[35,1.286,98,1.826]],["text/13",[1,1.974,5,1.276,7,0.648,9,2.606,10,1.855,16,1.076,18,0.457,19,1.45,20,0.83,24,1.707,25,1.706,36,1.616,49,1.659,53,0.801,57,2.96,61,3.359,63,0.741,69,1.833,70,0.975,71,1.153,72,1.434,73,1.356,77,3.008,80,3.477,85,1.734,94,3.447,96,2.778,98,7.491,104,0.947,109,0.898,138,3.067,140,1.231,148,0.846,169,1.434,176,2.542,188,2.536,209,1.551,210,1.005,224,0.793,227,1.466,247,1.229,260,0.827,271,1.143,274,1.886,290,0.785,304,0.409,321,1.323,322,1.264,323,1.764,326,1.554,327,2.56,329,1.82,330,1.573,332,2.082,334,1.82,338,2.733,340,2.429,341,1.399,342,6.899,353,1.499,356,1.535,359,1.636,364,3.509,366,1.616,383,1.636,386,1.659,387,4.595,388,1.535,390,1.922,391,3.512,393,1.021,397,0.909,401,0.633,402,0.633,403,0.633,404,0.633,405,0.633,406,0.633,407,0.633,408,0.633,409,0.633,422,3.805,439,0.748,467,1.005,469,2.522,471,2.003,473,1.761,487,4.666,493,0.975,510,1.005,514,1.554,526,3.079,528,3.532,563,1.683,568,2.554,577,2.429,586,0.921,600,1.169,610,1.539,631,1.708,636,1.057,643,1.734,644,2.098,650,2.098,653,2.282,664,1.886,694,1.039,790,1.644,797,1.644,822,1.263,834,0.989,856,3.747,949,1.886,953,2.153,954,2.697,966,1.229,1013,1.886,1024,1.057,1062,2.324,1063,1.539,1064,1.644,1065,1.644,1066,1.644,1067,7.248,1068,2.451,1069,1.539,1070,2.881,1071,1.978,1072,4.216,1073,1.263,1074,3.159,1075,3.159,1076,5.063,1077,3.159,1078,5.063,1079,3.159,1080,5.063,1081,3.159,1082,4.216,1083,1.922,1084,4.216,1085,2.003,1086,4.216,1087,6.337,1088,4.216,1089,2.282,1090,1.803,1091,1.803,1092,0.876,1093,1.197,1094,1.461,1095,1.922,1096,3.159,1097,3.023,1098,1.961,1099,1.803,1100,1.803,1101,1.803,1102,1.803,1103,1.803,1104,1.803,1105,1.803,1106,5.758,1107,4.216,1108,1.803,1109,1.803,1110,1.803,1111,1.803,1112,1.803,1113,1.803,1114,1.803]],["component/13",[179,0.571]],["title/14-1",[5,13.39,16,18.101,17,23.151,20,13.968]],["name/14-1",[]],["text/14-1",[]],["component/14-1",[]],["title/14-2",[16,20.442,17,26.144,378,35.186]],["name/14-2",[]],["text/14-2",[]],["component/14-2",[]],["title/14-3",[5,13.39,16,18.101,17,23.151,171,34.468]],["name/14-3",[]],["text/14-3",[]],["component/14-3",[]],["title/14-4",[5,16.27,16,14.728,17,18.836,70,13.34,290,18.836]],["name/14-4",[]],["text/14-4",[]],["component/14-4",[]],["title/14-5",[5,12.014,16,16.242,17,20.772,70,14.711,103,17.54]],["name/14-5",[]],["text/14-5",[]],["component/14-5",[]],["title/14-6",[16,20.442,17,26.144,151,46.565]],["name/14-6",[]],["text/14-6",[]],["component/14-6",[]],["title/14-7",[16,18.101,17,23.151,227,24.662,362,35.302]],["name/14-7",[]],["text/14-7",[]],["component/14-7",[]],["title/14-8",[15,29.019,24,7.999,65,18.589,362,31.675,425,29.607]],["name/14-8",[]],["text/14-8",[]],["component/14-8",[]],["title/14-9",[5,12.014,16,16.242,17,20.772,45,24.702,1115,43.484]],["name/14-9",[]],["text/14-9",[]],["component/14-9",[]],["title/14-10",[16,18.101,17,23.151,129,26.472,362,35.302]],["name/14-10",[]],["text/14-10",[]],["component/14-10",[]],["title/14-11",[5,12.014,16,16.242,17,20.772,84,15.774,1116,30.24]],["name/14-11",[]],["text/14-11",[]],["component/14-11",[]],["title/14-12",[7,24.761,120,26.643]],["name/14-12",[]],["text/14-12",[]],["component/14-12",[]],["title/14-13",[7,24.761,119,39.051]],["name/14-13",[]],["text/14-13",[]],["component/14-13",[]],["title/14-14",[15,24.072,16,13.473,17,17.231,70,12.203,103,14.55,220,19.956,906,25.654]],["name/14-14",[]],["text/14-14",[]],["component/14-14",[]],["title/14-15",[189,23.654,300,25.356]],["name/14-15",[]],["text/14-15",[]],["component/14-15",[]],["title/14-16",[304,15.63,320,22.48]],["name/14-16",[]],["text/14-16",[]],["component/14-16",[]],["title/14",[2,33.703,3,36.22,16,18.101,17,23.151]],["name/14",[2,0.984,3,1.057,16,0.528,17,0.676]],["text/14",[1,1.949,2,0.49,5,2.331,7,2.687,9,0.599,12,0.826,13,0.453,15,4.371,16,3.506,17,4.315,18,2.08,19,0.669,20,1.888,21,0.776,24,1.625,25,1.92,29,0.8,32,0.887,33,1.795,34,0.788,35,0.371,36,1.364,37,0.542,38,0.887,43,0.945,45,1.355,46,1.214,49,1.086,52,0.883,53,1.383,54,0.648,55,0.905,57,0.263,59,0.7,61,0.563,63,1.076,65,3.675,67,2.084,68,1.755,69,1.126,70,2.114,71,0.282,74,1.038,77,2.309,84,2.074,85,1.279,90,0.424,91,1.056,94,0.578,96,0.559,97,0.406,103,1.597,116,2.985,118,1.191,119,2.654,120,1.678,127,1.412,128,1.201,129,1.549,133,0.655,138,0.655,140,0.806,141,0.626,143,1.896,145,2.516,146,1.534,147,0.461,150,0.945,156,0.453,160,0.8,162,1.482,165,1.507,166,2.532,168,0.945,169,1.412,170,2.329,171,0.945,176,2.228,178,0.527,183,0.34,184,0.385,188,2.592,189,0.265,191,1.287,192,0.97,194,2.11,209,1.839,220,1.569,224,0.34,227,2.014,228,4.982,230,0.513,234,0.453,249,1.175,253,0.945,257,1.201,260,0.949,263,0.692,271,2.257,278,0.395,286,0.6,290,0.901,299,0.47,301,0.424,303,0.47,304,0.175,305,1.696,316,1.545,322,1.047,323,1.382,328,0.431,338,0.333,339,0.513,345,0.542,347,1.588,348,2.42,351,2.177,353,1.689,362,4.43,364,1.256,366,1.003,374,1.928,376,1.303,378,0.453,380,1.729,381,2.382,385,2.382,387,3.796,388,4.131,391,1.163,398,0.542,401,0.271,402,0.271,403,0.271,404,0.271,405,0.271,406,0.271,407,0.512,408,0.271,409,0.271,414,0.892,419,0.66,421,0.6,422,2.787,425,5.029,429,1.128,433,3.243,438,0.371,439,0.858,440,2.086,448,0.577,456,0.47,463,2.211,482,0.501,493,0.788,509,1.924,511,0.717,514,0.717,517,0.993,526,0.376,546,3.516,548,3.243,553,0.542,560,4.059,561,0.48,563,1.393,567,0.6,568,1.043,569,5.082,572,0.66,577,2.05,580,2.57,582,1.604,585,1.414,587,0.558,592,0.6,593,0.49,595,0.887,596,0.527,609,0.66,614,1.783,634,0.735,635,0.626,643,1.436,655,2.532,668,0.854,676,0.826,683,1.191,694,0.84,697,0.501,719,1.992,739,0.501,786,0.406,787,0.453,788,0.905,800,0.826,801,1.131,812,0.945,814,1.833,834,1.953,847,2.884,881,0.445,901,0.626,904,1.181,905,1.102,927,1.409,940,5.518,941,0.513,963,2.086,966,1.783,967,0.406,970,1.766,1014,3.103,1019,0.6,1060,1.021,1061,0.993,1069,0.66,1115,1.886,1116,2.97,1117,0.705,1118,7.184,1119,0.66,1120,0.6,1121,0.773,1122,0.577,1123,0.773,1124,0.773,1125,1.021,1126,0.626,1127,0.705,1128,0.773,1129,0.773,1130,1.329,1131,0.773,1132,1.676,1133,0.705,1134,0.705,1135,1.244,1136,0.705,1137,0.66,1138,0.66,1139,0.773,1140,0.66,1141,0.773,1142,3.706,1143,3.999,1144,0.773,1145,2.068,1146,0.773,1147,0.773,1148,0.66,1149,0.773,1150,4.341,1151,3.038,1152,0.773,1153,0.773,1154,0.773,1155,0.705,1156,0.773,1157,4.341,1158,0.773,1159,0.773,1160,0.773,1161,1.457,1162,1.457,1163,1.457,1164,1.457,1165,1.457,1166,1.457,1167,4.271,1168,1.766,1169,2.616,1170,0.773,1171,2.068,1172,0.773,1173,2.068,1174,2.068,1175,0.66,1176,0.705,1177,0.773,1178,2.233,1179,0.773,1180,2.068,1181,2.068,1182,2.068,1183,2.068,1184,2.068,1185,0.773,1186,0.773,1187,0.773,1188,1.457,1189,1.457,1190,1.457,1191,1.457,1192,1.457,1193,0.542,1194,0.773,1195,0.773,1196,0.773,1197,0.773,1198,0.773,1199,0.773,1200,0.773,1201,1.457,1202,0.773,1203,0.773,1204,3.11,1205,3.11,1206,3.11,1207,3.11,1208,3.11,1209,0.773,1210,0.773,1211,0.773,1212,0.773,1213,0.773,1214,2.068,1215,1.457,1216,0.773,1217,1.457,1218,1.457,1219,1.457,1220,1.457,1221,1.457,1222,0.773,1223,0.558,1224,0.8,1225,0.84,1226,2.068,1227,0.773,1228,0.773,1229,0.773,1230,0.558,1231,0.773,1232,0.773,1233,0.705,1234,1.244,1235,0.705,1236,0.705,1237,0.705,1238,0.773,1239,0.773,1240,0.773,1241,0.6,1242,0.705,1243,0.66,1244,1.329,1245,0.705,1246,1.592,1247,1.181,1248,1.507,1249,0.887,1250,0.705,1251,1.131,1252,1.053,1253,1.089,1254,1.329,1255,1.181,1256,2.884,1257,0.66,1258,0.705,1259,0.66,1260,0.501,1261,0.66,1262,0.66,1263,0.66,1264,0.66]],["component/14",[179,0.571]],["title/15-1",[1265,53.776]],["name/15-1",[]],["text/15-1",[]],["component/15-1",[]],["title/15-2",[16,14.728,17,18.836,24,7.254,25,12.817,103,15.906,191,21.272]],["name/15-2",[]],["text/15-2",[]],["component/15-2",[]],["title/15-3",[189,23.654,300,25.356]],["name/15-3",[]],["text/15-3",[]],["component/15-3",[]],["title/15-4",[304,15.63,320,22.48]],["name/15-4",[]],["text/15-4",[]],["component/15-4",[]],["title/15",[16,18.101,17,23.151,70,16.396,103,19.549]],["name/15",[16,0.528,17,0.676,70,0.479,103,0.571]],["text/15",[1,1.586,2,1.536,3,1.65,5,2.179,7,1.891,9,0.996,12,4.221,16,3.831,17,4.819,18,1.744,19,1.111,24,1.804,25,2.209,27,1.254,32,1.473,33,1.222,35,1.954,36,2.018,38,1.473,48,1.536,52,1.034,53,1.809,54,1.076,57,2.343,59,2.963,61,2.659,63,0.996,65,2.052,67,3.241,68,0.85,70,2.902,71,0.884,72,1.099,73,1.309,74,1.614,84,1.741,85,2.165,96,2.018,103,2.741,127,3.383,128,3.158,129,2.622,137,1.446,140,2.682,143,3.97,145,3.913,156,2.386,162,1.372,165,1.395,166,2.2,168,3.414,169,2.39,170,1.065,176,1.805,183,1.065,184,1.206,188,2.469,191,4.091,192,0.898,194,1.177,209,2.531,220,5.346,224,1.065,227,3.192,304,0.549,321,1.705,322,1.629,323,1.834,328,1.35,330,2.027,332,1.673,338,1.755,347,1.629,348,1.35,351,1.329,353,1.149,362,5.262,364,2.126,366,1.56,373,1.395,376,1.014,383,1.254,401,1.848,402,0.85,403,0.85,404,0.85,405,0.85,406,0.85,407,0.85,408,0.85,409,0.85,419,3.475,421,3.157,425,4.272,429,2.27,430,1.697,439,2.855,440,1.42,469,1.206,493,2.2,494,2.067,505,1.749,517,1.65,563,2.804,579,1.962,587,2.94,592,1.879,600,1.57,614,2.774,655,1.309,676,2.982,679,1.536,684,1.962,712,1.65,719,1.868,779,1.962,798,1.697,812,2.639,849,1.177,905,1.29,906,1.57,963,4.368,1014,2.386,1062,1.111,1071,1.136,1116,2.581,1125,2.852,1137,2.067,1175,4.495,1224,2.233,1225,1.395,1236,2.208,1237,2.208,1248,1.395,1266,1.962,1267,1.879,1268,4.07,1269,2.421,1270,3.711,1271,2.067,1272,2.208,1273,2.421,1274,1.809,1275,2.208,1276,2.421]],["component/15",[179,0.571]],["title/16-1",[5,13.39,16,18.101,17,23.151,68,18.653]],["name/16-1",[]],["text/16-1",[]],["component/16-1",[]],["title/16-2",[16,20.442,17,26.144,1125,42.056]],["name/16-2",[]],["text/16-2",[]],["component/16-2",[]],["title/16-3",[5,12.014,16,16.242,17,20.772,68,16.737,171,30.926]],["name/16-3",[]],["text/16-3",[]],["component/16-3",[]],["title/16-4",[7,13.093,16,12.415,17,15.878,18,9.238,68,12.793,119,20.649,176,10.663,189,12.507]],["name/16-4",[]],["text/16-4",[]],["component/16-4",[]],["title/16-5",[7,13.093,16,12.415,17,15.878,18,9.238,68,12.793,120,14.088,176,10.663,189,12.507]],["name/16-5",[]],["text/16-5",[]],["component/16-5",[]],["title/16-6",[5,12.014,16,16.242,17,20.772,70,14.711,290,20.772]],["name/16-6",[]],["text/16-6",[]],["component/16-6",[]],["title/16-7",[5,12.014,16,16.242,17,20.772,84,15.774,85,19.608]],["name/16-7",[]],["text/16-7",[]],["component/16-7",[]],["title/16-8",[189,23.654,300,25.356]],["name/16-8",[]],["text/16-8",[]],["component/16-8",[]],["title/16-9",[304,15.63,320,22.48]],["name/16-9",[]],["text/16-9",[]],["component/16-9",[]],["title/16",[5,13.39,16,18.101,17,23.151,171,34.468]],["name/16",[5,0.495,16,0.669,17,0.856]],["text/16",[1,2.167,2,0.639,3,0.687,5,2.527,7,3.67,9,0.768,12,1.059,15,2.638,16,3.691,17,4.731,18,2.305,19,1.496,20,1.548,21,2.04,24,0.988,25,1.836,32,0.614,33,2.804,34,1.762,36,1.662,38,1.137,46,0.867,48,1.656,52,2.374,54,0.448,58,1.464,59,0.484,61,1.009,65,2.167,67,0.53,68,2.271,69,0.677,70,2.716,71,0.682,73,0.324,74,0.741,84,2.615,85,2.765,86,0.782,87,1.547,90,1.789,91,1.316,94,1.519,97,0.982,103,1.409,116,2.287,118,1.077,119,4.286,120,2.394,127,2.523,128,3.087,129,0.502,133,2.497,134,0.707,140,0.728,143,3.931,145,4.414,146,0.591,147,1.116,148,0.877,150,2.114,152,0.426,160,0.553,162,1.059,166,2.07,169,0.848,170,1.908,171,1.212,174,1.596,176,1.4,182,0.707,184,0.502,188,0.403,189,1.119,191,0.496,192,1.925,194,2.107,209,0.371,224,0.822,227,1.212,231,0.553,249,1.464,253,0.654,257,0.463,260,0.463,263,3.825,275,0.707,290,1.138,299,1.589,304,0.229,314,0.602,320,1.063,323,1.334,328,1.042,329,0.581,330,0.931,332,1.783,334,0.581,338,1.406,345,0.707,347,1.533,348,1.456,353,2.272,356,1.584,359,1.689,362,2.165,364,2.378,366,1.468,373,1.505,376,1.816,380,0.49,381,1.789,385,1.433,387,1.009,391,3.164,397,0.509,401,0.656,402,0.354,403,0.354,404,0.354,405,0.354,406,0.354,407,0.917,408,0.354,409,0.354,410,0.67,411,0.861,413,1.515,414,3.182,415,0.67,417,0.639,422,2.668,423,4.365,424,0.861,425,2.024,426,0.707,427,0.861,429,1.652,430,1.83,433,1.951,438,0.484,439,1.59,440,3.631,463,1.456,467,0.562,476,0.861,488,1.01,493,1.01,494,0.861,495,0.861,496,1.274,497,0.919,498,2.812,499,0.687,500,0.919,501,0.919,502,2.971,503,0.919,504,1.704,505,2.766,506,0.919,507,2.222,508,0.919,514,1.604,542,0.602,546,2.88,561,0.626,585,1.01,593,0.639,595,1.589,664,1.559,668,2.245,676,1.059,690,0.571,694,1.505,697,1.212,717,0.687,719,0.463,727,0.614,806,0.654,814,1.83,827,0.782,828,0.817,849,0.49,877,0.687,902,1.984,904,2.117,905,2.04,911,2.114,941,1.735,963,1.531,973,2.355,1011,0.67,1014,1.096,1019,0.782,1060,1.309,1061,1.78,1083,1.589,1085,1.656,1116,0.639,1120,0.782,1125,2.684,1137,0.861,1138,0.861,1142,5.525,1175,0.861,1225,1.077,1242,0.919,1243,0.861,1244,4.365,1245,1.704,1246,2.638,1247,1.515,1248,2.758,1249,2.331,1250,0.919,1251,1.45,1252,1.35,1253,1.951,1254,0.919,1255,1.515,1256,3.514,1257,0.861,1258,0.919,1259,0.861,1260,0.654,1261,2.783,1262,0.861,1263,0.861,1264,0.861,1275,0.919,1277,0.707,1278,0.919,1279,1.008,1280,0.861,1281,0.753,1282,1.008,1283,2.067,1284,1.008,1285,3.26,1286,1.008,1287,1.008,1288,1.596,1289,1.008,1290,1.008,1291,1.008,1292,1.008,1293,2.382,1294,1.008,1295,2.382,1296,2.382,1297,1.869,1298,2.612,1299,1.869,1300,0.782,1301,1.869,1302,1.515,1303,2.971,1304,3.492,1305,3.27,1306,2.544,1307,1.008,1308,0.919,1309,1.886,1310,1.515,1311,0.919,1312,0.919,1313,1.008,1314,0.861,1315,0.707,1316,0.782,1317,0.753,1318,0.782,1319,0.782,1320,0.861,1321,0.919,1322,0.919,1323,0.919,1324,0.919,1325,0.919,1326,1.008,1327,1.008,1328,1.869,1329,1.008,1330,1.008,1331,1.008,1332,0.728,1333,0.728,1334,1.008,1335,0.728,1336,1.008,1337,1.008,1338,0.919,1339,1.704,1340,0.782,1341,1.008,1342,1.008,1343,0.861,1344,1.008,1345,2.23,1346,0.753,1347,0.707]],["component/16",[179,0.571]],["title/17-1",[7,17.129,84,15.774,120,18.431,140,18.589,655,25.777]],["name/17-1",[]],["text/17-1",[]],["component/17-1",[]],["title/17-2",[7,17.129,84,15.774,120,18.431,134,33.414,140,18.589]],["name/17-2",[]],["text/17-2",[]],["component/17-2",[]],["title/17-3",[7,17.129,133,21.422,227,22.128,283,28.47,514,23.458]],["name/17-3",[]],["text/17-3",[]],["component/17-3",[]],["title/17-4",[22,17.152,120,16.713,249,19.426,310,23.375,374,21.015,690,24.497]],["name/17-4",[]],["text/17-4",[]],["component/17-4",[]],["title/17-5",[7,17.129,24,7.999,91,19.254,120,18.431,176,13.95]],["name/17-5",[]],["text/17-5",[]],["component/17-5",[]],["title/17-6",[189,23.654,300,25.356]],["name/17-6",[]],["text/17-6",[]],["component/17-6",[]],["title/17-7",[304,15.63,320,22.48]],["name/17-7",[]],["text/17-7",[]],["component/17-7",[]],["title/17",[7,23.197,33,21.815,34,23.375,70,13.34,120,16.713]],["name/17",[7,0.837,33,0.646,34,0.693,120,0.495]],["text/17",[4,1.131,5,0.993,7,3.861,10,0.852,18,2.286,19,1.239,20,1.171,22,1.948,24,1.643,25,2.467,29,3.763,33,3.191,34,3.42,35,0.503,36,1.288,45,0.543,53,1.495,54,1.495,57,1.343,58,0.471,59,0.503,64,0.679,68,1.867,69,2.391,70,2.427,71,1.227,73,0.623,74,1.071,76,0.558,77,0.804,78,0.558,84,2.797,85,3.747,87,0.497,91,2.148,92,0.594,94,1.071,100,0.843,103,1.639,116,3.596,117,0.679,118,1.937,119,0.594,120,4.143,127,2.416,130,0.65,131,2.529,132,1.286,133,3.283,134,6.013,135,1.256,136,0.813,138,1.51,140,3.189,148,0.492,152,2.547,165,1.115,170,0.461,176,1.851,190,1.399,192,1.973,209,1.807,210,0.584,219,1.751,220,1.362,224,1.735,227,0.486,230,2.619,249,3.959,257,0.889,260,1.239,263,1.871,267,1.612,273,1.505,274,0.626,278,1.718,283,1.156,290,0.456,300,0.712,304,0.238,307,0.757,308,0.664,310,3.075,315,0.65,321,0.811,322,1.08,323,1.552,326,0.515,328,2.966,329,0.604,330,0.522,332,0.431,334,1.937,338,0.452,347,0.775,348,0.584,353,0.919,356,0.509,359,0.543,364,2.554,366,1.288,374,0.941,376,3.223,378,1.583,380,0.941,381,1.063,385,0.575,386,0.55,387,3.709,388,0.509,390,0.638,391,2.468,395,0.584,401,0.368,402,0.368,403,0.368,404,0.368,405,0.368,406,0.368,407,0.368,408,0.368,409,0.368,410,0.696,414,1.922,415,0.696,429,0.835,439,2.039,440,0.614,444,1.357,445,2.291,448,0.783,463,2.484,467,3.681,469,0.964,471,0.664,482,1.256,488,0.566,496,1.84,499,2.291,513,1.971,514,1.654,517,0.714,532,1.529,568,1.362,586,0.99,596,1.32,598,1.156,599,0.734,614,0.714,617,0.594,618,1.32,631,1.459,634,1.696,635,1.569,636,1.135,639,0.679,644,1.286,646,2.1,648,1.766,653,0.757,655,2.655,657,0.849,665,0.955,668,1.583,670,0.626,676,0.594,685,1.286,690,1.097,774,1.583,775,0.714,786,1.017,787,1.971,793,0.734,800,1.097,803,0.783,814,0.734,829,0.849,831,1.569,844,1.653,877,0.714,902,1.742,949,1.156,959,1.751,1014,1.135,1053,3.066,1060,4.627,1062,0.481,1071,0.492,1092,1.634,1093,1.793,1095,1.643,1097,2.66,1098,1.202,1119,1.653,1135,0.895,1224,1.063,1225,0.604,1246,2.399,1247,2.188,1248,3.065,1249,1.178,1251,0.813,1252,1.399,1255,3.611,1260,0.679,1267,2.094,1333,0.757,1348,0.955,1349,0.696,1350,2.87,1351,1.766,1352,0.895,1353,1.202,1354,0.955,1355,1.048,1356,1.048,1357,1.048,1358,0.955,1359,2.305,1360,0.696,1361,3.059,1362,1.048,1363,1.048,1364,1.048,1365,1.048,1366,3.366,1367,2.462,1368,0.757,1369,1.048,1370,1.048,1371,1.936,1372,1.048,1373,0.783,1374,1.048,1375,1.048,1376,1.048,1377,1.048,1378,1.048,1379,0.955,1380,1.048,1381,1.048,1382,0.955,1383,1.048,1384,1.048,1385,1.936,1386,1.936,1387,1.936,1388,1.048,1389,1.936,1390,1.446,1391,1.766,1392,1.936,1393,1.936,1394,1.766,1395,2.7,1396,3.362,1397,1.936,1398,3.066,1399,1.936,1400,1.936,1401,1.766,1402,1.653,1403,1.048,1404,1.048,1405,1.048,1406,1.048,1407,0.757,1408,0.813,1409,1.048,1410,1.048,1411,0.955,1412,1.048,1413,2.305,1414,1.202,1415,0.849,1416,0.849,1417,0.734,1418,0.783,1419,1.446,1420,1.653,1421,0.849,1422,0.664,1423,1.228,1424,1.286,1425,0.955,1426,0.955,1427,1.048,1428,1.936,1429,1.048,1430,2.7,1431,1.048,1432,0.955,1433,0.955,1434,3.362,1435,1.569,1436,0.895,1437,0.813,1438,1.048]],["component/17",[179,0.571]],["title/18-1",[24,8.915,84,17.581,445,36.22,1260,34.468]],["name/18-1",[]],["text/18-1",[]],["component/18-1",[]],["title/18-2",[176,15.547,445,36.22,705,32.342,1260,34.468]],["name/18-2",[]],["text/18-2",[]],["component/18-2",[]],["title/18-3",[83,36.205,1439,62.86]],["name/18-3",[]],["text/18-3",[]],["component/18-3",[]],["title/18-4",[189,23.654,300,25.356]],["name/18-4",[]],["text/18-4",[]],["component/18-4",[]],["title/18-5",[304,15.63,320,22.48]],["name/18-5",[]],["text/18-5",[]],["component/18-5",[]],["title/18",[7,14.209,18,10.026,33,19.956,34,21.383,70,12.203,118,22.788,119,22.409]],["name/18",[7,0.557,33,0.783,34,0.838,119,0.879]],["text/18",[7,2.807,18,2.717,19,0.876,20,2.054,24,1.098,25,1.306,29,4.868,33,1.674,34,1.031,36,0.731,37,1.337,46,2.044,47,1.48,49,1.743,52,0.815,53,2.911,54,1.476,59,1.594,67,1.002,69,1.907,70,2.02,71,0.696,72,0.866,73,1.416,74,1.747,77,0.792,78,1.768,82,1.002,84,2.585,85,4.239,88,1.119,89,1.064,91,1.779,94,2.089,96,0.731,103,0.702,106,1.546,117,1.237,118,4.683,119,5.489,120,0.737,127,0.866,140,2.553,147,1.139,148,2.472,165,1.099,166,1.031,169,1.507,170,1.461,176,2.058,192,0.707,209,0.702,224,2.626,249,0.857,257,3.23,260,2.022,274,3.145,278,0.975,304,0.433,320,1.082,321,0.799,322,1.328,323,1.534,330,1.653,340,1.912,341,2.575,347,2.816,351,1.047,364,3.662,366,0.731,373,2.538,376,3.717,380,1.613,383,0.988,391,3.39,397,1.674,399,2.575,401,0.67,402,0.67,403,0.67,404,0.67,405,0.67,406,1.165,407,0.67,408,0.67,409,0.67,414,1.432,417,1.21,429,1.432,435,4.588,439,2.718,443,1.74,444,5.89,445,7.674,446,3.027,447,1.74,448,6.073,449,3.027,454,1.267,467,1.064,473,1.85,485,4.269,488,1.794,495,2.834,511,0.939,517,2.262,532,1.081,533,1.185,557,1.378,586,1.696,614,2.262,636,1.119,647,1.546,686,1.546,694,1.099,699,1.629,705,4.282,778,1.48,787,1.119,800,1.081,822,1.337,827,1.48,878,1.629,910,1.337,914,1.119,963,1.119,990,1.378,1016,1.546,1020,2.326,1060,2.326,1061,6.411,1117,1.74,1122,2.479,1134,1.74,1224,1.821,1260,6.101,1261,6.008,1348,1.74,1349,1.267,1414,1.185,1439,1.74,1440,1.74,1441,1.908,1442,1.629,1443,1.74,1444,1.908,1445,1.74,1446,1.908,1447,1.908,1448,3.319,1449,1.908,1450,1.908,1451,1.908,1452,1.908,1453,1.908,1454,2.397,1455,1.908,1456,1.908,1457,1.908,1458,1.908,1459,1.908,1460,1.629,1461,1.908,1462,1.908,1463,1.908,1464,1.908,1465,1.908,1466,1.908,1467,3.319,1468,3.319,1469,2.262,1470,1.908,1471,7.037,1472,1.629,1473,1.908,1474,1.629,1475,1.908,1476,1.546,1477,1.908,1478,1.908,1479,1.908,1480,1.908,1481,1.908,1482,1.425,1483,1.908,1484,1.908,1485,1.908]],["component/18",[179,0.571]],["title/19-1",[7,19.09,24,8.915,117,34.468,176,15.547]],["name/19-1",[]],["text/19-1",[]],["component/19-1",[]],["title/19-2",[189,23.654,300,25.356]],["name/19-2",[]],["text/19-2",[]],["component/19-2",[]],["title/19-3",[304,15.63,320,22.48]],["name/19-3",[]],["text/19-3",[]],["component/19-3",[]],["title/19",[7,21.559,20,15.775,117,38.925]],["name/19",[7,0.706,24,0.33,117,1.274]],["text/19",[1,1.506,5,0.407,7,4.004,9,1.589,10,0.71,12,3.637,16,1.316,18,1.829,20,1.408,24,1.769,25,1.758,27,0.836,29,0.886,31,1.378,33,4.202,34,1.549,36,2.053,46,0.749,52,1.65,55,1.002,57,1.825,59,2.848,61,0.624,65,2.813,69,1.399,70,1.653,73,1.504,74,0.64,77,3.457,78,3.844,84,1.772,85,1.924,87,0.766,91,2.914,92,2.651,93,1.206,94,2.352,103,0.594,116,1.711,117,7.077,127,1.301,137,0.964,138,2.102,140,1.824,143,1.526,166,0.872,168,1.047,176,2.111,183,2.609,192,2.797,194,2.274,200,1.378,208,1.813,209,1.054,220,1.445,224,1.7,253,4.44,304,0.366,322,0.646,323,2.514,329,1.651,330,0.804,332,1.178,336,1.472,338,0.696,340,1.651,347,1.872,354,1.308,355,1.131,361,4.638,364,3.363,366,1.793,372,1.131,373,3.416,374,1.878,380,1.392,385,5.202,387,4.34,388,1.878,390,2.351,391,2.559,395,0.9,397,2.36,398,2.008,401,0.566,402,0.566,403,0.566,404,0.566,405,0.566,406,0.566,407,0.566,408,0.566,409,0.566,414,2.952,417,1.024,418,2.07,444,2.707,473,0.9,512,0.946,526,0.784,533,1.002,557,1.166,562,1.206,617,1.623,639,1.047,653,2.791,655,3.7,679,1.024,681,2.189,685,1.072,686,1.308,687,1.206,697,1.047,698,1.072,725,2.14,740,1.166,748,1.1,787,0.946,800,0.914,802,1.308,805,2.791,814,1.131,821,1.131,834,0.886,849,1.392,859,3.651,860,1.711,903,1.252,913,1.131,924,1.949,963,1.68,1009,2.008,1020,2.707,1030,1.472,1048,1.378,1148,1.378,1241,1.252,1277,3.754,1333,1.166,1350,1.378,1486,1.378,1487,1.614,1488,1.614,1489,2.14,1490,1.614,1491,1.614,1492,5.357,1493,1.614,1494,1.308,1495,4.679,1496,3.864,1497,7.835,1498,4.679,1499,2.865,1500,4.679,1501,2.865,1502,1.614,1503,1.614,1504,1.614,1505,1.614,1506,4.885,1507,6.421,1508,1.614,1509,1.614,1510,1.614,1511,1.614,1512,1.614,1513,1.614,1514,2.633,1515,3.523,1516,1.614,1517,3.523,1518,2.865,1519,1.472,1520,1.614,1521,1.614,1522,1.472,1523,1.614,1524,1.614,1525,1.614,1526,1.614,1527,1.614,1528,1.614,1529,1.614,1530,1.614,1531,1.614,1532,1.614,1533,1.614,1534,1.614,1535,1.614,1536,1.614,1537,1.614,1538,1.614,1539,1.614,1540,1.614,1541,1.614,1542,1.472,1543,1.308]],["component/19",[179,0.571]],["title/20-1",[7,24.761,33,34.776]],["name/20-1",[]],["text/20-1",[]],["component/20-1",[]],["title/20-2",[7,24.761,1020,48.303]],["name/20-2",[]],["text/20-2",[]],["component/20-2",[]],["title/20-3",[304,15.63,320,22.48]],["name/20-3",[]],["text/20-3",[]],["component/20-3",[]],["title/20",[5,15.121,6,29.895,115,44.834]],["name/20",[5,0.391,6,0.773,63,0.638,115,1.159]],["text/20",[7,2.46,18,1.503,20,1.23,24,0.785,29,1.573,35,2.248,41,1.446,42,3.109,49,2.458,52,1.999,54,1.274,64,3.036,71,2.165,74,2.993,77,3.132,84,0.948,85,2.439,90,2.569,91,3.597,94,2.716,96,3.633,103,2.182,115,8.061,116,1.711,119,4.587,120,1.108,133,3.637,140,1.117,155,2.795,170,1.261,176,2.606,188,3.418,192,1.736,209,3.277,227,1.33,249,1.288,257,3.716,267,2.795,290,2.983,300,1.054,304,0.65,321,1.201,322,1.147,323,0.998,334,3.945,360,2.323,364,3.449,387,4.387,391,3.193,397,1.446,401,1.006,402,1.006,403,1.006,404,1.006,405,1.006,406,1.006,407,1.006,408,1.006,409,1.006,438,2.248,439,1.19,445,6.072,473,3.307,474,5.404,496,1.954,509,1.55,514,1.41,515,2.224,526,2.275,528,2.609,533,1.78,547,4.602,595,1.744,639,1.859,697,1.859,717,5.143,746,5.312,778,4.602,784,2.009,800,1.624,815,3.496,821,3.28,822,3.28,849,2.275,881,2.696,905,1.527,910,2.009,965,2.323,1020,5.985,1060,2.009,1061,1.954,1251,5.312,1252,3.381,1260,1.859,1267,3.631,1281,3.496,1436,2.448,1494,2.323,1544,2.867,1545,4.681,1546,2.867,1547,2.867,1548,4.268,1549,4.681,1550,3.28,1551,2.614,1552,4.681,1553,4.268,1554,2.867,1555,3.996,1556,4.681,1557,2.867,1558,4.681,1559,2.867,1560,2.448,1561,2.071,1562,2.614,1563,6.848,1564,2.867,1565,4.681,1566,2.614,1567,2.867,1568,2.867]],["component/20",[179,0.571]],["title/21-1",[71,25.154,1569,62.86]],["name/21-1",[]],["text/21-1",[]],["component/21-1",[]],["title/21-2",[24,11.564,57,23.479]],["name/21-2",[]],["text/21-2",[]],["component/21-2",[]],["title/21-3",[22,23.807,24,10.068,25,17.789]],["name/21-3",[]],["text/21-3",[]],["component/21-3",[]],["title/21-4",[24,10.068,25,17.789,61,23.198]],["name/21-4",[]],["text/21-4",[]],["component/21-4",[]],["title/21-5",[10,26.41,24,10.068,25,17.789]],["name/21-5",[]],["text/21-5",[]],["component/21-5",[]],["title/21-6",[189,23.654,300,25.356]],["name/21-6",[]],["text/21-6",[]],["component/21-6",[]],["title/21-7",[304,15.63,320,22.48]],["name/21-7",[]],["text/21-7",[]],["component/21-7",[]],["title/21",[24,8.915,57,18.101,70,16.396,71,19.393]],["name/21",[5,0.391,24,0.26,57,0.528,72,0.704]],["text/21",[0,1.024,1,1.824,4,0.954,5,0.574,6,0.429,8,0.587,10,1.002,16,1.927,17,0.375,18,1.872,20,1.23,22,1.533,24,1.821,25,2.281,27,1.18,29,0.473,36,1.645,37,3.279,41,2.361,46,0.4,48,0.547,49,0.453,52,1.224,53,0.718,54,1.013,57,2.332,60,2.141,61,2.292,63,0.664,68,0.567,69,1.822,70,2.694,71,2.343,72,0.391,73,2.426,74,0.64,75,1.024,77,2.756,79,0.524,84,0.285,85,0.354,88,0.505,89,1.27,91,0.348,94,1.533,95,0.446,99,0.44,100,1.683,102,2.254,103,1.054,109,0.429,111,0.515,112,1.667,118,2.9,120,2.292,127,2.286,128,1.045,129,0.804,130,1.414,131,3.484,133,1.023,138,1.288,139,0.622,140,0.888,143,0.459,145,0.547,148,0.404,154,0.982,155,0.515,157,0.515,159,0.488,160,0.473,170,0.379,176,1.943,183,0.71,184,1.134,189,0.983,190,0.622,192,0.845,194,0.785,198,0.669,204,0.736,205,0.86,208,0.758,209,1.054,210,0.9,219,4.893,220,0.435,224,0.379,227,1.33,230,0.572,234,1.988,237,0.505,241,1.379,249,1.524,253,0.559,257,1.97,260,0.741,263,0.766,267,0.515,274,0.964,290,0.992,295,1.767,304,0.195,306,3.862,314,0.515,315,1.002,321,0.676,322,0.345,323,1.346,326,0.794,327,0.698,332,1.395,334,0.496,338,0.696,353,0.766,356,1.107,359,0.836,362,1.072,364,1.37,366,1.481,374,0.419,376,0.361,381,0.473,387,4.162,388,1.393,390,0.524,391,1.604,400,1.166,401,0.302,402,0.302,403,0.302,404,0.302,405,0.302,406,0.302,407,0.302,408,0.302,409,0.302,410,0.572,414,1.463,418,0.622,439,0.67,453,3.3,469,1.689,475,4.961,493,0.873,498,0.559,499,1.1,510,0.48,511,0.424,512,0.946,514,0.424,522,6.169,523,0.698,532,3.36,545,1.024,568,1.446,585,1.231,586,1.734,600,1.047,615,0.572,618,1.1,627,1.335,631,0.873,636,0.505,643,1.861,650,1.513,653,0.622,664,0.964,671,1.253,681,0.915,683,1.651,719,0.396,773,1.206,774,0.505,780,1.131,803,1.206,821,1.131,834,1.25,849,0.419,850,0.547,856,0.473,860,0.964,861,0.505,906,0.559,918,5.239,924,0.435,949,0.964,967,0.453,1009,0.604,1013,0.515,1024,0.505,1062,1.557,1071,0.404,1073,0.604,1083,0.982,1085,1.024,1092,2.086,1093,1.904,1094,1.308,1095,0.982,1097,0.964,1125,0.604,1126,1.308,1260,4.165,1270,1.472,1283,4.212,1288,2.896,1306,1.904,1332,4.639,1335,0.622,1347,0.604,1352,0.736,1366,0.736,1401,0.786,1414,2.399,1417,1.596,1437,0.669,1514,6.013,1543,1.308,1553,2.077,1561,1.166,1569,2.077,1570,7.492,1571,0.644,1572,0.669,1573,1.615,1574,6.186,1575,0.644,1576,0.862,1577,0.736,1578,0.862,1579,0.622,1580,0.736,1581,1.477,1582,1.513,1583,0.559,1584,0.862,1585,1.615,1586,3.524,1587,0.862,1588,0.862,1589,1.379,1590,0.862,1591,0.862,1592,0.862,1593,0.862,1594,0.862,1595,0.862,1596,0.862,1597,0.862,1598,1.615,1599,0.669,1600,0.862,1601,0.698,1602,0.786,1603,0.862,1604,0.862,1605,1.615,1606,2.866,1607,2.077,1608,0.644,1609,1.615,1610,0.862,1611,1.472,1612,0.524,1613,0.644,1614,0.862,1615,0.862,1616,0.862,1617,0.862,1618,0.862,1619,5.409,1620,2.614,1621,1.472,1622,1.472,1623,1.472,1624,5.205,1625,1.615,1626,1.615,1627,8.823,1628,8.823,1629,0.862,1630,0.786,1631,0.862,1632,1.253,1633,0.786,1634,0.862,1635,1.615,1636,0.698,1637,1.472,1638,1.206,1639,2.077,1640,0.862,1641,6.642,1642,6.642,1643,6.642,1644,0.862,1645,2.278,1646,0.862,1647,2.278,1648,1.615,1649,1.472,1650,0.862,1651,0.862,1652,0.862,1653,0.862,1654,0.786,1655,0.862,1656,0.862,1657,0.862,1658,0.862,1659,0.862,1660,0.862,1661,0.862,1662,1.1,1663,0.862,1664,2.278,1665,1.615,1666,0.862,1667,0.862,1668,0.862,1669,0.862,1670,0.862,1671,0.862,1672,0.862,1673,0.862,1674,0.862,1675,0.862,1676,0.862,1677,0.862,1678,0.862,1679,1.615,1680,1.615,1681,0.862,1682,0.862,1683,0.862,1684,0.862,1685,0.862,1686,0.862,1687,0.862,1688,0.862,1689,0.862,1690,0.862,1691,0.862,1692,1.615,1693,0.862,1694,0.736,1695,1.615,1696,1.615,1697,0.862,1698,0.862,1699,0.862,1700,0.736,1701,1.166,1702,1.615,1703,1.615,1704,1.615,1705,1.615,1706,1.615,1707,1.615,1708,1.615,1709,1.615,1710,0.786,1711,0.786,1712,0.622]],["component/21",[179,0.571]],["title/22-1",[304,15.63,320,22.48]],["name/22-1",[]],["text/22-1",[]],["component/22-1",[]],["title/22",[0,33.703,4,22.266,20,13.968,400,38.388]],["name/22",[0,1.246,4,0.823,400,1.419]],["text/22",[1,2.305,4,4.144,18,2.333,20,2.124,24,1.895,25,1.753,50,5.049,61,2.286,65,2.305,67,3.106,69,2.141,70,1.824,71,2.158,73,3.437,74,3.205,75,5.124,99,3.023,101,4.144,102,4.243,103,3.385,104,3.106,105,3.106,108,4.144,109,4.024,110,5.016,111,4.824,120,2.286,127,2.685,128,2.714,129,2.946,130,3.672,131,2.629,170,3.555,176,1.73,209,2.972,289,4.793,290,2.576,304,1.341,315,3.672,323,2.06,347,2.367,401,2.076,402,2.076,403,2.076,404,2.076,405,2.076,406,2.076,407,2.076,408,2.076,409,2.076,694,3.407,743,3.599,902,3.063,1092,2.874,1422,3.75,1579,4.271,1580,5.049,1713,5.393,1714,4.588,1715,5.393,1716,5.049]],["component/22",[179,0.571]],["title/23-1",[20,13.968,70,16.396,153,36.22,429,22.921]],["name/23-1",[]],["text/23-1",[]],["component/23-1",[]],["title/23-2",[20,13.968,57,18.101,153,36.22,154,32.342]],["name/23-2",[]],["text/23-2",[]],["component/23-2",[]],["title/23-3",[24,7.254,94,17.152,96,16.573,153,29.47,299,26.315,1717,39.433]],["name/23-3",[]],["text/23-3",[]],["component/23-3",[]],["title/23-4",[71,25.154,176,20.165]],["name/23-4",[]],["text/23-4",[]],["component/23-4",[]],["title/23-5",[189,23.654,300,25.356]],["name/23-5",[]],["text/23-5",[]],["component/23-5",[]],["title/23-6",[304,15.63,320,22.48]],["name/23-6",[]],["text/23-6",[]],["component/23-6",[]],["title/23",[14,26.963,153,40.904,154,36.524]],["name/23",[14,0.883,153,1.339,154,1.196]],["text/23",[5,1.005,14,1.793,16,0.806,18,1.721,19,1.086,20,1.935,24,1.719,25,1.183,34,2.798,36,0.907,43,1.534,49,1.243,52,1.01,53,1.774,57,2.312,58,1.793,59,1.136,69,0.856,70,2.095,71,3.004,72,1.074,77,2.148,79,3.15,80,2.841,87,2.885,91,3.46,92,4.171,94,2.053,95,3.149,96,3.284,99,1.209,109,1.178,118,1.363,127,1.812,140,2.37,153,7.345,154,6.166,157,1.412,160,2.841,167,2.429,168,1.534,176,2.292,183,1.041,184,1.178,188,2.433,191,2.546,192,1.919,209,1.468,210,1.319,220,2.013,227,2.821,237,2.34,257,3.379,277,1.571,294,3.438,299,1.44,304,0.536,306,1.298,310,3.286,323,1.39,332,2.5,334,1.363,338,2.622,353,1.123,356,2.954,359,2.067,361,2.883,364,2.09,366,0.907,379,1.767,380,1.15,383,1.226,385,2.19,387,4.349,388,2.516,391,2.272,401,0.83,402,0.83,403,0.83,404,0.83,405,0.83,406,0.83,407,0.83,408,0.83,409,0.83,422,2.885,429,2.232,452,2.02,467,1.319,469,3.028,490,1.767,509,1.279,510,2.225,512,3.564,526,2.516,528,1.319,529,1.412,532,1.34,533,2.478,548,1.767,558,2.157,559,2.02,561,1.469,570,2.883,573,2.157,577,1.363,580,1.709,589,2.157,592,5.267,595,1.44,597,5.159,598,3.09,607,2.157,608,2.02,610,2.02,611,2.02,612,2.157,613,1.709,639,3.357,643,1.298,681,1.34,682,2.02,690,1.34,712,1.612,719,1.832,749,2.02,779,1.917,782,2.02,787,1.387,793,4.26,800,2.261,806,1.534,849,1.15,859,2.72,869,1.917,1011,1.571,1062,2.376,1071,1.873,1224,2.19,1225,1.363,1266,1.917,1382,2.157,1494,1.917,1717,2.157,1718,5.176,1719,1.658,1720,2.366,1721,2.02,1722,2.366,1723,2.366,1724,2.366,1725,2.366,1726,2.478,1727,2.366,1728,2.366,1729,3.991,1730,3.991,1731,3.991,1732,1.571,1733,3.991,1734,3.991,1735,2.366,1736,2.366,1737,2.02,1738,2.366,1739,1.835,1740,2.366,1741,1.835,1742,2.366,1743,2.366,1744,2.366,1745,2.366,1746,2.366,1747,2.157]],["component/23",[179,0.571]],["title/24-1",[29,37.83,514,33.91]],["name/24-1",[]],["text/24-1",[]],["component/24-1",[]],["title/24-2",[189,23.654,300,25.356]],["name/24-2",[]],["text/24-2",[]],["component/24-2",[]],["title/24-3",[304,15.63,320,22.48]],["name/24-3",[]],["text/24-3",[]],["component/24-3",[]],["title/24",[5,13.39,20,13.968,120,20.541,155,31.73]],["name/24",[58,0.883,96,0.753,120,0.759]],["text/24",[4,1.135,5,2.576,18,1.678,20,2.374,22,2.263,24,1.664,25,2.171,29,3.131,32,2.72,36,3.34,46,1.258,49,1.423,52,1.157,53,1.205,57,0.923,58,4.376,61,1.047,63,1.114,68,3.058,69,2.065,70,2.572,71,2.415,73,2.355,77,1.125,83,1.423,87,1.286,89,2.492,96,4.089,100,3.434,103,0.997,120,4.244,127,2.59,130,1.683,131,3.706,138,2.008,140,2.58,148,1.272,152,2.413,155,3.406,162,1.535,176,0.793,184,1.35,188,1.789,192,1.005,220,1.367,224,1.193,231,1.487,257,2.052,263,1.286,278,1.385,304,0.615,312,1.683,314,3.406,321,2.39,322,1.789,323,3.035,332,3.241,338,2.855,353,1.286,356,3.217,364,1.805,366,3.565,380,1.317,383,1.404,387,4.086,388,1.317,391,3.376,401,0.951,402,0.951,403,0.951,404,0.951,405,0.951,406,0.951,407,0.951,408,0.951,409,0.951,410,2.969,429,1.169,438,2.147,467,1.511,509,1.465,526,2.172,528,2.492,529,1.618,533,3.542,542,1.618,568,1.367,586,1.385,618,1.847,619,1.758,620,2.024,621,1.8,622,2.471,623,2.471,624,2.103,625,2.471,626,1.899,627,2.621,628,2.471,630,2.196,631,2.416,639,1.758,644,1.8,717,1.847,806,1.758,861,1.589,925,1.8,949,1.618,953,1.847,1013,1.618,1062,2.052,1071,1.272,1092,2.772,1095,1.649,1097,2.669,1098,1.683,1225,1.561,1300,2.103,1422,2.835,1423,1.719,1583,1.758,1726,2.775,1732,1.8,1748,2.314,1749,1.958,1750,2.71,1751,2.71,1752,2.71,1753,2.71,1754,2.71,1755,2.71,1756,2.71,1757,2.71,1758,2.71,1759,2.71,1760,2.71]],["component/24",[179,0.571]],["title/25-1",[20,15.775,157,35.833,429,25.885]],["name/25-1",[]],["text/25-1",[]],["component/25-1",[]],["title/25-2",[20,15.775,157,35.833,1135,51.246]],["name/25-2",[]],["text/25-2",[]],["component/25-2",[]],["title/25-3",[33,30.279,157,35.833,313,29.525]],["name/25-3",[]],["text/25-3",[]],["component/25-3",[]],["title/25-4",[33,30.279,157,35.833,158,44.834]],["name/25-4",[]],["text/25-4",[]],["component/25-4",[]],["title/25-5",[20,15.775,157,35.833,176,17.558]],["name/25-5",[]],["text/25-5",[]],["component/25-5",[]],["title/25-6",[304,15.63,320,22.48]],["name/25-6",[]],["text/25-6",[]],["component/25-6",[]],["title/25",[24,7.999,63,19.608,156,27.955,157,28.47,158,35.621]],["name/25",[156,1.152,157,1.173,158,1.468]],["text/25",[0,1.42,1,1.485,4,2.083,5,2.024,18,1.487,20,2.202,24,1.832,25,2.572,33,3.609,36,3.079,48,1.42,53,1.694,55,2.365,57,2.24,59,1.075,61,2.267,65,0.873,69,2.124,70,2.207,71,2.61,72,1.017,73,2.454,74,0.888,84,2.658,87,1.063,94,1.972,100,2.166,103,0.824,107,2.771,127,1.017,133,1.006,138,1.006,140,1.485,152,1.611,156,2.233,157,6.519,158,7.849,169,1.73,176,1.924,188,2.348,191,1.102,192,2.175,194,3.196,208,1.051,209,1.401,220,1.922,227,2.307,247,1.526,249,2.233,253,3.224,283,1.337,304,0.508,308,1.42,313,3.953,321,2.083,322,0.896,323,2.919,330,1.115,358,1.912,364,0.904,366,3.079,373,1.29,386,1.176,387,1.472,388,1.851,391,1.859,397,1.13,401,0.786,402,0.786,403,0.786,404,0.786,405,0.786,406,0.786,407,0.786,408,0.786,409,0.786,414,1.643,429,3.953,430,1.569,439,0.929,472,1.618,474,2.915,487,3.087,507,4.875,513,1.313,514,1.102,560,1.363,563,2.029,586,1.947,634,1.13,646,1.193,668,1.313,670,2.274,719,1.028,786,2.611,788,1.39,819,1.452,832,1.815,856,2.091,905,1.193,914,1.313,959,3.224,1009,1.569,1062,2.692,1071,2.333,1092,1.088,1143,1.912,1151,1.912,1224,2.091,1225,1.29,1246,1.363,1248,1.29,1249,1.363,1306,3.302,1308,2.042,1309,1.618,1310,1.815,1314,1.912,1390,2.846,1424,1.487,1454,1.618,1550,1.569,1562,2.042,1579,3.591,1583,5.795,1719,1.569,1732,1.487,1761,1.737,1762,2.239,1763,7.086,1764,1.912,1765,5.349,1766,3.81,1767,2.239,1768,2.239,1769,1.912,1770,2.042,1771,1.526,1772,1.815,1773,6.577,1774,1.737,1775,3.81,1776,2.239,1777,2.239,1778,2.239,1779,3.81,1780,2.239,1781,2.042,1782,5.997,1783,2.042,1784,2.042,1785,2.042,1786,1.737,1787,1.912,1788,2.239,1789,2.042,1790,2.239,1791,4.972,1792,4.972,1793,2.239,1794,2.239,1795,2.239,1796,2.239,1797,2.239,1798,2.239,1799,1.526]],["component/25",[179,0.571]],["title/26-1",[24,11.564,107,38.425]],["name/26-1",[]],["text/26-1",[]],["component/26-1",[]],["title/26-2",[18,13.47,22,21.081,107,29.625,157,31.73]],["name/26-2",[]],["text/26-2",[]],["component/26-2",[]],["title/26-3",[16,16.242,17,20.772,18,12.086,22,18.915,107,26.581]],["name/26-3",[]],["text/26-3",[]],["component/26-3",[]],["title/26-4",[189,23.654,300,25.356]],["name/26-4",[]],["text/26-4",[]],["component/26-4",[]],["title/26-5",[304,15.63,320,22.48]],["name/26-5",[]],["text/26-5",[]],["component/26-5",[]],["title/26",[16,18.101,24,8.915,107,29.625,159,30.107]],["name/26",[16,0.528,73,0.499,107,0.865,160,0.851]],["text/26",[1,2.403,5,1.446,9,0.549,10,0.588,14,0.6,16,3.042,17,2.849,18,2.297,22,1.613,24,1.737,25,1.205,33,1.671,36,1.804,41,2.051,45,2.106,48,0.847,51,0.733,52,1.033,53,1.075,55,0.829,57,2.62,58,0.6,61,1.819,65,0.521,69,2.078,70,0.746,72,1.504,74,1.613,77,2.853,80,3.151,82,2.762,94,0.53,95,2.438,96,2.016,102,1.27,107,4.632,111,0.798,127,0.606,140,0.943,157,5.879,158,3.929,159,2.303,172,0.783,176,2.376,192,0.897,194,1.175,208,0.627,209,1.495,220,1.22,224,0.588,227,0.62,228,1.806,234,1.418,257,0.613,260,1.866,278,1.236,290,0.582,294,3.493,299,0.813,304,0.303,321,1.013,322,0.968,323,2,328,2.266,329,0.77,332,1.362,338,0.576,347,2.467,353,1.93,356,0.649,359,0.692,362,4.344,364,3.708,366,1.804,376,1.013,380,0.649,381,2.886,386,1.27,387,4.322,388,4.341,391,1.239,397,1.22,401,0.849,402,0.469,403,0.469,404,0.469,405,0.469,406,0.469,407,0.469,408,0.469,409,0.469,414,3.095,425,3.565,429,1.043,438,2.757,439,0.554,440,0.783,456,1.472,469,2.025,471,0.847,493,0.722,507,6.475,510,0.745,511,1.19,542,0.798,545,0.847,567,1.876,572,3.471,577,2.711,586,1.693,627,0.783,634,0.674,636,1.418,643,2.886,655,4.492,679,0.847,683,0.77,690,0.757,705,1.472,719,0.613,740,0.965,748,1.648,787,2.759,793,4.023,803,3.516,832,1.96,856,1.818,924,2.051,1014,1.418,1026,0.965,1062,1.11,1071,1.135,1083,2.474,1142,2.065,1143,4.018,1151,4.018,1168,3.471,1224,1.327,1225,0.77,1233,1.218,1235,1.218,1454,0.965,1514,1.648,1515,2.205,1579,0.965,1608,0.998,1719,0.936,1726,0.829,1761,5.968,1763,2.849,1765,1.218,1774,1.036,1782,2.205,1783,2.205,1784,2.205,1785,2.205,1786,1.876,1789,1.218,1800,1.336,1801,1.336,1802,0.965,1803,1.336,1804,1.336,1805,1.336,1806,0.887,1807,1.336,1808,3.313,1809,6.875,1810,2.418,1811,2.418,1812,2.418,1813,2.418,1814,2.418,1815,4.065,1816,2.418,1817,2.418,1818,2.418,1819,4.065,1820,2.418,1821,1.877,1822,5.26,1823,4.065,1824,6.165,1825,1.336,1826,6.76,1827,1.336,1828,3.707,1829,4.065,1830,4.707,1831,4.065,1832,4.065,1833,4.065,1834,4.065,1835,4.065,1836,4.065,1837,4.707,1838,4.065,1839,1.336,1840,1.336,1841,5.235,1842,1.336,1843,1.336,1844,5.26,1845,1.336,1846,1.336,1847,1.336,1848,1.876,1849,2.418,1850,2.418,1851,1.336,1852,2.418,1853,1.336]],["component/26",[179,0.571]],["title/27-1",[14,30.967,24,11.564]],["name/27-1",[]],["text/27-1",[]],["component/27-1",[]],["title/27-2",[15,36.524,1828,54.731,1854,60.022]],["name/27-2",[]],["text/27-2",[]],["component/27-2",[]],["title/27-3",[9,33.29]],["name/27-3",[]],["text/27-3",[]],["component/27-3",[]],["title/27-4",[156,35.186,463,33.456,902,31.091]],["name/27-4",[]],["text/27-4",[]],["component/27-4",[]],["title/27-5",[18,15.212,463,33.456,902,31.091]],["name/27-5",[]],["text/27-5",[]],["component/27-5",[]],["title/27-6",[18,12.086,85,19.608,306,26.169,391,17.826,967,25.045]],["name/27-6",[]],["text/27-6",[]],["component/27-6",[]],["title/27-7",[84,22.803,1482,51.494]],["name/27-7",[]],["text/27-7",[]],["component/27-7",[]],["title/27-8",[12,45.863]],["name/27-8",[]],["text/27-8",[]],["component/27-8",[]],["title/27-9",[143,43.128]],["name/27-9",[]],["text/27-9",[]],["component/27-9",[]],["title/27-10",[1343,69.125]],["name/27-10",[]],["text/27-10",[]],["component/27-10",[]],["title/27-11",[421,62.81]],["name/27-11",[]],["text/27-11",[]],["component/27-11",[]],["title/27-12",[7,24.761,45,35.709]],["name/27-12",[]],["text/27-12",[]],["component/27-12",[]],["title/27-13",[7,24.761,120,26.643]],["name/27-13",[]],["text/27-13",[]],["component/27-13",[]],["title/27-14",[7,19.09,52,22.698,120,20.541,189,18.236]],["name/27-14",[]],["text/27-14",[]],["component/27-14",[]],["title/27-15",[119,39.051,257,31.638]],["name/27-15",[]],["text/27-15",[]],["component/27-15",[]],["title/27-16",[1855,62.86,1856,62.86]],["name/27-16",[]],["text/27-16",[]],["component/27-16",[]],["title/27-17",[304,15.63,320,22.48]],["name/27-17",[]],["text/27-17",[]],["component/27-17",[]],["title/27",[161,69.125]],["name/27",[2,1.699,3,1.826]],["text/27",[1,0.934,5,2.623,7,3.403,9,3.048,10,0.307,12,3.473,13,1.405,14,0.594,15,6.554,16,0.643,17,0.822,18,2.49,19,2.004,20,0.183,21,0.705,24,0.784,25,0.392,27,0.685,28,0.504,34,0.377,35,0.635,36,1.26,37,0.927,38,0.805,43,0.858,45,2.569,46,0.875,49,0.695,52,2.437,53,1.066,54,1.461,57,1.689,59,0.635,61,1.27,63,1.796,65,1.702,67,0.695,68,1.004,69,1.036,70,1.689,71,1.199,73,0.224,76,1.005,77,0.995,78,0.372,83,0.366,84,3.066,85,2.347,87,1.358,90,1.035,91,0.282,94,1.135,97,1.259,100,0.822,103,0.257,116,2.961,118,0.402,119,4.339,120,1.807,121,3.813,127,1.983,133,0.848,134,2.576,136,2.55,137,1.126,138,0.848,143,3.644,144,0.636,145,3.888,148,2.877,150,1.224,152,1.211,156,0.409,160,0.383,163,1.171,164,0.541,165,1.087,168,0.452,169,0.857,170,1.259,171,1.224,176,2.001,178,2.75,183,0.307,184,0.659,188,0.279,189,0.647,191,0.343,192,0.889,194,0.643,205,2.49,208,0.327,224,2.3,234,1.678,239,0.541,249,1.077,257,1.313,260,0.32,263,3.002,273,1.052,275,0.489,277,0.463,278,1.225,279,0.596,283,0.417,292,0.433,295,0.541,298,0.636,300,0.694,301,2.868,304,0.544,306,2.018,315,1.777,316,2.138,320,0.228,322,0.529,323,1.628,328,0.737,329,1.087,330,1.425,332,0.287,334,3.011,338,0.301,339,0.879,340,0.402,341,1.464,347,3.383,348,1.336,353,2.219,357,0.452,362,0.463,364,0.534,366,2.098,374,2.272,376,2.992,378,0.409,380,0.339,381,0.726,383,0.977,385,0.726,386,0.366,387,0.511,391,2.906,392,1.791,393,0.749,395,1.052,401,0.245,402,0.245,403,0.245,404,0.245,405,0.245,406,0.245,407,0.464,408,0.245,409,0.245,413,0.565,414,3.716,418,0.956,421,4.906,425,0.433,426,1.68,429,2.806,430,1.68,438,1.151,439,2.169,440,3.474,444,0.927,448,0.988,454,1.592,463,4.27,469,0.348,473,0.389,474,0.776,480,1.026,485,1.072,487,1.529,490,0.521,493,0.715,498,0.452,502,1.464,512,0.409,524,0.475,526,0.643,531,0.521,546,2.442,560,3.473,576,1.13,578,0.988,579,0.565,584,0.521,585,0.377,587,0.504,593,1.52,595,0.805,600,0.858,613,1.731,617,0.395,633,2.047,646,0.372,657,0.565,668,1.106,670,0.79,678,2.186,679,3.888,681,1.069,694,0.762,697,0.452,698,0.879,717,0.475,719,0.607,725,0.521,727,0.425,743,0.425,786,0.991,796,0.596,800,1.358,801,0.541,812,1.555,819,0.452,821,0.927,833,1.791,834,1.035,861,0.409,862,0.636,881,0.402,902,3.624,903,0.541,905,0.372,906,0.452,908,1.943,911,1.555,914,0.409,924,0.667,963,0.409,966,1.286,967,2.998,978,0.541,996,1.026,1024,0.409,1045,1.791,1060,1.68,1061,1.95,1062,0.866,1065,0.636,1116,1.196,1167,0.636,1193,0.489,1223,0.956,1243,0.596,1246,2.237,1247,1.529,1248,2.118,1249,1.459,1251,1.026,1252,1.363,1253,0.988,1256,0.565,1274,0.988,1281,0.521,1283,1.815,1288,1.611,1293,1.72,1295,1.206,1296,1.206,1303,0.541,1304,0.636,1305,0.596,1306,0.463,1309,0.504,1310,0.565,1312,0.636,1314,0.596,1316,0.541,1317,1.791,1318,0.541,1319,0.541,1320,0.596,1321,0.636,1322,0.636,1323,0.636,1324,0.636,1325,0.636,1332,0.504,1333,0.504,1339,0.636,1343,3.446,1345,2.047,1346,1.791,1347,1.68,1359,0.596,1361,0.541,1373,0.521,1408,0.541,1421,0.565,1432,0.636,1433,0.636,1437,0.541,1443,0.636,1482,0.521,1542,1.206,1543,1.529,1551,1.206,1608,0.521,1638,2.455,1662,0.902,1741,1.026,1770,1.206,1855,3.982,1856,1.72,1857,2.997,1858,0.636,1859,0.636,1860,0.698,1861,0.698,1862,0.596,1863,0.442,1864,0.698,1865,0.698,1866,0.698,1867,0.636,1868,0.698,1869,0.636,1870,1.887,1871,0.698,1872,4.367,1873,1.323,1874,0.698,1875,1.323,1876,0.636,1877,1.887,1878,1.887,1879,1.323,1880,1.887,1881,1.887,1882,1.206,1883,0.698,1884,0.698,1885,0.636,1886,1.206,1887,0.698,1888,0.698,1889,1.13,1890,1.206,1891,0.698,1892,1.323,1893,2.186,1894,0.698,1895,0.698,1896,0.636,1897,1.206,1898,0.596,1899,0.698,1900,0.698,1901,1.72,1902,1.13,1903,0.636,1904,1.072,1905,0.636,1906,0.636,1907,0.636,1908,0.636,1909,0.698,1910,1.13,1911,1.323,1912,1.206,1913,1.323,1914,0.698,1915,0.698,1916,1.323,1917,1.323,1918,1.323,1919,0.698,1920,1.887,1921,0.698,1922,0.698,1923,3.287,1924,0.698,1925,0.698,1926,0.698,1927,0.698,1928,0.698,1929,0.698,1930,0.698,1931,0.839,1932,1.943,1933,0.698,1934,0.541,1935,0.565,1936,0.636,1937,0.698,1938,2.997,1939,0.698,1940,0.636,1941,0.636,1942,0.698,1943,1.323,1944,0.698,1945,0.698,1946,3.287,1947,0.698,1948,0.698,1949,1.206,1950,1.323,1951,0.698,1952,1.206,1953,0.698,1954,0.636,1955,0.698,1956,0.698,1957,0.698,1958,0.698,1959,0.698,1960,0.698,1961,1.323,1962,0.698,1963,0.698,1964,0.596,1965,0.698]],["component/27",[179,0.571]],["title/28-1",[7,21.559,120,23.198,165,34.576]],["name/28-1",[]],["text/28-1",[]],["component/28-1",[]],["title/28-2",[119,34.001,165,34.576,257,27.546]],["name/28-2",[]],["text/28-2",[]],["component/28-2",[]],["title/28-3",[41,30.279,49,31.523,165,34.576]],["name/28-3",[]],["text/28-3",[]],["component/28-3",[]],["title/28-4",[5,15.121,15,36.524,906,38.925]],["name/28-4",[]],["text/28-4",[]],["component/28-4",[]],["title/28-5",[304,15.63,320,22.48]],["name/28-5",[]],["text/28-5",[]],["component/28-5",[]],["title/28",[5,13.39,15,32.342,70,16.396,103,19.549]],["name/28",[70,0.826,103,0.985]],["text/28",[5,2.6,7,3.264,9,2.174,10,0.844,13,3.1,15,6.819,18,2.389,19,0.881,21,1.777,22,2.097,24,1.606,25,1.567,33,1.683,34,1.803,35,1.602,37,3.705,41,1.683,49,1.752,50,1.638,52,0.82,54,0.853,59,0.921,63,0.789,65,0.748,67,3.45,68,2.102,69,3.139,70,3.4,71,3.542,83,1.008,84,2.787,91,0.775,97,1.008,100,1.453,103,3.615,118,3.046,119,4.235,120,3.028,127,3.937,131,2.351,133,0.862,138,3.171,140,3.38,152,1.411,160,1.053,164,1.489,165,4.066,169,1.514,170,0.844,171,2.163,176,1.752,192,0.712,208,0.9,209,2.416,210,1.07,220,4.754,249,2.375,257,3.867,273,1.859,275,2.337,283,3.157,290,1.453,300,0.706,304,0.435,323,0.668,330,0.956,366,1.696,376,0.804,378,1.125,383,0.994,391,0.717,392,1.433,393,1.087,395,3.934,401,0.673,402,0.673,403,0.673,404,0.673,405,0.673,406,0.673,407,0.673,408,0.673,409,0.673,414,0.828,438,1.602,439,0.796,463,2.466,493,1.037,496,1.308,514,2.177,526,0.933,532,2.996,546,1.275,578,2.492,592,2.588,593,1.217,613,1.386,676,2.507,681,1.087,719,2.031,727,1.168,786,1.752,798,1.345,801,1.489,902,2.292,905,2.357,906,3.884,908,1.555,913,1.345,914,1.125,962,1.555,966,1.308,967,2.777,1062,2.427,1092,0.933,1093,3.978,1116,2.806,1223,3.196,1225,3.046,1255,1.555,1256,5.324,1257,1.638,1259,1.638,1260,3.429,1262,1.638,1263,1.638,1264,1.638,1266,1.555,1267,3.433,1351,4.822,1352,3.778,1361,1.489,1408,1.489,1411,1.75,1414,1.191,1417,1.345,1418,1.433,1419,1.433,1420,2.848,1423,2.115,1424,2.216,1425,1.75,1426,1.75,1550,1.345,1713,1.75,1726,2.747,1863,1.217,1893,3.042,1931,2.115,1935,1.555,1952,1.75,1966,1.75,1967,1.919,1968,1.75,1969,2.848,1970,1.919,1971,1.919,1972,1.919,1973,1.919,1974,1.919,1975,1.919]],["component/28",[179,0.571]],["title/29-1",[1265,53.776]],["name/29-1",[]],["text/29-1",[]],["component/29-1",[]],["title/29-2",[10,19.028,12,24.497,18,10.96,24,7.254,25,12.817,143,23.036]],["name/29-2",[]],["text/29-2",[]],["component/29-2",[]],["title/29-3",[189,23.654,300,25.356]],["name/29-3",[]],["text/29-3",[]],["component/29-3",[]],["title/29-4",[304,15.63,320,22.48]],["name/29-4",[]],["text/29-4",[]],["component/29-4",[]],["title/29",[10,20.983,14,21.422,18,12.086,20,12.533,143,25.403]],["name/29",[10,0.864,14,0.883,143,1.047]],["text/29",[1,1.43,4,0.898,5,2.215,9,1.509,10,4.915,12,3.629,14,3.355,16,1.25,18,2.288,22,1.908,23,1.423,24,1.714,25,2.926,34,2.601,35,1.029,36,2.862,37,1.501,41,2.874,52,1.567,53,3.657,54,2.848,57,2.182,61,2.476,63,1.509,65,0.835,69,1.742,70,3.261,71,1.339,72,1.666,73,1.547,78,1.141,80,1.176,84,1.214,85,0.881,92,1.214,100,0.933,103,0.788,118,1.234,127,0.973,128,3.206,130,2.278,133,0.963,139,4.627,140,2.497,143,4.808,145,3.613,165,2.772,166,2.601,169,0.973,170,0.943,176,1.667,189,1.651,191,1.054,192,2.92,194,1.041,208,1.006,209,2.096,220,1.081,253,1.39,260,0.983,263,2.284,275,1.501,300,1.349,304,0.486,316,1.601,321,3.3,322,2.28,323,2.743,332,1.509,338,1.582,345,1.501,347,0.857,351,2.013,356,1.783,359,1.901,366,2.862,374,1.783,376,2.016,378,1.256,380,1.041,386,1.125,387,3.044,388,1.783,391,1.372,401,0.752,402,0.752,403,0.752,404,0.752,405,0.752,406,0.752,407,0.752,408,0.752,409,0.752,418,4.627,422,1.194,429,2.075,439,1.523,472,3.475,493,1.158,496,1.46,532,3.629,533,1.33,541,3.993,551,1.601,561,2.278,563,1.141,615,1.423,617,2.078,643,1.176,646,1.141,655,1.983,670,1.279,681,1.214,722,1.83,740,1.548,774,3.34,784,2.571,849,1.041,864,1.662,882,1.83,905,1.141,967,1.125,1019,1.662,1062,0.983,1071,1.006,1092,1.041,1093,1.423,1178,5.965,1224,3.516,1225,1.234,1283,2.327,1347,1.501,1408,1.662,1414,2.987,1417,1.501,1469,4.366,1601,4.618,1613,1.601,1632,1.662,1694,3.133,1774,1.662,1806,1.423,1886,1.954,1905,1.954,1906,1.954,1907,1.954,1976,5.698,1977,1.954,1978,1.83,1979,5.196,1980,1.954,1981,5.842,1982,4.421,1983,1.954,1984,1.954,1985,1.954,1986,2.143,1987,2.143,1988,2.143,1989,3.346,1990,3.346,1991,2.143,1992,1.954,1993,2.143,1994,3.346,1995,2.143,1996,2.143,1997,1.954,1998,1.954,1999,2.143,2000,2.143,2001,1.954]],["component/29",[179,0.571]],["title/30-1",[12,30.107,84,17.581,86,41.232,87,25.226]],["name/30-1",[]],["text/30-1",[]],["component/30-1",[]],["title/30-2",[189,23.654,300,25.356]],["name/30-2",[]],["text/30-2",[]],["component/30-2",[]],["title/30-3",[304,15.63,320,22.48]],["name/30-3",[]],["text/30-3",[]],["component/30-3",[]],["title/30",[18,10.96,24,7.254,25,12.817,61,16.713,70,13.34,143,23.036]],["name/30",[12,1.517,143,1.427]],["text/30",[5,0.938,7,0.783,9,2.9,10,0.96,12,5.543,14,0.98,16,2.205,18,2.4,20,1.281,21,1.162,24,1.753,25,2.233,27,1.13,36,1.868,46,1.012,47,1.692,48,1.383,52,1.591,53,0.97,54,2.563,57,2.205,59,1.789,61,2.228,63,0.897,65,2.524,68,0.766,69,2.344,70,2.922,71,3.134,72,0.99,73,1.568,77,0.905,78,2.597,83,1.146,84,1.613,85,3.531,86,1.692,87,1.035,90,3.164,94,0.865,100,2.511,109,1.086,127,3.202,138,0.98,140,3.231,143,4.947,145,5.446,146,3.38,148,1.748,149,1.768,150,2.416,160,2.044,162,1.236,163,1.354,166,2.014,169,2.213,176,2.063,183,2.537,184,1.086,194,4.413,209,3.341,220,2.459,224,1.639,260,1.001,283,1.302,292,1.354,304,0.495,306,1.197,321,2.415,322,1.491,323,2.457,326,4.941,328,2.076,332,0.897,340,1.256,347,1.491,348,1.216,351,2.044,355,1.528,364,0.881,366,2.21,374,1.06,376,1.561,387,1.44,388,2.369,390,1.327,391,0.815,392,1.629,395,1.216,397,1.1,401,1.307,402,0.766,403,0.766,404,0.766,405,0.766,406,0.766,407,0.766,408,0.766,409,0.766,410,1.449,411,1.862,414,0.941,416,1.989,418,5.986,422,2.076,424,1.862,426,1.528,427,1.862,428,1.989,429,3.249,431,3.397,432,3.18,433,1.629,434,3.397,435,2.61,439,1.546,440,1.279,473,2.076,505,2.691,516,1.692,517,1.486,524,3.322,532,2.11,585,1.179,655,1.179,668,2.184,676,3.668,683,1.256,684,1.768,690,1.236,698,1.449,719,1.001,787,1.279,799,1.989,819,1.415,821,1.528,822,2.61,849,1.06,850,1.383,856,1.197,859,3.929,877,1.486,881,1.256,905,1.162,963,1.279,1014,1.279,1024,2.858,1062,1.001,1071,1.748,1092,1.06,1224,1.197,1225,1.256,1272,1.989,1283,2.362,1302,1.768,1306,2.474,1345,1.862,1349,1.449,1402,1.862,1414,2.313,1445,1.989,1454,2.691,1571,3.642,1662,1.486,1694,3.18,1712,1.575,1715,1.989,2002,2.782,2003,2.181,2004,1.692,2005,2.181,2006,1.768,2007,2.181,2008,3.397,2009,3.397,2010,2.181,2011,2.181,2012,2.181,2013,1.989,2014,1.989,2015,3.725,2016,2.181,2017,2.181,2018,2.181,2019,1.768]],["component/30",[179,0.571]],["title/31-1",[146,47.462]],["name/31-1",[]],["text/31-1",[]],["component/31-1",[]],["title/31-2",[18,13.47,146,31.157,150,34.468,2020,38.388]],["name/31-2",[]],["text/31-2",[]],["component/31-2",[]],["title/31-3",[18,13.47,131,23.627,146,31.157,150,34.468]],["name/31-3",[]],["text/31-3",[]],["component/31-3",[]],["title/31-4",[9,24.68,283,35.833,1904,48.643]],["name/31-4",[]],["text/31-4",[]],["component/31-4",[]],["title/31-5",[146,40.412,2021,55.868]],["name/31-5",[]],["text/31-5",[]],["component/31-5",[]],["title/31-6",[18,13.47,70,16.396,84,17.581,2021,43.073]],["name/31-6",[]],["text/31-6",[]],["component/31-6",[]],["title/31-7",[18,13.47,131,23.627,150,34.468,2021,43.073]],["name/31-7",[]],["text/31-7",[]],["component/31-7",[]],["title/31-8",[36,20.368,146,31.157,150,34.468,162,30.107]],["name/31-8",[]],["text/31-8",[]],["component/31-8",[]],["title/31-9",[304,15.63,320,22.48]],["name/31-9",[]],["text/31-9",[]],["component/31-9",[]],["title/31",[143,31.973,145,38.061,146,35.186]],["name/31",[143,1.047,146,1.152,150,1.274]],["text/31",[1,1.288,4,2.199,9,2.685,12,1.872,14,1.485,18,2.381,19,2.409,20,1.379,22,1.311,35,1.587,43,3.404,46,2.436,57,1.126,69,1.9,84,1.736,85,3.058,90,4.081,111,1.973,127,4.11,131,2.333,140,1.288,143,3.478,145,6.136,146,6.207,147,3.134,148,2.463,149,6.027,150,6.866,170,2.873,176,0.967,183,2.31,184,1.646,192,1.225,209,3.455,220,1.667,224,2.31,238,2.822,252,2.822,271,2.096,277,2.195,281,3.013,282,2.469,283,3.134,304,0.749,321,2.199,323,1.151,326,4.453,328,2.926,330,1.646,340,1.904,347,1.322,348,1.842,351,2.88,376,2.199,383,1.712,387,2.523,401,1.842,402,1.16,403,1.16,404,1.16,405,1.16,406,1.16,407,1.16,408,1.16,409,1.16,414,1.425,418,2.387,429,1.425,439,2.178,531,2.469,585,1.786,596,2.252,619,2.143,647,2.678,670,1.973,679,2.096,694,1.904,698,2.195,719,1.517,740,3.791,775,2.252,786,3.905,819,2.143,901,2.678,907,2.678,911,2.143,976,2.469,1092,2.551,1097,1.973,1098,2.052,1116,2.096,1119,2.822,1130,3.013,1248,1.904,1346,3.921,1347,2.316,1353,2.052,1354,3.013,1394,3.013,1422,2.096,1424,2.195,1437,2.564,1550,3.678,1774,2.564,1802,5.371,1806,3.486,1903,5.954,1904,6.999,1910,2.822,1938,3.013,1941,3.013,2008,4.786,2009,3.013,2013,3.013,2014,3.013,2021,4.254,2022,2.822,2023,3.305,2024,3.305,2025,3.305,2026,3.305,2027,3.305,2028,3.305,2029,3.305,2030,3.305,2031,3.305,2032,3.305,2033,3.305,2034,5.954,2035,3.791,2036,6.529,2037,3.305,2038,3.305,2039,3.305,2040,3.305,2041,3.013,2042,3.305,2043,3.305,2044,3.305,2045,5.249,2046,3.305,2047,3.305,2048,3.305,2049,3.305,2050,3.305,2051,2.822,2052,3.305]],["component/31",[179,0.571]],["title/32-1",[5,13.39,112,22.921,121,29.625,1265,35.302]],["name/32-1",[]],["text/32-1",[]],["component/32-1",[]],["title/32-2",[121,29.625,133,23.875,176,15.547,309,37.24]],["name/32-2",[]],["text/32-2",[]],["component/32-2",[]],["title/32-3",[121,29.625,176,15.547,2053,48.464,2054,36.22]],["name/32-3",[]],["text/32-3",[]],["component/32-3",[]],["title/32-4",[45,27.531,121,29.625,176,15.547,456,32.342]],["name/32-4",[]],["text/32-4",[]],["component/32-4",[]],["title/32-5",[121,29.625,124,39.7,125,39.7,176,15.547]],["name/32-5",[]],["text/32-5",[]],["component/32-5",[]],["title/32-6",[176,15.547,1638,39.7,1714,41.232,2054,36.22]],["name/32-6",[]],["text/32-6",[]],["component/32-6",[]],["title/32-7",[189,23.654,300,25.356]],["name/32-7",[]],["text/32-7",[]],["component/32-7",[]],["title/32-8",[304,15.63,320,22.48]],["name/32-8",[]],["text/32-8",[]],["component/32-8",[]],["title/32",[5,13.39,20,13.968,112,22.921,121,29.625]],["name/32",[5,0.391,52,0.662,112,0.669,121,0.865]],["text/32",[5,1.544,6,1.599,8,7.232,18,2.269,19,0.454,20,0.26,21,0.527,24,0.793,25,0.293,36,0.379,42,0.657,45,3.685,52,3.038,53,0.817,54,1.679,57,0.875,59,1.542,63,0.755,67,1.35,69,2.78,70,2.127,71,0.361,74,1.875,77,0.762,84,3.148,85,2.634,87,0.47,90,2.072,91,1.727,94,2.541,103,1.573,112,3.727,121,3.571,122,1.372,123,1.372,124,4.785,125,2.821,126,3.667,131,0.44,133,3.931,138,0.825,140,1.252,155,1.097,176,3.121,188,3.364,191,0.487,192,0.953,208,1.772,209,2.885,224,0.435,227,0.459,234,2.771,249,1.442,260,0.454,267,1.097,278,0.506,299,0.602,300,0.676,304,0.224,309,4.294,310,2.041,319,0.657,321,0.77,322,0.396,323,0.895,326,1.857,328,2.859,329,3.356,330,0.493,332,0.407,334,3.165,338,0.427,340,0.57,346,0.768,347,1.028,356,0.481,359,0.513,364,3.03,366,0.985,372,1.801,373,0.57,376,1.077,381,2.594,386,1.35,387,4.585,390,2.298,391,2.395,393,0.561,395,0.552,397,0.499,401,0.347,402,0.347,403,0.347,404,0.347,405,0.347,406,0.347,407,0.347,408,0.347,409,0.347,413,0.802,414,1.845,422,2.105,425,1.14,429,0.792,440,0.58,456,5.447,457,0.614,463,1.024,469,1.881,473,0.552,474,0.58,511,1.264,522,2.508,546,2.841,557,0.715,560,2.603,568,1.905,586,2.978,598,2.554,600,1.191,626,2.646,634,1.905,636,0.58,681,0.561,684,0.802,686,0.802,690,0.561,705,1.564,712,0.674,719,0.454,746,2.929,786,0.965,787,1.882,788,0.614,793,2.646,821,0.693,822,0.693,824,0.768,830,1.568,837,1.489,856,0.543,902,0.952,905,0.527,913,0.693,918,2.344,926,0.845,973,0.715,979,0.902,1014,1.077,1302,0.802,1346,1.372,1347,0.693,1379,1.675,1414,0.614,1482,0.739,1583,0.642,1624,0.802,1638,4.578,1700,4.035,1714,3.667,1732,0.657,1737,0.845,1771,6.438,1885,0.902,1901,0.902,1931,0.628,2053,5.589,2054,4.986,2055,6.406,2056,4.678,2057,2.57,2058,6.487,2059,0.99,2060,0.99,2061,1.994,2062,0.99,2063,0.902,2064,2.928,2065,0.99,2066,0.99,2067,0.99,2068,0.99,2069,0.99,2070,0.902,2071,0.902,2072,0.902,2073,2.57,2074,3.776,2075,3.06,2076,3.224,2077,3.776,2078,0.99,2079,0.99,2080,0.99,2081,0.99,2082,2.57,2083,0.99,2084,0.99,2085,0.99,2086,2.57,2087,0.99,2088,0.99,2089,0.99,2090,1.837,2091,0.99,2092,4.278,2093,1.675,2094,1.675,2095,1.837,2096,1.675,2097,1.837,2098,0.902,2099,0.902,2100,3.211,2101,0.99,2102,4.678,2103,0.99,2104,0.99,2105,0.99,2106,0.99,2107,0.99,2108,0.902,2109,0.99,2110,0.902,2111,0.99,2112,1.837,2113,0.902,2114,0.902,2115,0.99,2116,0.99,2117,0.99,2118,0.99,2119,0.99,2120,0.99,2121,0.99,2122,0.99,2123,0.99,2124,0.99]],["component/32",[179,0.571]],["title/33-1",[6,23.752,24,7.999,124,35.621,125,35.621,176,13.95]],["name/33-1",[]],["text/33-1",[]],["component/33-1",[]],["title/33-2",[6,18.155,24,6.115,25,10.803,70,11.245,73,11.72,84,12.058,126,28.279,176,10.663]],["name/33-2",[]],["text/33-2",[]],["component/33-2",[]],["title/33-3",[25,17.789,61,23.198,176,17.558]],["name/33-3",[]],["text/33-3",[]],["component/33-3",[]],["title/33-4",[189,23.654,300,25.356]],["name/33-4",[]],["text/33-4",[]],["component/33-4",[]],["title/33-5",[304,15.63,320,22.48]],["name/33-5",[]],["text/33-5",[]],["component/33-5",[]],["title/33",[5,9.183,6,18.155,18,9.238,121,20.318,122,27.228,123,27.228,124,27.228,125,27.228]],["name/33",[5,0.323,6,0.638,122,0.957,123,0.957,126,0.994]],["text/33",[1,1.7,5,2.32,6,3.525,8,2.972,9,2.534,16,1.485,18,1.916,19,0.551,20,0.166,21,0.336,22,0.476,24,1.678,25,1.972,28,0.867,34,0.341,36,1.304,41,2.471,42,1.143,45,0.326,46,0.292,51,0.659,52,0.513,53,0.28,54,0.534,56,0.511,57,0.586,58,1.528,61,1.172,65,0.246,67,0.331,69,2.166,70,2.005,71,0.438,72,0.286,73,1.923,74,1.73,76,2.861,77,1.554,80,1.664,82,2.436,84,1.777,85,1.793,87,0.299,88,0.704,90,1.444,91,1.062,92,2.302,93,0.897,94,1.202,95,0.326,96,2.712,100,1.146,102,0.631,109,0.598,112,1.753,118,0.363,121,2.088,124,4.173,125,4.325,126,5.163,127,1.845,138,1.362,148,0.296,156,0.369,165,0.692,167,0.383,168,0.409,170,2.041,172,0.704,176,2.613,183,0.528,188,2.601,189,0.216,192,0.445,194,0.584,200,0.538,208,1.03,209,1.802,210,1.69,219,0.779,227,1.019,228,1.64,231,0.346,234,2.557,249,0.539,260,0.551,267,1.311,271,0.4,301,1.205,304,0.143,306,2.23,310,0.649,312,0.391,319,1.458,321,0.264,322,1.053,323,1.871,326,0.591,329,0.363,332,2.46,334,0.363,338,2.316,347,0.878,351,1.205,353,0.817,354,0.511,356,2.254,357,0.409,359,1.762,361,0.867,364,3.137,366,1.435,372,0.442,374,0.306,380,0.306,381,1.444,383,0.622,385,0.346,386,0.331,387,4.402,388,1.278,390,0.383,391,2.596,393,0.357,395,0.669,401,0.221,402,0.221,403,0.221,404,0.221,405,0.221,406,0.221,407,0.421,408,0.221,409,0.221,414,0.947,417,0.4,422,1.896,425,1.363,429,0.518,430,0.442,432,0.538,436,1.703,438,1.054,439,0.262,440,1.009,454,1.458,463,0.351,467,0.669,469,1.695,471,0.4,474,2.872,482,1.966,488,0.341,509,0.649,510,1.69,511,1.999,514,0.846,515,0.489,522,0.419,526,1.278,528,0.959,529,1.027,532,0.68,533,1.068,541,2.124,546,0.798,549,1.172,557,0.455,560,0.731,565,1.243,568,1.107,570,0.867,577,3.218,586,0.614,593,1.922,613,0.455,615,0.419,626,1.538,631,0.93,634,0.868,635,0.511,643,1.444,644,1.458,646,0.916,650,1.458,655,0.341,664,2.031,676,0.975,681,0.68,694,0.363,697,0.409,727,0.383,739,0.779,746,0.489,748,0.818,771,0.511,787,0.704,788,0.391,793,0.442,800,0.357,804,4.353,812,1.116,830,0.538,831,3.759,849,0.306,860,2.604,861,0.369,872,0.489,873,0.511,879,0.489,883,0.489,902,0.326,905,0.916,914,0.369,924,1.107,949,1.027,953,1.172,957,3.198,969,0.575,973,2.19,978,0.489,986,2.384,1013,1.571,1014,0.704,1024,1.287,1031,0.897,1062,0.289,1071,0.296,1083,2.07,1085,1.392,1089,0.867,1092,1.82,1093,0.419,1095,1.336,1097,1.81,1098,1.068,1178,0.538,1193,0.442,1230,2.19,1252,0.455,1283,1.668,1340,0.489,1398,5.28,1417,0.442,1489,0.471,1514,2.066,1550,0.442,1561,0.455,1571,2.265,1572,3.599,1575,0.471,1577,0.538,1583,0.779,1599,2.041,1608,0.897,1613,0.897,1700,1.469,1711,0.575,1714,2.041,1749,1.586,1771,1.496,1841,0.575,1896,0.575,1935,0.973,2004,0.489,2006,0.511,2054,0.818,2056,0.575,2058,0.575,2061,0.932,2075,0.511,2076,0.538,2093,0.575,2094,0.575,2096,0.575,2099,1.569,2102,3.102,2108,0.575,2110,0.575,2113,0.575,2114,0.575,2125,8.389,2126,8.872,2127,8.678,2128,8.539,2129,0.63,2130,0.63,2131,1.469,2132,0.63,2133,0.489,2134,0.575,2135,2.195,2136,1.72,2137,1.201,2138,1.095,2139,0.63,2140,0.575,2141,4.639,2142,1.201,2143,5.142,2144,1.201,2145,1.201,2146,4.639,2147,3.402,2148,5.587,2149,1.201,2150,0.63,2151,0.63,2152,4.899,2153,5.142,2154,4.899,2155,1.72,2156,3.402,2157,0.63,2158,1.72,2159,0.63,2160,1.72,2161,3.032,2162,0.63,2163,0.63,2164,1.201,2165,0.63,2166,0.575,2167,0.63,2168,0.63,2169,1.72,2170,0.63,2171,1.095,2172,0.63,2173,1.201,2174,0.63,2175,0.63,2176,0.63,2177,3.032,2178,0.575,2179,0.538,2180,0.575,2181,1.201,2182,0.471,2183,0.63,2184,0.63,2185,1.201,2186,1.201,2187,1.201,2188,0.63,2189,0.63,2190,0.63,2191,0.511,2192,0.63,2193,0.63,2194,0.63,2195,0.63,2196,0.63,2197,0.63,2198,0.63,2199,0.63,2200,1.201,2201,0.63,2202,0.63,2203,0.63,2204,0.575,2205,0.511,2206,0.63,2207,1.243,2208,0.63,2209,0.63,2210,1.538,2211,0.538,2212,0.63,2213,0.63,2214,0.63,2215,0.63,2216,1.025,2217,0.973,2218,1.025,2219,0.63,2220,4.361,2221,3.102,2222,1.72,2223,0.63,2224,0.63,2225,0.63,2226,0.63,2227,0.63,2228,0.63,2229,0.63,2230,0.63,2231,2.195,2232,0.63,2233,0.63,2234,0.63,2235,0.63,2236,0.63,2237,0.575,2238,1.201,2239,1.201,2240,1.201,2241,1.201,2242,1.201,2243,0.63,2244,0.63,2245,0.63,2246,0.63,2247,0.63,2248,0.63,2249,0.63,2250,0.63,2251,0.63]],["component/33",[179,0.571]],["title/34-1",[1265,53.776]],["name/34-1",[]],["text/34-1",[]],["component/34-1",[]],["title/34-2",[18,15.212,595,36.524,2252,51.246]],["name/34-2",[]],["text/34-2",[]],["component/34-2",[]],["title/34-3",[5,10.895,84,14.305,112,18.65,169,19.633,227,20.066,902,22.401]],["name/34-3",[]],["text/34-3",[]],["component/34-3",[]],["title/34-4",[5,12.014,94,18.915,169,21.65,438,22.9,902,24.702]],["name/34-4",[]],["text/34-4",[]],["component/34-4",[]],["title/34-5",[5,17.367,61,26.643]],["name/34-5",[]],["text/34-5",[]],["component/34-5",[]],["title/34-6",[24,7.999,25,14.133,61,18.431,290,20.772,493,25.777]],["name/34-6",[]],["text/34-6",[]],["component/34-6",[]],["title/34-7",[24,7.999,25,14.133,61,18.431,493,25.777,1863,30.24]],["name/34-7",[]],["text/34-7",[]],["component/34-7",[]],["title/34-8",[5,9.183,18,9.238,94,14.458,169,16.549,438,17.504,463,20.318,902,29.367]],["name/34-8",[]],["text/34-8",[]],["component/34-8",[]],["title/34-9",[189,23.654,300,25.356]],["name/34-9",[]],["text/34-9",[]],["component/34-9",[]],["title/34-10",[304,15.63,320,22.48]],["name/34-10",[]],["text/34-10",[]],["component/34-10",[]],["title/34",[5,13.39,84,17.581,112,22.921,227,24.662]],["name/34",[5,0.391,84,0.513,112,0.669,227,0.72]],["text/34",[1,1.276,5,2.75,6,0.505,10,1.44,18,2.331,20,1.772,21,1,24,1.629,25,2.436,27,0.973,36,1.668,41,1.652,45,0.525,52,0.433,53,0.835,57,0.64,58,0.455,59,1.572,61,3.449,63,1.346,64,0.657,69,2.249,70,1.343,71,0.37,73,1.236,74,0.745,76,1.744,77,0.421,84,2.671,85,3.257,87,0.891,91,1.757,94,2.675,96,1.668,103,0.691,109,0.505,112,3.01,128,1.765,138,2.79,140,0.732,147,1.121,152,0.794,155,0.605,166,1.015,169,2.82,170,0.446,176,2.782,188,2.486,192,0.696,204,0.865,205,3.457,208,1.804,209,2.051,210,0.565,227,0.871,228,0.757,231,0.556,234,1.919,249,0.455,260,0.465,273,0.565,275,0.71,278,0.518,290,2.706,300,0.373,304,0.23,306,0.556,321,2.336,322,0.752,323,1.673,324,2.54,326,0.924,327,0.822,330,0.505,332,2.43,338,0.81,343,0.865,347,0.752,353,0.481,364,1.553,366,1.841,372,0.71,374,2.532,376,1.372,386,1.719,387,4.324,388,1.591,389,1.712,391,2.835,395,0.565,397,1.94,401,0.356,402,0.356,403,0.356,404,0.356,405,0.356,406,0.356,407,0.356,408,0.356,409,0.356,414,1.412,417,0.643,435,0.71,438,2.502,439,0.421,455,2.393,456,3.17,459,0.924,460,0.924,461,0.924,463,2.426,467,0.565,469,1.307,493,3.508,509,1.015,510,1.825,511,1.291,514,2.563,522,0.673,526,0.913,528,1.047,529,1.121,534,1.712,568,1.324,577,1.511,586,2.663,595,2.34,617,1.064,631,1.418,634,1.324,636,1.538,643,0.556,644,1.743,653,0.732,676,2.721,682,1.603,705,0.617,719,0.465,789,0.924,804,0.822,812,3.832,834,2.11,860,0.605,878,0.865,902,4.019,905,0.54,926,2.24,949,1.566,950,5.917,953,1.788,959,1.218,967,0.532,1013,3.527,1024,0.594,1062,1.997,1071,1.536,1073,0.71,1092,2.871,1093,3.191,1094,3.893,1095,1.597,1097,2.598,1098,1.629,1127,0.924,1155,0.924,1281,1.403,1305,1.603,1306,1.247,1335,1.356,1476,0.822,1599,3.376,1608,1.96,1613,1.403,1624,0.822,1739,2.983,1749,4.268,1859,0.924,1863,2.438,1954,0.924,2020,1.895,2070,4.381,2071,0.924,2072,0.924,2075,0.822,2179,0.865,2191,4.222,2216,0.865,2217,0.822,2218,0.865,2252,1.603,2253,1.014,2254,1.878,2255,1.014,2256,1.014,2257,5.909,2258,1.014,2259,2.624,2260,1.014,2261,1.014,2262,1.014,2263,1.014,2264,1.014,2265,9.328,2266,1.014,2267,1.014,2268,1.014,2269,1.014,2270,1.014,2271,0.924,2272,1.878,2273,1.014,2274,1.014,2275,1.014,2276,1.014,2277,1.014,2278,2.624,2279,0.757,2280,1.014,2281,6.978,2282,3.845,2283,1.014,2284,1.014,2285,5.21,2286,1.014,2287,2.624,2288,1.878,2289,1.878,2290,1.014,2291,1.878,2292,1.014,2293,1.712,2294,1.712,2295,4.804,2296,1.878,2297,1.014,2298,1.878,2299,1.014,2300,1.014,2301,1.878,2302,2.624,2303,2.624,2304,3.845,2305,1.014,2306,1.014,2307,1.014,2308,2.624,2309,2.624,2310,1.878,2311,1.878,2312,1.878,2313,1.878,2314,1.014,2315,0.924,2316,1.014,2317,1.014,2318,1.014,2319,1.014,2320,1.014,2321,1.712,2322,1.014,2323,1.014,2324,1.014,2325,1.014]],["component/34",[179,0.571]],["title/35-1",[376,25.145,414,25.885,2326,54.731]],["name/35-1",[]],["text/35-1",[]],["component/35-1",[]],["title/35-2",[24,10.068,25,17.789,61,23.198]],["name/35-2",[]],["text/35-2",[]],["component/35-2",[]],["title/35-3",[114,45.789,712,46.979]],["name/35-3",[]],["text/35-3",[]],["component/35-3",[]],["title/35-4",[114,35.302,474,31.157,475,39.7,1026,38.388]],["name/35-4",[]],["text/35-4",[]],["component/35-4",[]],["title/35-5",[114,35.302,234,31.157,475,39.7,1026,38.388]],["name/35-5",[]],["text/35-5",[]],["component/35-5",[]],["title/35-6",[114,39.867,475,44.834,2327,54.731]],["name/35-6",[]],["text/35-6",[]],["component/35-6",[]],["title/35-7",[304,15.63,320,22.48]],["name/35-7",[]],["text/35-7",[]],["component/35-7",[]],["title/35",[5,13.39,6,26.472,63,21.854,114,35.302]],["name/35",[5,0.495,6,0.979,114,1.305]],["text/35",[1,1.287,3,0.907,5,2.28,9,0.991,14,0.598,18,1.884,19,1.106,20,0.868,24,1.637,25,1.934,35,1.157,38,0.81,41,0.671,46,0.617,49,1.266,51,2.879,52,1.029,53,1.071,54,0.591,55,0.826,57,0.453,59,1.946,61,2.377,63,0.547,64,0.863,65,0.519,69,1.467,70,1.25,71,0.879,73,1.062,74,0.956,76,1.284,77,0.552,84,0.44,85,2.157,91,1.333,92,0.754,94,1.31,95,0.689,96,2.01,102,1.266,109,0.663,114,6.482,133,1.483,138,2.573,140,0.939,147,0.794,155,3.419,169,1.499,170,1.06,176,2.372,188,1.321,189,0.457,191,0.654,192,1.503,208,1.131,209,3.329,210,1.841,224,1.06,234,3.357,247,1.642,253,1.563,257,2.629,260,3.149,271,0.844,274,1.439,283,0.794,290,0.58,292,0.826,293,3.484,303,0.81,304,0.302,309,0.932,310,0.719,320,0.434,321,0.557,322,0.532,323,1.15,330,0.663,332,0.991,339,0.884,340,0.766,347,0.964,353,0.632,360,5.804,364,0.973,366,1.266,376,2.577,378,2.751,382,5.126,383,0.689,387,4.32,391,3.706,396,1.078,397,2.368,401,0.467,402,0.467,403,0.467,404,0.467,405,0.467,406,0.467,407,0.467,408,0.467,409,0.467,414,2.024,417,0.844,422,1.841,439,1.371,451,1.078,456,1.466,463,0.742,466,1.213,468,2.197,469,3.825,474,4.633,475,6.198,488,0.719,498,1.563,505,0.961,509,1.785,510,3.192,511,1.185,514,0.654,526,1.171,528,1.343,529,1.439,532,1.871,533,0.826,545,1.528,560,2.466,561,2.516,565,1.74,568,2.368,569,1.078,570,2.385,578,0.994,580,2.385,586,1.688,595,2.01,608,2.057,621,1.6,627,4.502,631,2.537,634,0.671,639,0.863,655,0.719,676,1.365,683,0.766,685,1.6,697,0.863,699,1.136,705,1.466,712,0.907,739,1.563,743,0.81,760,1.136,778,3.641,812,2.142,849,1.171,850,0.844,907,1.953,915,1.688,916,1.953,920,2.676,949,2.802,953,2.762,961,1.213,963,1.413,967,0.699,973,1.74,991,1.136,999,1.136,1009,1.688,1013,1.972,1024,1.413,1026,1.74,1068,2.562,1073,0.932,1092,2.281,1093,1.6,1094,1.078,1095,3.192,1097,4.096,1098,2.914,1224,0.73,1317,0.994,1349,0.884,1417,0.932,1421,1.078,1437,1.032,1550,1.688,1560,1.136,1566,4.28,1607,1.213,1612,1.466,1701,3.39,1739,1.032,1741,1.032,1771,2.762,1802,0.961,1897,1.213,1940,1.213,2054,1.642,2210,1.688,2327,1.213,2328,1.032,2329,6.526,2330,5.246,2331,6.526,2332,2.41,2333,4.053,2334,1.213,2335,1.136,2336,2.41,2337,7.162,2338,4.693,2339,1.331,2340,1.331,2341,1.331,2342,3.302,2343,1.136,2344,1.331,2345,1.331,2346,1.331,2347,1.331,2348,1.213,2349,1.331,2350,1.331,2351,1.331,2352,1.213,2353,1.078,2354,1.331,2355,1.331,2356,3.506,2357,4.714,2358,2.197,2359,1.331,2360,1.331,2361,1.331,2362,1.331,2363,1.331,2364,1.331,2365,1.331,2366,1.331,2367,1.331,2368,1.331,2369,1.331,2370,1.331,2371,1.331,2372,3.302,2373,3.302,2374,5.246,2375,4.053,2376,1.331,2377,2.41,2378,1.331,2379,1.331,2380,1.331,2381,1.331,2382,1.331,2383,2.41]],["component/35",[179,0.571]],["title/36-1",[91,24.234,96,23.002,112,25.885]],["name/36-1",[]],["text/36-1",[]],["component/36-1",[]],["title/36-2",[41,21.815,63,17.781,74,17.152,112,18.65,138,19.426,514,21.272]],["name/36-2",[]],["text/36-2",[]],["component/36-2",[]],["title/36-3",[24,8.915,94,21.081,96,20.368,112,22.921]],["name/36-3",[]],["text/36-3",[]],["component/36-3",[]],["title/36-4",[24,8.915,77,22.057,96,20.368,511,26.144]],["name/36-4",[]],["text/36-4",[]],["component/36-4",[]],["title/36-5",[5,12.014,84,15.774,112,20.566,227,22.128,438,22.9]],["name/36-5",[]],["text/36-5",[]],["component/36-5",[]],["title/36-6",[189,23.654,300,25.356]],["name/36-6",[]],["text/36-6",[]],["component/36-6",[]],["title/36-7",[304,15.63,320,22.48]],["name/36-7",[]],["text/36-7",[]],["component/36-7",[]],["title/36",[5,15.121,6,29.895,112,25.885]],["name/36",[5,0.391,6,0.773,63,0.638,112,0.669]],["text/36",[0,0.71,1,0.437,2,0.71,4,1.198,5,2.149,6,0.558,16,1.208,18,2.226,19,0.945,20,1.556,22,1.134,24,1.493,25,1.854,36,2.269,41,4.079,42,1.368,45,1.837,49,2.697,52,1.994,54,1.271,55,0.696,56,0.908,57,1.208,59,0.989,61,0.433,63,1.458,68,0.393,69,2.566,70,1.712,71,1.043,72,0.935,73,1.502,74,3.653,75,0.71,77,2.457,79,0.682,80,1.13,84,2.558,85,1.175,87,2.81,90,2.275,91,3.329,92,0.635,94,2.904,96,3.859,100,0.488,102,0.588,103,0.758,105,0.588,112,4.388,120,0.433,121,0.625,129,1.026,131,0.498,133,1.284,138,2.81,140,1.382,152,1.5,155,1.23,156,1.676,160,0.615,169,0.509,170,0.493,172,1.207,176,2.771,184,1.424,188,2.837,191,1.013,192,0.764,208,0.967,209,3.387,210,0.625,219,1.336,224,0.493,227,2.383,234,1.676,245,1.022,249,2.493,260,0.945,263,1.357,273,0.625,292,0.696,299,0.682,304,0.254,306,0.615,310,1.917,312,1.279,320,0.365,321,1.486,322,0.824,323,2.179,324,1.598,326,0.551,330,0.558,332,2.282,334,1.647,338,2.393,339,0.744,347,0.448,348,0.625,353,0.978,354,0.908,355,0.785,356,1.723,359,1.067,364,2.649,366,2.269,372,0.785,374,0.544,376,0.863,380,0.544,383,1.837,385,1.13,386,2.453,387,4.24,388,1.001,390,0.682,391,2.817,393,0.635,394,0.908,397,0.565,400,0.809,401,1.003,402,0.393,403,0.393,404,0.393,405,0.393,406,0.393,407,0.393,408,0.393,409,0.393,414,0.483,422,1.148,438,2.243,439,0.855,456,2.158,463,2.862,469,0.558,471,1.813,488,0.606,509,3.201,510,1.148,511,2.913,514,2.039,522,0.744,526,1.723,528,1.593,529,1.707,542,0.669,545,0.71,548,0.837,560,3.603,563,0.597,568,1.039,585,0.606,586,2.625,587,0.809,593,0.71,595,3.377,596,0.764,597,1.443,598,0.669,611,2.441,626,0.785,631,0.606,634,2.091,636,0.657,639,0.727,643,0.615,644,1.368,664,1.23,676,0.635,681,1.167,685,0.744,690,0.635,697,0.727,705,2.842,715,1.022,719,0.514,739,1.336,740,1.488,746,3.216,773,3.836,778,2.218,787,2.079,788,0.696,793,1.443,814,4.383,824,0.869,849,1.389,859,1.948,860,0.669,901,0.908,902,2.66,905,0.597,930,3.78,931,3.78,932,1.022,934,5.399,935,1.022,936,2.607,937,2.607,938,1.878,942,1.022,963,0.657,967,0.588,973,1.488,1013,0.669,1014,1.207,1062,1.628,1071,1.664,1073,0.785,1120,0.869,1252,0.809,1281,0.837,1335,0.809,1368,0.809,1550,3.272,1555,0.957,1741,0.869,1771,3.183,1799,0.764,1863,0.71,2035,1.488,2051,0.957,2064,1.878,2075,0.908,2076,0.957,2178,1.878,2179,0.957,2182,0.837,2191,1.669,2293,1.878,2294,2.607,2384,1.12,2385,1.12,2386,1.12,2387,1.12,2388,1.12,2389,1.12,2390,4.145,2391,1.12,2392,1.12,2393,1.12,2394,1.12,2395,1.12,2396,1.12,2397,2.06,2398,2.06,2399,1.12,2400,1.12,2401,1.12,2402,1.12,2403,1.12,2404,1.12,2405,1.12,2406,1.12,2407,1.12,2408,2.06,2409,1.12,2410,1.022,2411,1.12,2412,3.547,2413,2.859,2414,4.145,2415,1.12,2416,2.06,2417,1.12,2418,1.12,2419,1.12,2420,1.12,2421,1.12,2422,1.12,2423,1.12,2424,1.12,2425,0.957,2426,1.12]],["component/36",[179,0.571]],["title/37-1",[78,31.973,112,25.885,176,17.558]],["name/37-1",[]],["text/37-1",[]],["component/37-1",[]],["title/37-2",[84,19.854,133,26.963,1359,51.246]],["name/37-2",[]],["text/37-2",[]],["component/37-2",[]],["title/37-3",[189,23.654,300,25.356]],["name/37-3",[]],["text/37-3",[]],["component/37-3",[]],["title/37-4",[304,15.63,320,22.48]],["name/37-4",[]],["text/37-4",[]],["component/37-4",[]],["title/37",[20,15.775,78,31.973,112,25.885]],["name/37",[35,0.943,78,1.047,112,0.847]],["text/37",[1,0.719,5,2.345,7,3.704,13,1.082,18,2.031,20,0.847,24,1.844,25,1.732,29,5.566,33,2.596,34,1.742,36,1.235,38,1.962,49,2.703,51,1.769,57,0.628,63,0.759,65,2.278,69,2.502,70,1.802,72,1.464,73,2.223,74,0.732,76,0.983,77,3.72,78,5.917,83,1.693,84,1.702,87,0.876,91,1.302,96,1.645,103,0.679,109,0.919,112,3.866,116,1.101,117,4.165,120,0.713,133,3.6,137,3.834,138,2.312,155,2.563,159,1.045,163,1.145,167,1.123,169,1.464,170,0.812,176,2.564,183,1.418,188,0.738,192,1.592,193,1.333,194,0.897,209,1.893,227,0.856,244,1.293,249,1.448,257,1.479,260,1.479,263,0.876,267,1.101,277,1.225,279,1.575,290,0.804,292,2.001,294,1.225,304,0.418,306,1.769,321,2.156,322,1.29,323,1.495,329,1.063,330,2.138,347,0.738,351,1.012,364,2.96,366,1.645,371,1.575,385,2.356,386,0.969,387,3.709,388,2.501,391,1.924,396,1.495,397,0.931,401,0.648,402,0.648,403,1.131,404,0.648,405,0.648,406,0.648,407,0.648,408,0.648,409,0.648,438,3.084,439,1.338,444,1.293,445,1.257,448,1.378,463,1.028,467,1.028,469,1.606,473,5.485,486,1.378,499,2.197,509,0.997,510,1.028,514,2.874,526,3.74,528,1.028,529,1.101,533,3.988,549,1.257,551,1.378,554,1.333,563,2.287,577,1.857,595,1.123,597,2.259,598,1.101,599,3.606,600,1.197,631,0.997,634,0.931,636,1.082,643,1.769,655,0.997,671,2.501,676,1.045,679,1.17,681,2.915,685,1.225,712,1.257,783,1.495,800,1.826,805,1.333,815,1.378,822,3.606,823,2.612,828,1.495,849,2.086,850,1.17,856,1.769,858,1.257,860,1.101,861,1.082,864,3.33,869,1.495,881,2.473,902,0.956,905,1.717,911,1.197,918,1.145,924,1.626,964,2.752,966,1.257,999,1.575,1014,1.89,1016,1.495,1017,1.575,1018,1.682,1019,1.431,1020,4.844,1021,1.682,1022,1.682,1023,1.682,1024,1.082,1027,1.225,1038,1.682,1039,1.682,1040,1.682,1041,1.682,1042,1.682,1044,1.575,1047,1.682,1048,1.575,1148,1.575,1176,2.939,1267,5.363,1454,1.333,1862,1.575,2427,1.845,2428,1.845,2429,1.845,2430,1.845,2431,1.845,2432,1.845,2433,1.495,2434,1.845,2435,1.845,2436,3.224,2437,1.845,2438,1.845,2439,1.845,2440,1.845,2441,1.845,2442,1.845,2443,1.845,2444,1.845,2445,1.845]],["component/37",[179,0.571]],["title/38-1",[189,23.654,300,25.356]],["name/38-1",[]],["text/38-1",[]],["component/38-1",[]],["title/38-2",[304,15.63,320,22.48]],["name/38-2",[]],["text/38-2",[]],["component/38-2",[]],["title/38",[10,17.406,18,10.026,24,6.636,25,11.724,41,19.956,70,12.203,139,28.572]],["name/38",[10,0.683,14,0.697,142,1.414,309,1.087]],["text/38",[1,0.739,5,0.831,9,1.356,10,4.529,14,1.482,18,1.506,20,0.498,22,2.079,24,1.575,25,1.933,29,1.81,36,1.264,37,3.07,41,4.879,45,0.981,51,1.04,53,0.842,57,1.785,60,1.415,61,2.296,63,1.356,69,1.897,70,1.617,71,1.599,72,0.86,73,2.389,79,1.153,82,1.733,89,1.839,94,2.079,95,1.709,100,0.825,102,0.995,103,1.213,109,1.643,112,0.817,118,1.091,127,2.697,132,2.191,133,1.482,134,1.327,135,2.139,138,3.149,139,6.663,140,0.739,143,1.009,154,1.153,156,1.111,176,2.173,184,0.944,192,0.702,194,2.129,198,1.47,203,2.191,205,1.009,209,1.213,210,1.056,220,0.956,227,0.879,234,1.934,237,1.111,249,1.482,257,2.011,295,1.47,301,1.04,304,0.43,306,1.04,312,3.254,320,1.709,321,2.196,322,1.32,323,1.526,326,0.932,332,2.443,338,1.423,340,1.091,351,1.81,356,1.603,359,1.709,364,0.765,366,1.679,374,1.603,376,1.382,387,3.496,388,0.921,390,1.153,391,1.959,395,1.056,401,0.665,402,0.665,403,0.665,404,0.665,405,0.665,406,0.665,407,0.665,408,0.665,409,0.665,414,0.817,429,1.423,438,0.91,453,3.741,454,1.258,469,2.182,499,1.291,510,1.056,511,0.932,512,1.111,522,7.182,532,2.482,541,2.311,551,2.464,553,4.57,560,1.153,561,2.72,563,2.792,565,1.368,568,1.664,577,1.091,597,2.311,598,1.131,615,2.91,617,1.073,627,1.934,631,1.024,634,0.956,644,1.258,646,1.009,664,1.969,727,4.266,769,1.728,774,1.111,788,1.176,834,1.04,850,1.201,856,1.04,918,3.254,927,2.248,953,1.291,986,1.327,1024,1.934,1027,1.258,1045,1.415,1062,2.011,1071,0.889,1083,2.007,1085,2.092,1089,1.368,1092,1.603,1093,1.258,1126,1.535,1224,1.04,1230,5.627,1260,2.841,1332,4.71,1414,3.254,1417,1.327,1514,5.309,1517,1.728,1561,1.368,1572,3.399,1586,3.008,1608,1.415,1613,3.273,1630,1.728,1632,1.47,1636,1.535,1637,1.728,1638,1.415,1639,1.728,1786,1.47,1821,1.073,1978,1.618,1989,1.728,1990,1.728,1992,1.728,2166,1.728,2357,4.71,2446,1.728,2447,5.947,2448,1.895,2449,1.895,2450,1.895,2451,1.895,2452,1.895,2453,3.299,2454,1.895,2455,1.895,2456,1.728,2457,1.895,2458,1.895,2459,1.895,2460,1.728,2461,1.895,2462,1.895,2463,1.618,2464,1.728,2465,1.728,2466,1.895,2467,1.895,2468,1.895,2469,1.895,2470,1.895,2471,1.895,2472,1.895,2473,1.895,2474,3.008,2475,4.779,2476,3.299,2477,7.429,2478,1.895,2479,1.895,2480,1.895,2481,1.895,2482,1.895,2483,1.895,2484,3.299,2485,3.299,2486,3.299,2487,3.299,2488,3.299,2489,3.299,2490,3.299,2491,3.299,2492,3.299,2493,3.299,2494,1.895,2495,1.895,2496,1.895,2497,1.895,2498,1.728,2499,1.895,2500,1.895,2501,3.299,2502,1.895,2503,1.895,2504,1.895,2505,1.895,2506,1.895,2507,1.895,2508,1.895,2509,1.895,2510,1.895,2511,1.895,2512,1.895,2513,1.895,2514,1.895,2515,1.895]],["component/38",[179,0.571]],["title/39",[]],["name/39",[9,0.638,24,0.26,160,0.851,490,1.159]],["text/39",[]],["component/39",[179,0.571]],["title/40",[]],["name/40",[4,0.823,11,1.468,290,0.856]],["text/40",[]],["component/40",[179,0.571]],["title/41-1",[20,12.533,100,20.772,120,18.431,130,29.607,131,21.199]],["name/41-1",[]],["text/41-1",[]],["component/41-1",[]],["title/41-2",[18,10.96,24,7.254,57,14.728,71,15.779,120,16.713,131,19.224]],["name/41-2",[]],["text/41-2",[]],["component/41-2",[]],["title/41-3",[18,10.96,22,17.152,24,7.254,71,15.779,120,16.713,131,19.224]],["name/41-3",[]],["text/41-3",[]],["component/41-3",[]],["title/41-4",[22,21.081,24,8.915,71,19.393,435,37.24]],["name/41-4",[]],["text/41-4",[]],["component/41-4",[]],["title/41-5",[18,10.96,24,7.254,68,15.177,71,15.779,120,16.713,131,19.224]],["name/41-5",[]],["text/41-5",[]],["component/41-5",[]],["title/41-6",[189,23.654,300,25.356]],["name/41-6",[]],["text/41-6",[]],["component/41-6",[]],["title/41-7",[304,15.63,320,22.48]],["name/41-7",[]],["text/41-7",[]],["component/41-7",[]],["title/41",[20,13.968,120,20.541,130,32.997,131,23.627]],["name/41",[24,0.26,618,1.057,1265,1.03,1982,1.203]],["text/41",[4,0.547,5,0.329,7,0.851,8,0.89,9,0.974,18,2.705,19,1.087,20,1.865,22,3.883,24,1.881,25,0.702,27,1.684,34,1.281,36,2.476,38,0.795,46,1.854,51,1.3,52,0.558,53,0.581,54,0.581,57,3.019,61,2.003,67,0.686,68,2.824,69,3.046,70,1.598,71,4.041,72,1.076,73,1.285,74,1.29,89,0.728,100,3.971,103,2.376,112,1.022,120,3.251,127,1.814,130,5.114,131,3.812,140,1.558,152,0.552,160,2.193,170,1.042,176,0.382,182,0.915,183,1.758,192,3.054,194,1.942,208,1.526,209,1.906,210,2.582,224,0.575,237,0.766,249,3.779,253,0.847,263,4.867,273,1.321,275,0.915,278,0.667,290,0.569,292,0.811,304,0.296,306,0.717,308,2.937,315,3.778,321,0.993,322,0.523,323,2.25,347,1.301,351,0.717,355,0.915,366,2.332,374,0.635,375,0.89,376,1.362,379,0.975,380,0.635,383,1.227,386,1.708,387,1.79,391,2.931,393,0.74,401,0.458,402,0.458,403,0.458,404,0.458,405,0.458,406,0.458,407,0.458,408,0.458,409,0.458,414,1.022,415,1.574,429,0.563,435,0.915,439,0.542,457,0.811,488,1.281,511,1.966,532,0.74,545,0.828,577,0.752,586,1.662,600,1.536,618,6.724,619,1.536,634,2.856,646,0.696,670,2.386,690,0.74,694,1.873,698,0.867,719,0.599,774,0.766,780,4.526,783,1.058,801,1.013,812,0.847,814,0.915,827,1.013,856,0.717,877,0.89,902,0.676,905,0.696,913,0.915,918,0.811,925,2.16,949,0.78,967,1.708,973,1.711,1009,2.278,1014,0.766,1024,1.906,1027,0.867,1045,0.975,1062,1.834,1071,1.875,1073,0.915,1092,4.719,1097,0.78,1260,1.536,1283,3.59,1302,1.058,1402,2.023,1413,5.801,1418,2.429,1419,2.429,1420,2.776,1422,1.502,1423,0.828,1570,1.191,1575,0.975,1577,1.115,1583,0.847,1602,1.191,1611,2.16,1612,1.979,1712,0.943,1726,0.811,1764,1.115,1799,0.89,1802,1.711,1821,0.74,1904,1.058,1949,1.191,1982,2.523,2035,2.349,2133,1.013,2134,1.191,2138,1.191,2180,1.191,2182,2.429,2207,0.943,2321,1.191,2328,1.013,2334,1.191,2516,2.369,2517,3.412,2518,1.115,2519,1.306,2520,2.023,2521,1.013,2522,1.306,2523,1.306,2524,1.838,2525,2.369,2526,1.306,2527,1.115,2528,1.306,2529,0.943,2530,1.306,2531,1.191,2532,1.306,2533,3.252,2534,1.306,2535,1.306,2536,1.306,2537,1.306,2538,1.306,2539,1.306,2540,2.369,2541,3.996,2542,1.191,2543,1.058,2544,4.761,2545,2.843,2546,1.306,2547,1.306,2548,1.306,2549,1.306,2550,1.306,2551,1.306,2552,1.115,2553,1.306,2554,2.369,2555,1.306,2556,1.306,2557,1.306,2558,1.013,2559,1.306]],["component/41",[179,0.571]],["title/42-1",[1265,53.776]],["name/42-1",[]],["text/42-1",[]],["component/42-1",[]],["title/42-2",[10,20.983,18,12.086,24,7.999,25,14.133,1361,36.996]],["name/42-2",[]],["text/42-2",[]],["component/42-2",[]],["title/42-3",[9,21.854,10,23.386,176,15.547,297,45.378]],["name/42-3",[]],["text/42-3",[]],["component/42-3",[]],["title/42-4",[189,23.654,300,25.356]],["name/42-4",[]],["text/42-4",[]],["component/42-4",[]],["title/42-5",[304,15.63,320,22.48]],["name/42-5",[]],["text/42-5",[]],["component/42-5",[]],["title/42",[18,10.96,29,23.731,132,28.724,133,19.426,134,30.3,135,28.045]],["name/42",[29,0.851,132,1.03,133,0.697,135,1.006]],["text/42",[1,1.885,5,1.536,7,3.598,9,2.77,10,4.623,14,1.34,18,2.13,22,0.467,24,1.67,25,2.613,28,1.558,29,2.361,31,1.006,33,1.088,34,3.477,35,0.566,36,2.337,41,1.862,45,1.546,51,1.637,53,2.15,54,2.15,55,0.732,56,0.955,57,1.95,59,1.036,61,1.663,63,1.227,64,0.764,65,1.163,68,0.414,69,2.439,70,1.327,72,0.98,73,1.96,74,0.467,77,0.895,80,0.647,83,2.54,84,1.755,85,0.485,87,0.559,92,0.668,98,0.803,112,0.508,116,0.704,120,2.357,130,1.34,132,4.05,133,1.658,134,6.484,135,2.79,138,1.658,139,3.107,140,1.677,141,0.955,152,0.498,162,0.668,165,2.126,166,1.166,176,2.761,183,1.893,188,0.472,189,0.74,191,1.468,192,0.8,194,3.274,208,1.732,209,1.779,227,0.547,260,0.99,267,1.781,271,5.805,274,1.288,304,0.267,316,0.88,321,2.026,322,1.194,323,2.124,329,1.243,332,2.182,338,1.855,351,1.637,356,2.091,359,1.546,361,0.851,364,1.205,366,2.034,373,2.126,374,1.048,380,0.573,382,0.764,383,0.61,386,2.54,387,4.076,388,1.45,390,1.313,391,0.441,401,0.414,402,0.414,403,0.414,404,0.414,405,0.414,406,0.414,407,0.414,408,0.414,409,0.414,429,0.93,438,0.566,439,1.238,440,0.691,444,1.512,445,0.803,469,0.587,472,3.107,473,0.657,474,3.574,482,1.399,488,1.995,493,0.637,498,1.935,499,2.033,514,1.468,532,2.437,533,1.853,541,3.388,546,1.982,549,2.033,551,2.229,554,0.851,560,2.246,561,1.853,563,0.628,568,1.505,586,0.602,593,2.34,597,0.826,598,0.704,599,0.826,615,2.451,617,1.69,631,1.613,643,1.637,646,1.589,650,1.433,653,1.558,655,2.325,664,1.288,676,1.69,681,0.668,690,0.668,705,0.717,748,0.803,774,3.574,784,1.512,793,2.586,796,1.006,800,4.245,829,0.955,837,0.955,847,0.955,849,0.573,856,1.184,864,1.674,882,1.006,924,2.44,953,0.803,966,2.033,967,1.133,1027,0.783,1031,0.88,1044,1.006,1060,1.512,1062,0.541,1064,1.075,1068,0.914,1071,0.553,1083,1.313,1085,1.368,1089,1.558,1092,0.573,1093,0.783,1138,1.006,1224,2.025,1300,0.914,1350,1.006,1360,0.783,1361,2.863,1407,0.851,1414,0.732,1417,0.826,1440,1.967,1469,2.515,1561,2.155,1575,1.612,1632,0.914,1714,0.914,1774,0.914,1786,0.914,1890,1.967,1898,3.673,1931,0.747,1977,1.967,1978,1.006,1979,2.721,1980,1.075,1981,3.923,1982,2.863,1983,1.075,1984,1.075,1985,1.075,1994,3.365,1997,1.967,1998,1.967,2001,3.923,2221,1.075,2463,1.006,2464,1.967,2465,1.075,2560,1.006,2561,1.075,2562,1.179,2563,1.179,2564,1.075,2565,1.967,2566,1.179,2567,2.984,2568,5.866,2569,1.179,2570,1.179,2571,1.179,2572,1.179,2573,2.158,2574,1.179,2575,1.179,2576,2.158,2577,1.179,2578,4.41,2579,2.158,2580,2.158,2581,2.991,2582,2.158,2583,2.158,2584,5.724,2585,5.724,2586,2.158,2587,2.158,2588,2.158,2589,2.158,2590,2.158,2591,2.158,2592,2.984,2593,2.984,2594,4.836,2595,2.984,2596,2.984,2597,1.179,2598,1.967,2599,1.967,2600,1.179,2601,1.075,2602,1.006,2603,1.179,2604,3.691,2605,2.984,2606,1.179,2607,2.158,2608,1.179,2609,1.179,2610,1.179]],["component/42",[179,0.571]],["title/43-1",[5,12.014,10,20.983,112,20.566,132,31.675,191,23.458]],["name/43-1",[]],["text/43-1",[]],["component/43-1",[]],["title/43-2",[1,20.718,135,34.468,474,31.157,2611,48.464]],["name/43-2",[]],["text/43-2",[]],["component/43-2",[]],["title/43-3",[1,18.589,10,20.983,74,18.915,135,30.926,474,27.955]],["name/43-3",[]],["text/43-3",[]],["component/43-3",[]],["title/43-4",[189,23.654,300,25.356]],["name/43-4",[]],["text/43-4",[]],["component/43-4",[]],["title/43-5",[304,15.63,320,22.48]],["name/43-5",[]],["text/43-5",[]],["component/43-5",[]],["title/43",[5,12.014,18,12.086,112,20.566,132,31.675,135,30.926]],["name/43",[5,0.391,112,0.669,132,1.03,135,1.006]],["text/43",[0,0.956,1,3.62,4,1.129,5,1.914,6,1.821,10,4.549,14,0.677,18,2.32,19,1.237,20,0.396,24,1.459,25,1.829,36,2.365,41,1.845,45,1.894,46,1.251,49,1.92,51,3.119,53,1.978,54,0.67,57,2.9,61,1.413,63,1.108,65,1.051,69,2.524,70,0.832,71,2.407,72,2.02,73,1.431,74,1.45,76,2.725,84,0.498,85,1.108,94,2.254,95,0.781,100,0.656,104,1.92,112,2.206,122,1.126,123,1.126,132,3.398,135,6.705,139,1.947,140,1.425,141,1.221,147,0.9,169,0.684,176,2.433,182,1.056,183,2.903,189,1.255,191,1.799,194,0.732,209,1.345,224,0.663,227,1.697,301,0.827,304,0.342,321,2.143,322,2.047,323,2.298,326,0.741,330,1.821,332,2.713,338,2.451,347,1.079,352,1.287,356,2.762,359,1.396,364,1.476,366,2.365,380,1.31,383,1.396,386,2.985,387,4.374,395,0.84,400,1.088,401,0.529,402,0.529,403,0.529,404,0.529,405,0.529,406,0.529,407,0.529,408,0.529,409,0.529,415,1.79,422,0.84,438,0.724,439,0.625,454,1.001,457,0.936,463,0.84,469,2.548,471,0.956,474,5.702,488,1.977,498,2.886,510,2.852,541,4.324,542,0.9,547,1.169,549,2.492,551,4.245,554,2.641,559,3.122,563,0.803,593,1.709,597,1.889,598,0.9,615,4.382,639,0.977,644,2.429,655,0.815,664,1.609,705,1.64,727,5.918,743,2.225,748,1.027,755,1.221,756,3.334,849,1.777,850,0.956,902,0.781,903,1.169,914,1.58,966,1.027,1016,1.221,1031,3.324,1045,1.126,1062,2.608,1071,2.401,1083,1.64,1224,2.442,1561,4.105,1589,1.287,1712,1.088,1732,1.001,2020,1.088,2191,1.221,2433,2.184,2456,2.458,2460,2.458,2463,2.301,2524,1.169,2564,1.374,2565,1.374,2568,8.219,2578,6.357,2599,2.458,2611,6.357,2612,1.507,2613,1.507,2614,2.695,2615,1.507,2616,1.507,2617,1.507,2618,4.45,2619,1.374,2620,1.507,2621,4.45,2622,2.695,2623,1.507,2624,1.507,2625,3.657,2626,3.657,2627,3.657,2628,1.507,2629,1.507,2630,1.507,2631,4.45,2632,2.695,2633,2.695,2634,2.695,2635,2.695,2636,1.507,2637,2.695,2638,1.507,2639,1.507,2640,2.695,2641,2.695,2642,2.695,2643,2.695,2644,1.507,2645,2.695,2646,1.507,2647,2.695,2648,1.507,2649,3.657,2650,1.507,2651,3.657,2652,2.695,2653,1.507,2654,1.507,2655,2.695,2656,2.695,2657,2.695,2658,1.507,2659,2.695,2660,2.695,2661,1.507,2662,1.507]],["component/43",[179,0.571]],["title/44",[]],["name/44",[4,1.763]],["text/44",[]],["component/44",[179,0.571]],["title/45-1",[175,42.056,177,39.867,1265,39.867]],["name/45-1",[]],["text/45-1",[]],["component/45-1",[]],["title/45-2",[24,8.915,175,37.24,176,15.547,177,35.302]],["name/45-2",[]],["text/45-2",[]],["component/45-2",[]],["title/45-3",[10,19.028,24,7.254,61,16.713,175,30.3,176,12.65,177,28.724]],["name/45-3",[]],["text/45-3",[]],["component/45-3",[]],["title/45-4",[189,23.654,300,25.356]],["name/45-4",[]],["text/45-4",[]],["component/45-4",[]],["title/45-5",[304,15.63,320,22.48]],["name/45-5",[]],["text/45-5",[]],["component/45-5",[]],["title/45",[6,26.472,20,13.968,175,37.24,176,15.547]],["name/45",[6,0.773,63,0.638,175,1.087,177,1.03]],["text/45",[1,0.43,2,0.699,5,0.882,6,1.011,7,0.396,9,3.488,10,0.893,12,0.625,16,1.193,18,1.842,19,0.506,20,1.077,24,1.643,25,1.506,28,0.797,36,0.423,41,0.556,46,0.512,49,1.84,51,1.922,55,0.685,57,0.961,58,0.495,60,4.859,61,0.426,63,0.835,67,1.066,69,2.245,70,1.264,73,1.634,74,0.805,76,1.081,77,3.187,78,0.588,82,4.455,83,1.481,87,0.523,89,1.132,91,1.414,94,2.46,96,1.77,109,0.549,112,0.476,114,0.733,116,1.212,122,0.824,123,0.824,138,2.075,140,0.43,148,0.518,155,1.212,162,0.625,163,0.685,165,0.635,166,0.596,167,0.671,175,6.487,176,2.804,177,4.97,183,0.485,192,1.299,194,3.982,201,6.184,203,2.326,208,0.953,209,0.747,234,0.647,237,1.19,252,0.942,253,2.271,260,0.932,267,0.658,271,5.98,276,1.006,303,0.671,304,0.25,306,1.548,317,6.557,322,0.812,323,1.77,329,1.17,330,2.737,332,0.453,335,0.894,338,0.476,339,0.733,355,0.773,356,0.536,364,1.139,366,0.778,367,0.856,378,0.647,385,2.535,386,1.066,387,3.918,391,0.759,395,0.615,397,0.556,398,2.454,401,0.387,402,0.387,403,0.387,404,0.387,405,0.387,406,0.387,407,0.387,408,0.387,409,0.387,414,0.476,417,0.699,439,0.458,454,3.068,467,1.572,469,2.531,473,1.572,509,0.596,514,0.543,522,4.119,524,0.752,526,3.732,528,0.615,533,1.751,536,3.736,539,0.942,540,0.942,541,1.422,549,0.752,553,4.558,554,2.037,556,0.942,562,0.824,563,1.081,565,1.466,568,1.024,571,2.107,577,0.635,586,2.361,614,0.752,617,0.625,630,0.894,631,1.097,644,1.348,670,0.658,673,0.942,679,0.699,681,0.625,685,1.874,687,0.824,688,3.744,690,1.984,719,0.932,725,0.824,774,1.654,782,1.733,798,1.422,800,0.625,806,0.715,834,0.605,841,5.931,847,2.839,849,1.371,856,1.548,859,1.922,860,1.212,861,0.647,872,0.856,911,1.317,914,1.654,924,2.772,949,1.212,957,0.942,967,1.066,968,3.194,986,3.237,1011,1.348,1013,0.658,1014,1.654,1024,0.647,1045,0.824,1095,1.235,1097,1.212,1116,0.699,1125,0.773,1230,4.698,1349,0.733,1360,0.733,1391,1.851,1421,3.744,1442,0.942,1486,0.942,1489,0.824,1514,4.433,1522,1.006,1726,4.768,1848,0.856,1857,3.194,1858,2.572,1867,1.006,1869,1.006,1898,4.339,1936,1.006,2204,1.006,2265,5.011,2663,6.201,2664,2.03,2665,2.03,2666,1.103,2667,1.103,2668,4.619,2669,1.103,2670,1.103,2671,8.344,2672,1.103,2673,2.572,2674,1.103,2675,1.103,2676,1.103,2677,0.797,2678,1.103,2679,1.103,2680,1.103,2681,1.103,2682,1.103,2683,1.103,2684,1.103,2685,1.103,2686,1.103,2687,1.103,2688,1.103,2689,2.821,2690,1.103,2691,2.03,2692,2.03,2693,1.103,2694,2.821,2695,1.103,2696,1.103,2697,1.103,2698,1.103,2699,1.103,2700,1.103,2701,1.103,2702,1.103,2703,1.103,2704,2.03,2705,2.03,2706,2.03,2707,2.03,2708,6.505,2709,7.482,2710,7.482,2711,7.482,2712,7.482,2713,1.103,2714,1.103,2715,1.103,2716,1.103,2717,1.103,2718,2.03,2719,2.03,2720,5.495,2721,1.103,2722,1.103,2723,1.103,2724,1.103,2725,1.103,2726,2.03,2727,1.103,2728,1.103,2729,1.103,2730,1.103,2731,1.103,2732,1.103,2733,1.103,2734,1.103,2735,1.103,2736,1.103,2737,1.103,2738,3.503,2739,2.03,2740,1.103,2741,1.103,2742,2.821,2743,1.103,2744,2.821,2745,1.103,2746,2.03,2747,1.103,2748,2.03,2749,2.03,2750,2.821,2751,0.942,2752,1.103,2753,1.103,2754,1.103,2755,1.103,2756,1.103,2757,1.103,2758,2.03,2759,2.03,2760,2.03,2761,2.03,2762,2.03,2763,2.03,2764,2.03,2765,2.03,2766,2.03,2767,2.03,2768,1.103,2769,1.103,2770,1.103,2771,1.103,2772,1.103,2773,2.03,2774,1.103,2775,1.103,2776,1.103,2777,1.103,2778,1.103,2779,1.103,2780,1.103,2781,1.103,2782,1.103,2783,1.103,2784,1.103,2785,1.103,2786,1.103]],["component/45",[179,0.571]],["title/46-1",[24,11.564,2787,62.86]],["name/46-1",[]],["text/46-1",[]],["component/46-1",[]],["title/46-2",[24,11.564,2788,62.86]],["name/46-2",[]],["text/46-2",[]],["component/46-2",[]],["title/46-3",[24,11.564,2789,62.86]],["name/46-3",[]],["text/46-3",[]],["component/46-3",[]],["title/46-4",[9,28.345,24,11.564]],["name/46-4",[]],["text/46-4",[]],["component/46-4",[]],["title/46-5",[20,13.968,128,24.392,188,21.268,205,28.312]],["name/46-5",[]],["text/46-5",[]],["component/46-5",[]],["title/46-6",[5,12.014,24,7.999,70,14.711,71,17.401,906,30.926]],["name/46-6",[]],["text/46-6",[]],["component/46-6",[]],["title/46-7",[5,12.014,24,7.999,70,14.711,71,17.401,171,30.926]],["name/46-7",[]],["text/46-7",[]],["component/46-7",[]],["title/46-8",[28,58.477]],["name/46-8",[]],["text/46-8",[]],["component/46-8",[]],["title/46-9",[61,26.643,176,20.165]],["name/46-9",[]],["text/46-9",[]],["component/46-9",[]],["title/46-10",[189,23.654,300,25.356]],["name/46-10",[]],["text/46-10",[]],["component/46-10",[]],["title/46-11",[304,15.63,320,22.48]],["name/46-11",[]],["text/46-11",[]],["component/46-11",[]],["title/46",[20,15.775,97,31.523,178,40.904]],["name/46",[97,1.032,176,0.575,178,1.339]],["text/46",[5,2.316,7,3.559,9,3.878,13,1.535,14,0.656,15,4.374,16,2.797,17,2.638,18,1.643,19,1.635,20,1.142,22,0.579,24,1.76,28,1.892,35,1.258,36,1.665,41,0.736,43,1.698,49,0.766,52,0.623,53,0.649,59,0.701,65,2.171,68,2.126,69,1.812,70,1.341,71,1.826,72,0.663,77,3.701,78,2.315,84,2.564,85,1.077,88,0.856,91,2.445,94,1.724,97,4.954,120,1.377,127,2.528,128,1.635,143,1.395,145,2.756,147,0.871,148,0.685,152,1.838,164,2.764,167,0.888,168,2.31,169,0.663,170,1.152,171,1.698,172,0.856,176,1.629,178,3.795,188,2.003,192,1.611,205,1.898,210,1.986,224,1.912,239,1.132,244,3.507,257,1.202,267,0.871,271,0.925,273,2.79,274,0.871,290,0.636,300,0.537,301,0.801,304,0.331,323,2.388,329,2.052,330,1.304,332,0.6,338,0.629,339,0.969,346,1.132,347,1.048,353,0.693,356,0.709,357,2.31,359,0.756,364,1.754,366,1.665,374,2.112,376,0.611,378,2.934,379,1.09,381,0.801,387,4.507,391,2.264,392,1.09,401,0.512,402,0.512,403,0.512,404,0.512,405,0.512,406,0.512,407,0.512,408,0.512,409,0.512,414,0.629,417,0.925,435,1.023,436,1.132,439,1.087,444,1.023,471,0.925,472,1.054,473,2.422,480,1.132,488,2.349,509,1.926,516,2.032,526,3.332,528,1.986,529,2.127,532,0.827,570,1.892,578,1.956,579,1.183,593,0.925,599,1.023,617,1.484,634,0.736,639,1.698,655,0.789,690,0.827,709,1.331,712,1.785,719,0.67,725,1.09,780,1.023,786,0.766,788,2.212,798,1.023,800,2.018,802,1.183,805,3.615,815,2.661,821,2.496,824,1.132,828,5.826,832,1.183,857,4.564,860,4.628,861,2.547,863,3.249,866,3.249,867,1.331,868,2.388,869,2.887,870,3.249,871,1.331,872,1.132,873,1.183,874,1.331,875,1.331,876,3.249,880,1.331,883,2.032,884,1.331,885,2.388,886,1.331,887,2.388,888,1.331,889,1.331,892,3.962,893,2.123,894,2.123,895,2.388,896,1.331,897,2.388,898,3.962,899,1.331,900,1.331,902,1.357,903,2.032,904,1.183,905,0.777,906,2.818,907,1.183,908,2.887,924,2.192,927,0.995,963,0.856,967,1.871,978,1.132,996,1.132,1013,2.127,1024,2.088,1092,1.731,1116,1.661,1136,1.331,1193,1.023,1271,3.71,1300,1.132,1390,1.09,1408,1.132,1472,2.236,1519,1.331,1571,5.121,1572,4.32,1599,2.764,1638,1.09,1726,2.212,1862,1.246,1863,1.661,1902,1.246,1969,1.246,2004,2.764,2006,2.887,2098,1.331,2210,2.496,2211,3.042,2343,1.246,2352,2.388,2561,1.331,2787,3.249,2788,3.249,2789,2.388,2790,1.459,2791,1.459,2792,1.459,2793,1.459,2794,1.459,2795,2.619,2796,1.331,2797,1.459,2798,1.459,2799,1.246,2800,1.459,2801,1.459,2802,1.459,2803,1.459]],["component/46",[179,0.571]],["title/47-1",[22,23.807,84,19.854,967,31.523]],["name/47-1",[]],["text/47-1",[]],["component/47-1",[]],["title/47-2",[18,10.96,24,7.254,63,17.781,193,31.234,263,20.525,1349,28.724]],["name/47-2",[]],["text/47-2",[]],["component/47-2",[]],["title/47-3",[22,21.081,58,23.875,63,21.854,2804,48.464]],["name/47-3",[]],["text/47-3",[]],["component/47-3",[]],["title/47-4",[54,26.683,148,28.165,189,20.595]],["name/47-4",[]],["text/47-4",[]],["component/47-4",[]],["title/47-5",[22,27.343,152,29.157]],["name/47-5",[]],["text/47-5",[]],["component/47-5",[]],["title/47-6",[22,21.081,57,18.101,513,31.157,701,43.073]],["name/47-6",[]],["text/47-6",[]],["component/47-6",[]],["title/47-7",[57,16.242,121,26.581,192,17.682,319,31.675,2545,26.169]],["name/47-7",[]],["text/47-7",[]],["component/47-7",[]],["title/47-8",[20,8.882,22,13.405,24,5.669,84,11.18,188,13.524,319,22.449,1234,28.856,1360,22.449,2545,18.547]],["name/47-8",[]],["text/47-8",[]],["component/47-8",[]],["title/47-9",[22,27.343,313,33.91]],["name/47-9",[]],["text/47-9",[]],["component/47-9",[]],["title/47-10",[63,21.854,148,24.94,193,38.388,263,25.226]],["name/47-10",[]],["text/47-10",[]],["component/47-10",[]],["title/47-11",[22,23.807,24,10.068,68,21.065]],["name/47-11",[]],["text/47-11",[]],["component/47-11",[]],["title/47-12",[24,10.068,61,23.198,646,31.973]],["name/47-12",[]],["text/47-12",[]],["component/47-12",[]],["title/47-13",[189,23.654,300,25.356]],["name/47-13",[]],["text/47-13",[]],["component/47-13",[]],["title/47-14",[304,15.63,320,22.48]],["name/47-14",[]],["text/47-14",[]],["component/47-14",[]],["title/47",[22,21.081,24,8.915,68,18.653,188,21.268]],["name/47",[22,0.779,24,0.33,68,0.69]],["text/47",[1,0.797,5,0.515,8,0.758,9,0.457,10,0.9,16,0.967,18,1.79,19,0.51,20,2.271,21,1.513,22,3.521,24,1.774,25,0.33,27,1.471,35,1.364,43,0.721,48,0.705,49,1.074,52,0.475,54,1.567,55,2.884,57,2.746,58,3.173,59,0.982,61,2.408,63,1.168,65,1.374,68,1.447,69,1.492,72,0.505,74,0.441,76,0.592,77,0.462,83,0.584,84,1.69,91,1.423,94,0.441,95,1.471,96,0.426,99,0.568,100,2.024,111,3.051,121,2.298,127,0.505,133,0.919,137,0.664,138,0.919,148,2.398,152,2.336,154,0.677,156,2.416,160,0.61,163,0.69,166,0.601,169,0.505,176,1.992,181,0.949,182,0.779,183,1.814,184,0.554,188,3.844,189,2.577,192,1.307,193,4.919,194,1.713,198,0.863,205,0.592,208,0.522,209,1.297,219,1.327,224,1.814,230,1.887,231,1.123,237,2.724,247,0.758,249,0.919,257,0.51,261,1.587,263,3.463,267,0.664,271,0.705,273,1.965,282,1.528,288,1.394,290,2.024,303,1.245,304,0.644,305,2.286,307,1.478,309,2.47,310,0.601,313,3.064,314,2.774,315,2.559,319,3.394,321,0.857,322,0.819,323,0.713,326,1.397,330,0.554,332,0.841,338,0.882,341,0.863,345,1.433,347,0.819,351,1.559,353,1.348,357,0.721,364,1.876,365,0.863,366,1.089,374,0.54,375,5.118,376,1.19,378,0.652,380,1.713,382,1.842,383,1.06,387,3.551,391,2.95,393,0.63,395,0.62,401,0.718,402,0.39,403,0.997,404,0.39,405,0.39,406,0.39,407,0.39,408,0.39,409,0.39,429,0.882,438,0.982,439,1.711,469,1.019,474,0.652,486,0.831,493,0.601,502,1.587,509,0.601,511,1.006,512,1.665,513,3.83,514,0.547,526,0.54,528,0.62,529,0.664,531,1.528,545,0.705,549,0.758,557,0.803,560,1.245,562,0.831,563,0.592,568,1.032,585,0.601,593,1.297,601,0.949,617,0.63,627,4.626,631,0.601,633,2.425,643,1.123,646,1.878,650,0.739,668,2.724,683,0.641,694,1.178,701,0.901,705,0.677,711,1.014,727,0.677,743,2.145,783,0.901,786,1.852,800,0.63,819,0.721,834,0.61,837,0.901,850,0.705,860,2.105,879,0.863,881,1.178,883,0.863,911,0.721,913,0.779,915,1.433,916,0.901,918,0.69,919,0.949,920,0.901,922,2.425,923,1.747,925,1.359,927,1.394,949,0.664,959,0.721,967,2.44,990,0.803,1020,0.779,1062,0.51,1071,0.522,1092,0.994,1095,1.245,1097,1.221,1098,0.69,1125,0.779,1246,2.827,1248,2.676,1249,2.827,1253,0.831,1278,1.865,1280,0.949,1283,3.503,1315,0.779,1333,2.546,1346,0.831,1347,0.779,1349,0.739,1353,0.69,1360,1.887,1368,2.546,1422,0.705,1423,4.143,1424,1.887,1469,0.758,1482,0.831,1506,1.014,1581,0.721,1636,0.901,1701,0.803,1726,1.764,1732,0.739,1741,0.863,1769,0.949,1772,2.302,1876,1.865,1882,1.014,1931,0.705,1934,0.863,1968,1.014,2020,4.5,2022,0.949,2061,0.863,2171,1.014,2217,0.901,2279,3.47,2356,0.831,2357,0.803,2410,1.014,2446,1.014,2527,0.949,2543,0.901,2544,1.99,2545,4.121,2558,0.863,2751,0.949,2804,3.759,2805,1.112,2806,0.863,2807,2.857,2808,0.949,2809,2.046,2810,2.046,2811,1.865,2812,1.014,2813,1.014,2814,1.014,2815,1.014,2816,1.014,2817,6.493,2818,3.215,2819,1.014,2820,1.112,2821,1.112,2822,0.949,2823,1.865,2824,1.865,2825,1.112,2826,1.112,2827,1.112,2828,0.949,2829,1.112,2830,1.112,2831,1.112,2832,1.112,2833,1.112,2834,1.112,2835,1.112,2836,1.112,2837,1.112,2838,1.112,2839,1.112,2840,1.112,2841,1.112,2842,1.112,2843,1.014,2844,1.112,2845,3.526,2846,3.526,2847,3.526,2848,3.526,2849,1.112,2850,1.112,2851,1.112,2852,1.112,2853,1.112,2854,1.112,2855,1.112,2856,1.112,2857,1.112,2858,1.112,2859,1.112,2860,1.112,2861,1.112,2862,1.112,2863,1.112,2864,3.341,2865,1.865,2866,3.01,2867,1.865,2868,1.865,2869,1.865,2870,1.014,2871,0.779,2872,1.014,2873,1.112,2874,3.01,2875,1.112,2876,1.112,2877,2.59,2878,1.112,2879,1.112,2880,1.112,2881,1.112,2882,1.112,2883,2.046,2884,2.046,2885,1.112,2886,0.949,2887,2.046,2888,1.112,2889,1.112,2890,1.112,2891,1.112,2892,1.112,2893,1.658,2894,1.112,2895,1.112,2896,1.112,2897,1.112,2898,1.112,2899,0.949,2900,0.949,2901,0.949,2902,1.865,2903,1.865,2904,2.59,2905,1.014,2906,1.014,2907,2.046,2908,1.112,2909,1.865,2910,2.046,2911,0.901,2912,1.112,2913,1.112,2914,1.112,2915,1.112,2916,1.112,2917,1.112,2918,1.112,2919,1.112,2920,1.112,2921,1.112,2922,1.112,2923,1.112,2924,1.112,2925,1.112]],["component/47",[179,0.571]],["title/48-1",[24,10.068,84,19.854,111,35.833]],["name/48-1",[]],["text/48-1",[]],["component/48-1",[]],["title/48-2",[85,28.345,2806,53.481]],["name/48-2",[]],["text/48-2",[]],["component/48-2",[]],["title/48-3",[189,23.654,300,25.356]],["name/48-3",[]],["text/48-3",[]],["component/48-3",[]],["title/48-4",[304,15.63,320,22.48]],["name/48-4",[]],["text/48-4",[]],["component/48-4",[]],["title/48",[5,15.121,24,10.068,84,19.854]],["name/48",[24,0.449,84,0.886]],["text/48",[5,1.923,9,1.741,16,1.442,18,1.934,20,2.389,22,1.679,24,1.808,25,1.884,51,2.323,57,1.442,63,1.741,64,2.745,68,2.231,70,2.354,84,3.37,85,4.49,94,1.679,99,2.164,111,4.556,128,1.943,140,1.65,148,3.581,152,1.791,160,2.323,176,2.232,188,3.963,205,2.255,209,1.557,224,1.863,249,1.902,277,2.812,278,3.249,286,3.284,288,2.885,290,1.844,303,2.576,304,1.441,305,2.745,307,3.058,310,3.436,321,2.663,322,2.544,323,1.475,328,3.543,332,1.741,340,2.439,348,2.36,376,3.197,387,2.457,391,3.171,401,1.486,402,1.486,403,1.486,404,1.486,405,1.486,406,1.486,407,1.486,408,1.486,409,1.486,414,2.741,415,2.812,429,1.826,456,4.644,507,2.885,513,2.482,627,4.973,636,2.482,668,2.482,676,3.601,727,2.576,743,2.576,787,2.482,806,2.745,859,2.885,963,2.482,996,3.284,1009,2.966,1120,3.284,1246,2.576,1248,2.439,1253,3.162,1309,3.058,1353,2.628,1423,4.031,1583,2.745,1732,2.812,1737,3.614,2279,7.132,2328,3.284,2806,4.931,2926,7.735,2927,3.86,2928,4.233,2929,4.233,2930,4.233,2931,4.233,2932,4.233,2933,4.233,2934,4.233]],["component/48",[179,0.571]],["title/49-1",[161,51.246,205,31.973,290,26.144]],["name/49-1",[]],["text/49-1",[]],["component/49-1",[]],["title/49-2",[24,10.068,68,21.065,183,26.41]],["name/49-2",[]],["text/49-2",[]],["component/49-2",[]],["title/49-3",[24,10.068,61,23.198,646,31.973]],["name/49-3",[]],["text/49-3",[]],["component/49-3",[]],["title/49-4",[24,11.564,819,44.707]],["name/49-4",[]],["text/49-4",[]],["component/49-4",[]],["title/49-5",[24,10.068,189,20.595,299,36.524]],["name/49-5",[]],["text/49-5",[]],["component/49-5",[]],["title/49-6",[18,12.086,24,7.999,63,19.608,263,22.634,1349,31.675]],["name/49-6",[]],["text/49-6",[]],["component/49-6",[]],["title/49-7",[11,51.494,24,11.564]],["name/49-7",[]],["text/49-7",[]],["component/49-7",[]],["title/49-8",[11,51.494,309,48.303]],["name/49-8",[]],["text/49-8",[]],["component/49-8",[]],["title/49-9",[203,39.867,378,35.186,417,38.061]],["name/49-9",[]],["text/49-9",[]],["component/49-9",[]],["title/49-10",[52,29.44,184,34.335]],["name/49-10",[]],["text/49-10",[]],["component/49-10",[]],["title/49-11",[24,10.068,84,19.854,976,44.834]],["name/49-11",[]],["text/49-11",[]],["component/49-11",[]],["title/49-12",[24,10.068,91,24.234,976,44.834]],["name/49-12",[]],["text/49-12",[]],["component/49-12",[]],["title/49-13",[189,23.654,300,25.356]],["name/49-13",[]],["text/49-13",[]],["component/49-13",[]],["title/49-14",[304,15.63,320,22.48]],["name/49-14",[]],["text/49-14",[]],["component/49-14",[]],["title/49",[24,10.068,188,24.018,290,26.144]],["name/49",[24,0.449,290,1.167]],["text/49",[1,1.809,3,0.893,5,1.308,8,0.893,9,1.908,10,1.045,11,0.978,16,0.809,18,2.249,19,0.601,20,2.213,21,0.698,22,1.841,24,1.854,25,0.388,27,1.688,32,2.437,35,0.629,36,1.249,38,1.983,41,0.661,43,1.541,47,1.016,48,0.831,49,0.688,54,0.582,57,1.932,58,2.738,59,0.629,61,2.63,63,0.539,65,0.511,68,2.828,69,2.053,70,0.404,72,0.595,73,1.048,74,0.519,75,0.831,76,0.698,77,0.986,79,0.797,82,1.712,84,1.535,85,1.647,87,0.622,89,0.73,91,2.979,92,1.846,95,2.074,96,0.502,99,2.047,100,0.571,102,0.688,111,2.771,128,2.13,129,2.586,133,0.588,138,1.067,148,2.86,152,2.399,154,0.797,156,1.911,167,0.797,176,1.991,177,0.87,181,1.118,182,1.664,183,2.284,184,2.312,188,3.819,189,1.781,192,0.486,203,0.87,205,2.766,208,1.115,209,2.242,219,1.541,224,1.762,231,2.547,237,2.721,238,1.118,247,2.221,257,1.496,260,0.601,262,1.061,263,3.23,267,1.418,271,1.506,272,1.194,273,0.73,278,1.214,282,1.774,286,1.016,288,1.619,290,3.322,291,1.774,294,3.767,297,1.118,299,1.445,300,0.874,301,3.113,303,1.445,304,1.177,305,1.541,306,0.719,307,1.716,308,2.067,313,0.644,314,1.418,321,0.549,322,0.951,323,1.395,326,0.644,332,1.34,338,1.024,340,0.754,348,0.73,353,1.127,357,0.849,364,1.874,365,1.016,366,2.48,375,4.154,376,1.678,378,1.911,379,0.978,380,1.154,382,1.541,383,0.678,385,0.719,387,3.48,388,0.636,391,2.851,395,2.587,401,0.834,402,0.46,403,1.406,404,0.46,405,0.46,406,0.46,407,0.834,408,0.46,409,0.46,426,0.918,438,1.565,439,1.353,445,1.619,454,0.87,457,0.813,472,0.946,486,0.978,493,0.708,509,0.708,511,0.644,513,1.393,526,0.636,528,0.73,529,0.782,531,2.435,542,0.782,545,0.831,563,0.698,565,0.946,568,0.661,571,0.978,577,2.307,582,1.016,585,0.708,601,1.118,617,0.742,619,0.849,621,2.165,627,4.723,631,1.284,643,0.719,645,1.118,646,2.472,668,0.768,669,1.194,670,1.946,673,1.118,681,1.346,683,0.754,690,2.269,694,0.754,719,1.838,720,1.194,743,2.437,773,3.467,775,0.893,786,2.438,788,0.813,800,0.742,819,1.541,834,1.789,849,0.636,858,0.893,860,2.391,879,1.016,881,3.727,883,1.016,902,1.23,905,0.698,913,0.918,915,0.918,916,1.061,918,1.475,919,1.118,920,1.061,922,2.783,923,2.028,924,0.661,925,0.87,965,1.061,976,1.774,990,0.946,1024,0.768,1071,0.615,1092,2.256,1095,0.797,1116,1.506,1125,0.918,1140,1.118,1223,0.946,1246,0.797,1248,0.754,1249,1.445,1266,1.061,1281,0.978,1317,0.978,1349,0.87,1353,1.475,1358,1.194,1360,0.87,1366,2.028,1367,1.194,1368,1.716,1407,0.946,1423,4.679,1424,3.083,1460,1.118,1469,1.619,1486,1.118,1494,1.061,1561,0.946,1589,2.783,1721,1.118,1732,2.165,1748,1.118,1769,1.118,1863,0.831,1889,1.118,1932,1.061,1966,1.194,2133,1.843,2237,1.194,2279,3.467,2447,2.166,2475,1.194,2527,1.118,2543,1.061,2601,1.194,2806,1.016,2807,2.642,2811,1.194,2813,1.194,2814,1.194,2815,1.194,2816,1.194,2817,3.601,2818,2.972,2819,1.194,2822,1.118,2843,1.194,2864,1.061,2871,0.918,2872,1.194,2893,1.061,2899,1.118,2900,1.118,2901,2.783,2902,2.166,2903,2.166,2904,2.972,2905,1.194,2906,1.194,2909,1.194,2926,2.166,2927,1.194,2935,1.31,2936,1.31,2937,2.166,2938,2.375,2939,2.166,2940,1.31,2941,1.31,2942,1.194,2943,2.375,2944,1.31,2945,1.31,2946,1.31,2947,3.26,2948,1.31,2949,1.016,2950,1.061,2951,1.31,2952,0.849,2953,2.375,2954,1.31,2955,1.31,2956,1.31,2957,1.31,2958,1.31,2959,1.31,2960,1.194,2961,1.194,2962,2.375,2963,1.31,2964,1.016,2965,1.31,2966,1.31,2967,1.194,2968,2.166,2969,1.194,2970,1.31,2971,1.194,2972,1.31,2973,1.31]],["component/49",[179,0.571]],["title/50-1",[20,13.968,100,23.151,188,21.268,313,26.144]],["name/50-1",[]],["text/50-1",[]],["component/50-1",[]],["title/50-2",[2974,65.614]],["name/50-2",[]],["text/50-2",[]],["component/50-2",[]],["title/50-3",[20,13.968,100,23.151,152,22.479,188,21.268]],["name/50-3",[]],["text/50-3",[]],["component/50-3",[]],["title/50-4",[2974,65.614]],["name/50-4",[]],["text/50-4",[]],["component/50-4",[]],["title/50-5",[20,13.968,100,23.151,188,21.268,283,31.73]],["name/50-5",[]],["text/50-5",[]],["component/50-5",[]],["title/50-6",[65,23.397,314,35.833,1274,44.834]],["name/50-6",[]],["text/50-6",[]],["component/50-6",[]],["title/50-7",[100,35.266]],["name/50-7",[]],["text/50-7",[]],["component/50-7",[]],["title/50-8",[2974,65.614]],["name/50-8",[]],["text/50-8",[]],["component/50-8",[]],["title/50-9",[189,23.654,300,25.356]],["name/50-9",[]],["text/50-9",[]],["component/50-9",[]],["title/50-10",[304,15.63,320,22.48]],["name/50-10",[]],["text/50-10",[]],["component/50-10",[]],["title/50",[20,15.775,100,26.144,188,24.018]],["name/50",[73,0.632,100,0.856,188,0.786]],["text/50",[0,1.401,1,2.267,2,1.401,4,0.926,10,0.972,18,2.254,20,2.775,21,1.177,22,1.494,24,0.976,27,1.951,32,1.345,35,1.061,36,0.847,46,1.025,51,1.213,57,2.222,58,1.692,59,1.809,61,3.221,65,2.769,67,4.377,68,1.728,69,2.571,72,1.71,73,1.87,83,1.161,84,0.731,87,2.337,89,2.1,94,0.877,100,4.214,131,0.982,148,1.037,152,3.207,157,1.319,163,4.051,170,0.972,176,1.102,183,0.972,188,4.57,189,1.995,191,1.087,216,3.435,220,1.9,237,2.886,247,1.506,263,1.788,273,3.637,277,1.468,288,1.506,290,1.641,301,1.213,303,2.292,304,0.854,305,1.433,313,3.73,314,5.309,315,1.372,321,2.734,322,0.884,323,0.77,326,3.929,359,1.145,374,1.074,375,3.355,376,0.926,380,1.074,381,1.213,387,0.854,391,1.84,392,1.651,393,2.134,395,2.1,401,0.776,402,0.776,403,0.776,404,0.776,405,0.776,406,0.776,407,0.776,408,0.776,409,0.776,438,1.061,439,1.563,474,1.296,477,2.015,502,1.714,513,3.825,517,1.506,537,2.015,553,3.449,617,1.252,620,1.651,650,1.468,683,2.17,690,1.252,694,1.273,743,1.345,775,1.506,786,1.161,806,1.433,819,3.193,849,1.831,902,1.145,927,1.506,962,1.791,967,2.586,986,2.639,1011,1.468,1063,4.203,1070,2.015,1071,1.768,1092,3.171,1116,1.401,1122,4.344,1248,2.17,1283,2.389,1306,2.502,1333,4.2,1353,1.372,1368,3.556,1422,1.401,1423,5.284,1424,3.27,1436,1.887,1543,1.791,1732,1.468,1908,2.015,1932,7.207,2517,4.965,2545,2.702,2581,1.791,2807,5.288,2817,1.714,2823,4.489,2866,4.965,2874,1.887,2886,1.887,2893,1.791,2939,4.489,2964,1.714,2967,5.303,2974,4.713,2975,2.21,2976,2.21,2977,2.21,2978,2.21,2979,2.21,2980,3.216,2981,2.015,2982,2.21,2983,2.21,2984,2.21,2985,2.21,2986,2.21,2987,2.21,2988,2.015,2989,2.21,2990,2.21,2991,3.767,2992,2.21,2993,2.21,2994,2.21,2995,2.21,2996,5.816,2997,2.21,2998,4.923,2999,4.923,3000,2.21,3001,2.21,3002,2.21,3003,2.21,3004,2.21,3005,2.21,3006,2.21,3007,6.065,3008,2.21,3009,2.21,3010,2.21,3011,1.714,3012,2.21,3013,2.21,3014,2.21,3015,2.21,3016,2.21,3017,2.21,3018,2.21]],["component/50",[179,0.571]],["title/51-1",[288,55.175]],["name/51-1",[]],["text/51-1",[]],["component/51-1",[]],["title/51-2",[74,21.081,75,33.703,222,48.464,3019,53.149]],["name/51-2",[]],["text/51-2",[]],["component/51-2",[]],["title/51-3",[24,10.068,205,31.973,1863,38.061]],["name/51-3",[]],["text/51-3",[]],["component/51-3",[]],["title/51-4",[14,30.967,120,26.643]],["name/51-4",[]],["text/51-4",[]],["component/51-4",[]],["title/51",[20,11.365,188,17.305,288,29.47,303,26.315,304,9.805,305,28.045]],["name/51",[303,1.63,304,0.607]],["text/51",[7,3.118,14,2.957,20,1.73,22,2.611,24,1.63,27,4.497,45,3.409,51,3.612,52,2.811,55,4.086,58,2.957,67,3.457,69,2.383,76,3.506,92,3.728,96,3.327,120,3.355,128,3.021,140,2.566,152,2.784,170,2.896,188,3.474,190,4.754,193,4.754,203,4.372,205,3.506,215,7.412,220,4.379,247,4.485,260,3.021,262,5.334,263,3.124,290,2.867,304,1.492,313,3.238,314,3.929,326,3.238,361,4.754,376,2.757,429,2.838,439,2.731,493,3.558,582,5.106,621,4.372,834,3.612,1863,4.174,2545,3.612,2598,6.001,2971,6.001,3007,5.619,3020,6.582,3021,6.582,3022,6.001,3023,6.582,3024,6.582,3025,6.582,3026,6.582,3027,6.582]],["component/51",[179,0.571]],["title/52-1",[326,33.91,3028,62.86]],["name/52-1",[]],["text/52-1",[]],["component/52-1",[]],["title/52",[21,36.723,146,40.412]],["name/52",[21,1.427,146,1.57]],["text/52",[20,2.695,22,3.401,65,2.02,138,3.31,146,3.038,148,4.812,176,2.509,189,2.529,215,4.425,230,7.007,262,4.2,305,4.779,319,4.895,326,2.549,391,3.833,617,4.858,668,6.011,1062,2.378,1246,6.24,1248,5.907,1249,6.24,1280,6.292,1315,3.631,1333,6.746,1360,4.895,2020,3.743,2545,4.044,2817,8.184,2822,4.425,2864,8.31,2865,6.72,2866,7.974,2867,6.72,2868,6.72,2869,6.72,2877,6.72,3028,4.726,3029,5.182,3030,5.182,3031,5.182,3032,5.182,3033,5.182,3034,5.182,3035,5.182,3036,7.369]],["component/52",[179,0.571]],["title/53-1",[24,7.999,57,16.242,209,17.54,300,17.54,2279,35.621]],["name/53-1",[]],["text/53-1",[]],["component/53-1",[]],["title/53-2",[5,13.39,57,18.101,615,35.302,2545,29.166]],["name/53-2",[]],["text/53-2",[]],["component/53-2",[]],["title/53-3",[189,23.654,300,25.356]],["name/53-3",[]],["text/53-3",[]],["component/53-3",[]],["title/53-4",[304,15.63,320,22.48]],["name/53-4",[]],["text/53-4",[]],["component/53-4",[]],["title/53",[24,8.915,209,19.549,299,32.342,300,19.549]],["name/53",[189,0.674,209,0.723,299,1.196]],["text/53",[1,1.526,5,2.621,6,1.152,16,2.478,18,1.29,20,2.487,24,1.71,25,0.685,27,2.028,38,2.383,41,2.568,42,1.536,43,2.539,46,1.073,54,1.741,57,2.776,58,1.759,59,2.445,64,3.302,65,1.526,68,1.374,69,0.837,74,2.376,77,1.625,84,0.765,87,2.843,88,2.295,89,1.289,90,2.794,91,3.13,94,0.917,96,1.501,111,1.381,112,2.584,113,3.95,115,2.925,128,1.797,133,1.039,136,1.794,140,0.902,160,1.269,163,1.436,169,1.05,172,1.356,176,2.129,183,1.018,188,3.398,189,2.056,191,1.138,192,1.452,209,3.86,210,2.182,224,2.636,267,3.577,273,1.289,274,3.04,282,1.728,288,1.576,290,1.705,299,3.098,300,1.44,303,1.407,304,0.888,305,1.5,321,0.969,322,1.567,323,0.806,332,2.463,338,2.584,340,1.332,353,1.858,356,1.903,364,2.419,374,1.124,375,1.576,383,2.637,385,1.269,387,1.513,391,3.38,401,1.787,402,0.812,403,0.812,404,0.812,405,0.812,406,0.812,407,0.812,408,0.812,409,0.812,439,0.96,488,1.25,511,2.504,512,1.356,513,3.512,526,1.903,528,2.182,529,2.338,557,1.671,568,1.167,585,1.25,599,2.743,613,1.671,615,1.536,617,2.884,634,1.975,636,1.356,643,2.149,645,1.975,668,2.985,690,1.31,705,2.383,712,1.576,717,1.576,719,2.749,739,1.5,771,3.173,786,1.215,788,1.436,798,1.621,803,1.728,812,1.5,819,2.539,881,2.933,918,2.431,925,2.601,959,1.5,967,1.215,1017,1.975,1062,1.061,1063,1.975,1069,1.975,1071,1.085,1246,3.098,1248,2.933,1249,3.646,1253,1.728,1317,1.728,1353,1.436,1423,1.467,1442,1.975,1469,2.668,1476,3.173,1489,1.728,1550,1.621,1662,1.576,1732,1.536,1739,1.794,1786,1.794,1932,3.173,2022,4.347,2140,4.643,2279,8.016,2521,1.794,2543,1.874,2545,1.269,2751,1.975,2824,2.109,2864,3.173,2870,3.57,2899,3.343,2900,3.343,2901,3.343,2937,3.57,2960,2.109,3007,6.619,3037,3.915,3038,5.991,3039,5.991,3040,3.915,3041,3.915,3042,1.975,3043,2.313,3044,2.313,3045,2.313,3046,3.915,3047,2.313,3048,3.915,3049,2.313,3050,2.313,3051,2.313,3052,2.313]],["component/53",[179,0.571]],["title/54-1",[249,30.967,301,37.83]],["name/54-1",[]],["text/54-1",[]],["component/54-1",[]],["title/54-2",[205,31.973,231,32.938,290,26.144]],["name/54-2",[]],["text/54-2",[]],["component/54-2",[]],["title/54-3",[205,31.973,231,32.938,1863,38.061]],["name/54-3",[]],["text/54-3",[]],["component/54-3",[]],["title/54-4",[189,23.654,300,25.356]],["name/54-4",[]],["text/54-4",[]],["component/54-4",[]],["title/54-5",[304,15.63,320,22.48]],["name/54-5",[]],["text/54-5",[]],["component/54-5",[]],["title/54",[5,12.014,24,7.999,167,29.019,231,26.169,301,26.169]],["name/54",[24,0.33,231,1.078,301,1.078]],["text/54",[1,0.956,5,0.618,11,3.073,14,1.102,18,1.043,19,1.126,20,1.635,22,3.66,24,1.91,25,0.727,27,3.222,32,2.503,36,2.874,53,1.09,55,1.523,57,0.835,61,4.138,65,0.956,67,1.288,68,3.496,69,1.923,72,1.113,76,2.191,77,2.205,85,1.691,120,0.948,137,1.464,152,1.037,167,1.492,170,1.079,183,1.079,188,3.692,189,0.841,192,0.909,194,1.192,198,3.191,203,1.629,205,3.313,227,1.138,231,5.673,237,4.397,249,1.848,257,3.442,263,2.952,271,1.555,273,1.367,277,1.629,278,2.102,288,1.671,290,3.019,301,4.927,303,1.492,304,0.933,305,1.59,308,1.555,310,5.105,321,1.027,322,1.646,323,0.854,328,3.863,332,1.008,334,3.583,338,1.058,348,5.264,353,2.522,356,1.192,374,1.999,375,1.671,378,2.411,380,1.999,398,1.718,401,0.861,402,0.861,403,0.861,404,0.861,405,0.861,406,0.861,407,0.861,408,0.861,409,0.861,417,1.555,454,2.732,473,3.467,488,2.224,511,1.206,522,4.982,542,1.464,584,3.073,596,1.671,621,2.732,646,4.245,701,1.988,719,3.442,727,1.492,743,3.233,784,1.718,849,1.192,850,3.369,856,1.346,858,1.671,860,2.456,861,1.438,881,1.413,954,5.311,962,3.334,965,3.334,976,1.832,991,3.512,996,5.819,1027,1.629,1068,3.191,1092,1.192,1140,2.094,1360,2.732,1368,6.039,1423,1.555,1476,1.988,1612,2.503,1739,1.903,1799,4.723,1863,2.609,1889,3.512,2133,3.191,2343,2.094,2796,2.236,2806,3.191,2817,1.903,2874,2.094,2942,4.845,2961,3.751,2964,1.903,3053,6.22,3054,2.452,3055,2.452,3056,2.452,3057,2.452,3058,2.452,3059,2.452,3060,4.114,3061,4.114,3062,4.114,3063,2.452,3064,2.452,3065,2.452,3066,2.452,3067,2.452,3068,2.452,3069,2.236,3070,2.452,3071,2.452]],["component/54",[179,0.571]],["title/55-1",[18,15.212,25,17.789,176,17.558]],["name/55-1",[]],["text/55-1",[]],["component/55-1",[]],["title/55-2",[22,23.807,24,10.068,25,17.789]],["name/55-2",[]],["text/55-2",[]],["component/55-2",[]],["title/55-3",[18,10.96,22,17.152,23,28.724,24,7.254,25,12.817,263,20.525]],["name/55-3",[]],["text/55-3",[]],["component/55-3",[]],["title/55-4",[10,26.41,24,10.068,263,28.488]],["name/55-4",[]],["text/55-4",[]],["component/55-4",[]],["title/55-5",[189,23.654,300,25.356]],["name/55-5",[]],["text/55-5",[]],["component/55-5",[]],["title/55-6",[304,15.63,320,22.48]],["name/55-6",[]],["text/55-6",[]],["component/55-6",[]],["title/55",[18,10.96,22,17.152,24,7.254,70,13.34,131,19.224,263,20.525]],["name/55",[22,0.508,24,0.215,70,0.395,131,0.57,263,0.608]],["text/55",[0,1.001,1,2.28,4,1.928,5,0.707,9,1.56,10,0.694,18,2.24,19,1.289,20,1.21,22,3.941,23,5.871,24,1.751,25,2.712,36,2.429,46,1.303,53,0.701,54,1.687,57,2.43,61,1.779,63,0.649,68,1.332,69,2.449,70,3.366,71,2.313,72,1.275,73,2.175,74,0.626,84,0.522,85,2.606,94,1.505,95,0.817,100,3.688,103,2.746,116,0.942,118,2.651,127,2.09,131,3.669,138,0.709,140,1.794,152,1.188,155,0.942,170,1.236,176,2.534,191,2.264,192,3.211,193,1.14,205,3.115,208,1.318,209,0.58,210,0.88,263,4.794,273,0.88,304,0.358,307,1.14,313,1.867,314,1.677,321,1.59,322,0.631,323,2.485,326,1.381,342,1.224,347,2.112,348,0.88,351,0.866,353,2.185,366,2.429,376,1.59,382,1.821,387,3.639,388,1.365,390,0.96,391,1.721,393,0.894,395,1.565,400,1.14,401,0.554,402,0.554,403,0.554,404,0.554,405,0.554,406,0.554,407,0.554,408,0.554,409,0.554,414,1.636,415,1.048,439,1.165,469,0.786,485,1.279,513,0.925,522,1.865,532,2.989,542,0.942,546,1.048,547,1.224,561,0.98,565,1.14,568,0.796,577,1.618,586,1.939,619,1.821,627,4.964,631,0.853,636,0.925,694,0.909,739,2.461,774,1.646,780,1.106,834,2.082,849,0.767,915,1.968,918,0.98,927,1.075,949,0.942,959,1.023,967,1.993,1013,1.677,1024,0.925,1062,2.422,1071,2.16,1092,3.287,1095,0.96,1097,1.677,1098,0.98,1126,2.276,1132,1.279,1224,0.866,1234,1.347,1283,4.733,1332,2.741,1353,1.744,1360,1.048,1413,6.093,1414,2.356,1422,1.001,1571,2.834,1572,2.179,1599,1.224,1601,1.279,1632,3.571,1636,1.279,1649,1.439,1662,1.914,1701,1.14,1712,1.14,1726,0.98,1747,1.439,1764,1.347,1799,1.914,2004,1.224,2006,1.279,2210,2.659,2211,1.347,2356,1.179,2357,2.028,2358,1.439,2498,2.561,2544,2.659,2545,2.896,2552,3.24,2886,1.347,2911,2.276,3072,3.795,3073,1.578,3074,1.578,3075,1.578,3076,1.179,3077,4.277,3078,1.578,3079,8.207,3080,4.603,3081,1.578,3082,1.578,3083,1.578,3084,1.578,3085,1.578,3086,1.578,3087,3.24,3088,3.795,3089,3.075,3090,3.46,3091,1.578,3092,1.578,3093,1.347,3094,4.603,3095,3.73,3096,1.578,3097,1.578,3098,1.578,3099,2.808,3100,3.46,3101,3.46,3102,1.439,3103,2.808,3104,2.808,3105,1.578,3106,1.578,3107,1.279,3108,1.578,3109,1.578,3110,1.578,3111,1.578,3112,1.578]],["component/55",[179,0.571]],["title/56",[]],["name/56",[22,0.615,24,0.26,263,0.736,3113,1.551]],["text/56",[]],["component/56",[179,0.571]],["title/57-1",[120,20.541,152,22.479,719,24.392,774,31.157]],["name/57-1",[]],["text/57-1",[]],["component/57-1",[]],["title/57-2",[24,8.915,25,15.752,68,18.653,152,22.479]],["name/57-2",[]],["text/57-2",[]],["component/57-2",[]],["title/57-3",[18,10.96,24,7.254,25,12.817,68,15.177,120,16.713,131,19.224]],["name/57-3",[]],["text/57-3",[]],["component/57-3",[]],["title/57-4",[18,10.96,24,7.254,25,12.817,68,15.177,131,19.224,152,18.29]],["name/57-4",[]],["text/57-4",[]],["component/57-4",[]],["title/57-5",[18,10.96,24,7.254,25,12.817,68,15.177,70,13.34,131,19.224]],["name/57-5",[]],["text/57-5",[]],["component/57-5",[]],["title/57-6",[304,15.63,320,22.48]],["name/57-6",[]],["text/57-6",[]],["component/57-6",[]],["title/57",[24,7.999,25,14.133,68,16.737,73,15.333,152,20.169]],["name/57",[68,0.94,152,1.133]],["text/57",[4,1.359,5,1.689,7,0.933,9,0.764,18,2.278,20,1.135,21,0.534,22,2.197,23,1.234,24,1.82,25,2.788,27,1.346,32,4.08,35,0.892,36,2.569,46,1.206,53,0.826,54,0.826,57,1.886,61,0.387,68,2.919,69,2.335,70,3.042,71,0.678,73,1.043,74,0.398,84,0.615,85,2.414,87,0.476,89,2.883,94,0.737,95,1.346,100,3.363,103,1.753,110,0.622,113,3.699,120,3.872,121,0.559,127,2.348,130,0.622,131,4.246,133,0.835,137,0.598,138,1.939,140,2.159,152,3.671,154,0.61,162,0.568,163,1.154,169,1.18,170,0.441,176,2.03,184,0.499,191,0.493,192,1.601,194,0.903,205,0.534,208,0.872,209,1.588,210,0.559,220,1.637,224,0.441,230,0.666,231,1.426,249,2.142,263,2.786,273,2.406,277,0.666,278,1.328,283,0.598,291,0.749,292,0.622,304,0.227,310,0.542,311,0.856,319,0.666,321,1.089,322,0.744,323,2.335,332,1.334,338,0.802,347,2.349,353,1.233,356,2.852,359,0.963,364,1.049,366,2.249,375,0.683,376,1.359,380,0.903,382,1.685,387,2.386,388,0.487,391,2.411,393,0.568,401,0.912,402,0.352,403,1.139,404,0.352,405,0.352,406,0.352,407,0.352,408,0.352,409,0.352,410,1.726,438,2.659,439,0.416,469,1.294,473,1.036,482,1.205,488,1.005,498,2.104,507,1.267,511,0.493,512,1.902,513,3.246,514,1.278,532,0.568,542,1.937,553,1.821,568,1.311,617,0.568,618,2.598,619,2.473,620,2.423,621,1.726,624,2.517,626,1.821,627,3.93,631,1.405,634,0.938,646,1.384,664,1.11,668,1.089,670,0.598,676,1.053,717,0.683,719,2.188,748,1.267,774,2.795,775,0.683,786,0.526,806,0.65,833,0.749,834,1.426,849,1.576,858,0.683,861,1.089,877,0.683,881,1.071,910,0.702,911,1.205,914,0.588,915,1.821,918,5.08,924,0.506,949,1.551,959,1.205,967,1.365,990,0.724,1013,0.598,1020,0.702,1031,0.749,1061,0.683,1062,2.188,1071,1.789,1083,1.131,1085,1.179,1092,3.576,1095,1.581,1097,2.577,1098,1.613,1223,1.342,1224,1.02,1225,0.577,1230,0.724,1241,0.778,1246,0.61,1248,0.577,1249,1.131,1303,1.442,1306,0.666,1309,1.342,1311,4.716,1315,0.702,1316,0.778,1318,0.778,1319,0.778,1335,0.724,1340,1.442,1353,0.622,1390,1.388,1407,1.877,1414,0.622,1415,1.506,1416,1.506,1418,0.749,1419,0.749,1422,3.28,1423,4.401,1424,0.666,1435,0.812,1469,0.683,1489,1.388,1514,0.683,1583,1.685,1612,0.61,1662,0.683,1701,1.877,1719,1.302,1726,1.154,1771,1.267,1799,2.598,1806,1.726,1931,0.636,1934,0.778,2002,0.749,2019,1.506,2020,1.342,2051,0.856,2061,0.778,2182,0.749,2207,0.724,2328,0.778,2356,1.941,2357,1.877,2524,0.778,2544,1.821,2545,3.039,2552,0.856,2949,0.778,2964,0.778,3011,0.778,3022,1.695,3076,0.749,3077,2.629,3089,0.812,3090,0.914,3093,0.856,3095,1.506,3107,0.812,3114,0.914,3115,1.859,3116,1.002,3117,1.002,3118,1.002,3119,4.317,3120,1.859,3121,1.002,3122,1.002,3123,1.002,3124,1.002,3125,1.002,3126,1.002,3127,1.002,3128,1.002,3129,1.002,3130,1.002,3131,1.002,3132,1.859,3133,1.002,3134,1.002,3135,1.859,3136,0.914,3137,1.002,3138,1.002,3139,1.002,3140,1.442,3141,0.914,3142,0.914,3143,0.914,3144,0.914,3145,1.002,3146,1.002,3147,1.002,3148,1.002,3149,0.856,3150,0.856,3151,0.856,3152,0.856,3153,1.587,3154,0.856,3155,0.856,3156,0.856,3157,0.856,3158,0.724,3159,0.856,3160,0.856,3161,4.07,3162,4.07,3163,2.77,3164,0.856,3165,0.856,3166,2.218,3167,2.218,3168,2.218,3169,2.218,3170,2.218,3171,2.218,3172,2.218,3173,2.218,3174,0.856,3175,2.218,3176,0.856,3177,0.914,3178,0.856,3179,1.506,3180,0.856,3181,1.587,3182,0.856,3183,0.856,3184,0.856,3185,0.856,3186,0.856,3187,0.856,3188,0.856,3189,0.856,3190,0.856,3191,1.002,3192,0.856,3193,1.587,3194,1.587,3195,0.856,3196,1.587,3197,1.587,3198,1.587,3199,1.587,3200,0.856,3201,0.856,3202,0.856,3203,0.856,3204,0.856,3205,1.002,3206,0.856,3207,0.856,3208,0.856]],["component/57",[179,0.571]],["title/58-1",[100,26.144,120,23.198,314,35.833]],["name/58-1",[]],["text/58-1",[]],["component/58-1",[]],["title/58-2",[24,8.915,25,15.752,68,18.653,314,31.73]],["name/58-2",[]],["text/58-2",[]],["component/58-2",[]],["title/58-3",[18,10.96,24,7.254,25,12.817,68,15.177,120,16.713,131,19.224]],["name/58-3",[]],["text/58-3",[]],["component/58-3",[]],["title/58-4",[18,10.96,24,7.254,25,12.817,68,15.177,131,19.224,152,18.29]],["name/58-4",[]],["text/58-4",[]],["component/58-4",[]],["title/58-5",[18,10.96,24,7.254,25,12.817,68,15.177,70,13.34,131,19.224]],["name/58-5",[]],["text/58-5",[]],["component/58-5",[]],["title/58-6",[304,15.63,320,22.48]],["name/58-6",[]],["text/58-6",[]],["component/58-6",[]],["title/58",[20,13.968,25,15.752,68,18.653,314,31.73]],["name/58",[68,0.94,314,1.599]],["text/58",[0,0.51,1,1.252,4,1.134,5,1.436,7,0.77,9,1.113,18,2.416,19,0.369,20,0.711,21,0.429,22,2.361,23,1.423,24,1.804,25,2.696,27,1.11,32,3.468,35,0.727,36,2.281,46,0.994,49,0.422,53,0.673,54,1.428,57,1.747,61,0.828,67,0.422,68,2.764,69,2.649,70,2.868,71,0.552,72,0.365,73,0.87,74,0.319,82,1.421,83,0.795,84,1.697,85,2.447,89,3.024,92,0.456,94,0.6,95,1.402,100,3.793,103,1.502,105,0.795,107,0.448,110,0.499,113,3.169,120,3.88,127,2.027,130,1.68,131,4.213,133,0.68,138,2.005,140,1.875,152,3.095,154,0.921,169,0.973,170,0.666,172,0.472,176,2.044,184,0.401,191,0.396,192,1.902,194,1.315,205,3.413,208,1.006,209,1.35,210,0.448,220,1.365,224,0.666,230,0.534,231,1.485,249,1.835,253,0.522,263,3.473,273,2.045,278,2.282,283,0.904,292,0.499,301,0.441,304,0.182,310,0.435,314,5.869,315,0.94,321,0.898,322,0.322,323,2.232,326,1.805,332,1.113,338,0.653,345,0.564,347,2.171,348,0.448,353,1.284,356,2.769,359,0.784,364,0.611,366,2.455,376,0.337,380,0.735,382,1.755,387,2.476,388,0.391,391,2.13,393,0.456,397,0.406,401,0.752,402,0.282,403,0.282,404,0.282,405,0.282,406,0.282,407,0.282,408,0.282,409,0.282,410,0.534,414,0.347,429,0.347,438,2.736,439,1.123,457,1.994,464,0.734,469,1.348,473,0.844,482,0.981,488,0.818,498,1.755,507,1.031,510,0.448,512,1.586,513,2.821,514,1.331,532,0.456,542,1.615,553,1.502,568,1.365,586,1.095,587,1.093,618,3.042,619,2.38,620,2.021,621,1.797,624,2.492,626,1.896,627,3.756,631,1.463,634,0.763,646,0.429,664,0.904,668,0.887,670,1.279,676,0.857,717,0.548,719,1.684,739,0.981,748,1.031,774,3.008,775,0.548,786,0.422,806,0.981,812,0.522,833,0.601,834,0.831,849,1.561,861,0.887,902,0.417,910,1.06,911,0.981,914,0.472,915,1.896,918,4.966,949,1.615,959,0.522,963,0.472,967,1.927,990,0.581,1011,1.797,1013,1.917,1014,0.472,1061,0.548,1062,2.049,1071,1.722,1083,0.921,1085,0.96,1092,4.144,1095,1.646,1097,2.665,1098,1.68,1224,0.831,1225,0.463,1230,0.581,1241,0.624,1246,0.49,1248,0.463,1249,0.921,1274,0.601,1283,3.44,1303,1.174,1306,0.534,1309,1.093,1315,0.564,1316,1.174,1318,0.624,1319,0.624,1320,0.687,1335,0.581,1340,0.624,1347,0.564,1353,0.499,1390,1.13,1407,2.32,1414,0.499,1415,1.227,1416,1.227,1418,0.601,1419,0.601,1422,2.831,1423,4.538,1424,0.534,1435,0.652,1454,0.581,1469,0.548,1489,0.601,1514,0.548,1583,1.39,1612,1.954,1662,0.548,1701,1.954,1719,1.06,1726,0.499,1749,1.093,1771,1.031,1787,0.687,1799,2.784,1806,0.534,1931,0.51,1934,0.624,2002,0.601,2019,1.227,2020,1.093,2182,1.601,2207,0.581,2252,0.687,2356,2.021,2357,1.954,2520,0.687,2524,0.624,2542,0.734,2544,1.502,2545,2.45,2871,0.564,2911,0.652,2949,0.624,2950,0.652,2964,0.624,2988,0.734,3011,0.624,3076,0.601,3077,2.193,3079,0.734,3087,0.687,3089,0.652,3095,1.227,3100,0.734,3101,3.346,3102,0.734,3107,0.652,3136,0.734,3140,1.174,3141,0.734,3142,0.734,3143,0.734,3144,0.734,3149,0.687,3150,0.687,3151,0.687,3152,0.687,3153,1.292,3154,0.687,3155,0.687,3156,0.687,3157,0.687,3158,0.581,3159,0.687,3160,0.687,3161,4.108,3162,4.108,3163,2.742,3164,0.687,3165,0.687,3166,2.31,3167,2.31,3168,2.31,3169,2.31,3170,2.31,3171,2.31,3172,2.31,3173,2.31,3174,0.687,3175,1.83,3176,0.687,3177,0.734,3178,0.687,3179,1.227,3180,0.687,3181,1.292,3182,0.687,3183,0.687,3184,0.687,3185,0.687,3186,0.687,3187,0.687,3188,0.687,3189,0.687,3190,0.687,3192,0.687,3193,1.292,3194,1.292,3195,0.687,3196,1.292,3197,1.292,3198,1.292,3199,1.292,3200,0.687,3201,0.687,3202,0.687,3203,0.687,3204,0.687,3206,0.687,3207,0.687,3208,0.687,3209,0.804,3210,0.804,3211,2.706,3212,0.804,3213,0.804,3214,0.804,3215,0.804,3216,0.804,3217,0.804,3218,3.212,3219,0.804,3220,0.804,3221,0.804,3222,0.804,3223,0.804,3224,0.804,3225,0.804,3226,0.804,3227,1.513,3228,0.804,3229,0.804,3230,0.804,3231,0.804]],["component/58",[179,0.571]],["title/59-1",[100,26.144,313,29.525,315,37.264]],["name/59-1",[]],["text/59-1",[]],["component/59-1",[]],["title/59-2",[24,8.915,25,15.752,68,18.653,313,26.144]],["name/59-2",[]],["text/59-2",[]],["component/59-2",[]],["title/59-3",[1274,44.834,2545,32.938,2980,51.246]],["name/59-3",[]],["text/59-3",[]],["component/59-3",[]],["title/59-4",[18,10.96,24,7.254,25,12.817,68,15.177,120,16.713,131,19.224]],["name/59-4",[]],["text/59-4",[]],["component/59-4",[]],["title/59-5",[18,10.96,24,7.254,25,12.817,68,15.177,131,19.224,313,21.272]],["name/59-5",[]],["text/59-5",[]],["component/59-5",[]],["title/59-6",[18,10.96,24,7.254,25,12.817,68,15.177,70,13.34,131,19.224]],["name/59-6",[]],["text/59-6",[]],["component/59-6",[]],["title/59-7",[304,15.63,320,22.48]],["name/59-7",[]],["text/59-7",[]],["component/59-7",[]],["title/59",[20,13.968,25,15.752,68,18.653,313,26.144]],["name/59",[68,0.94,313,1.318]],["text/59",[4,1.039,5,1.432,7,1.314,9,0.727,18,2.328,20,1.312,21,1.321,22,1.647,23,1.174,24,1.791,25,2.767,27,0.916,32,4.11,35,1.191,36,1.761,46,1.151,52,0.406,53,0.786,54,1.38,55,0.59,57,1.565,61,0.958,63,0.391,68,2.989,69,2.268,70,2.88,71,1.677,72,0.803,73,1.925,74,0.377,82,0.928,84,0.314,85,2.338,87,0.451,89,2.784,94,0.701,95,1.285,100,3.425,103,1.69,113,3.565,120,3.637,121,0.529,127,2.718,131,4.083,133,0.794,138,1.865,140,2.088,152,1.756,154,2.527,156,2.434,166,0.513,169,0.803,176,1.976,183,0.418,184,0.473,188,1.243,190,1.277,191,0.467,192,1.704,194,0.859,205,0.506,208,0.446,209,1.527,210,0.529,220,1.566,224,0.418,228,0.709,231,1.361,237,1.454,249,2.064,257,0.811,263,4.042,273,2.561,278,1.267,282,0.709,283,0.567,292,0.59,304,0.215,308,0.602,310,0.513,313,4.662,315,2.271,320,0.31,321,0.398,322,0.707,323,1.866,326,0.467,330,0.473,332,1.277,338,0.762,340,0.547,347,1.998,353,1.177,356,2.763,359,0.916,364,0.714,366,1.591,375,1.205,376,1.039,380,1.205,382,1.608,387,2.52,388,0.462,391,2.125,393,0.538,401,0.87,402,0.333,403,0.62,404,0.333,405,0.333,406,0.333,407,0.87,408,0.333,409,0.333,410,2.43,414,0.41,425,0.59,438,2.572,439,0.394,463,0.529,469,1.235,473,0.985,482,1.146,488,0.956,498,2.014,507,1.205,510,0.529,511,0.467,512,0.557,513,1.454,514,1.22,532,0.538,542,1.48,553,1.738,568,1.251,585,0.513,586,0.485,618,2.493,619,2.373,620,1.852,621,1.647,624,2.409,626,1.738,627,3.822,631,1.34,634,0.892,636,0.557,646,1.654,664,1.055,668,1.036,670,0.567,676,1.001,693,0.866,717,0.647,719,1.425,727,0.578,748,1.205,774,1.454,775,0.647,786,0.499,819,0.616,833,0.709,834,0.97,849,1.778,861,2.434,881,0.547,902,0.492,910,1.239,911,1.146,915,1.738,918,4.973,927,0.647,949,1.48,959,0.616,963,0.557,967,1.302,990,0.686,1013,0.567,1014,0.557,1061,1.69,1062,1.679,1071,1.948,1083,1.076,1085,1.121,1092,3.044,1095,1.509,1097,2.479,1098,1.54,1132,0.77,1223,0.686,1224,0.97,1225,0.547,1230,0.686,1241,0.737,1246,0.578,1248,0.547,1249,1.076,1274,0.709,1283,0.602,1303,1.371,1306,0.631,1309,1.277,1315,1.738,1316,0.737,1318,0.737,1319,0.737,1335,0.686,1340,1.371,1353,1.928,1360,0.631,1390,1.321,1407,1.791,1414,0.59,1415,1.433,1416,1.433,1418,0.709,1419,0.709,1422,2.633,1424,0.631,1435,0.77,1454,0.686,1460,0.811,1469,0.647,1514,0.647,1548,1.612,1581,0.616,1582,0.631,1583,1.146,1612,0.578,1662,0.647,1701,1.791,1712,0.686,1719,1.239,1726,3.1,1771,1.205,1772,4.852,1787,0.811,1799,3.131,1806,0.631,1931,0.602,1934,0.737,1935,0.77,1969,0.811,1982,0.737,2002,0.709,2019,1.433,2041,0.866,2054,0.647,2182,2.319,2207,0.686,2356,1.852,2357,1.791,2474,0.866,2517,3.124,2520,0.811,2531,0.866,2544,3.499,2545,4.139,2558,1.371,2893,0.77,2911,0.77,2949,0.737,2980,3.923,3011,0.737,3076,0.709,3077,2.516,3087,0.811,3089,0.77,3093,0.811,3095,2.965,3107,0.77,3114,0.866,3140,1.371,3149,0.811,3150,0.811,3151,0.811,3152,0.811,3153,1.509,3154,0.811,3155,0.811,3156,0.811,3157,0.811,3158,0.686,3159,0.811,3160,0.811,3161,3.923,3162,3.923,3163,2.651,3164,0.811,3165,0.811,3166,2.117,3167,2.117,3168,2.117,3169,2.117,3170,2.117,3171,2.117,3172,2.117,3173,2.117,3174,0.811,3175,2.117,3176,0.811,3178,0.811,3179,1.433,3180,0.811,3181,1.509,3182,0.811,3183,0.811,3184,0.811,3185,0.811,3186,0.811,3187,0.811,3188,0.811,3189,0.811,3190,0.811,3192,0.811,3193,1.509,3194,1.509,3195,0.811,3196,1.509,3197,1.509,3198,1.509,3199,1.509,3200,0.811,3201,0.811,3202,0.811,3203,0.811,3204,0.811,3206,0.811,3207,0.811,3208,0.811,3232,0.95,3233,0.95,3234,0.95,3235,0.95,3236,0.95,3237,1.768,3238,1.768,3239,0.95,3240,0.95,3241,0.95,3242,0.95,3243,0.95,3244,0.95,3245,1.768,3246,3.659,3247,0.95,3248,0.95,3249,3.659,3250,1.768,3251,2.48,3252,0.95,3253,0.95,3254,0.95]],["component/59",[179,0.571]],["title/60-1",[54,26.683,152,25.386,687,44.834]],["name/60-1",[]],["text/60-1",[]],["component/60-1",[]],["title/60-2",[5,13.39,84,17.581,152,22.479,312,32.997]],["name/60-2",[]],["text/60-2",[]],["component/60-2",[]],["title/60-3",[5,13.39,152,22.479,312,32.997,3255,53.149]],["name/60-3",[]],["text/60-3",[]],["component/60-3",[]],["title/60-4",[5,12.014,20,12.533,152,20.169,176,13.95,312,29.607]],["name/60-4",[]],["text/60-4",[]],["component/60-4",[]],["title/60-5",[5,13.39,152,22.479,312,32.997,429,22.921]],["name/60-5",[]],["text/60-5",[]],["component/60-5",[]],["title/60-6",[5,13.39,76,28.312,312,32.997,719,24.392]],["name/60-6",[]],["text/60-6",[]],["component/60-6",[]],["title/60-7",[189,23.654,300,25.356]],["name/60-7",[]],["text/60-7",[]],["component/60-7",[]],["title/60-8",[304,15.63,320,22.48]],["name/60-8",[]],["text/60-8",[]],["component/60-8",[]],["title/60",[5,13.39,20,13.968,152,22.479,312,32.997]],["name/60",[5,0.495,152,0.831,312,1.22]],["text/60",[1,0.666,5,2.723,8,1.164,18,2.378,19,2.237,24,0.933,25,2.456,27,1.561,33,0.862,35,1.447,36,1.868,38,1.04,43,1.108,45,2.525,46,0.793,48,1.083,52,1.726,54,2.729,57,1.026,58,2.757,59,0.82,61,2.15,63,0.703,68,1.058,69,3,70,2.176,72,1.368,74,1.603,80,0.938,84,2.193,85,2.004,91,0.69,94,1.195,96,0.655,112,0.737,120,2.15,127,1.368,131,0.76,133,0.768,136,1.326,138,1.354,140,0.666,147,1.02,152,4.285,154,1.04,156,2.37,166,0.924,169,1.368,170,0.752,176,1.627,177,4.684,184,1.501,189,3.116,192,1.499,220,2.039,224,1.779,227,1.398,234,1.002,237,2.37,247,1.164,273,1.68,274,1.02,278,3.137,291,1.276,292,1.061,300,1.108,303,1.834,304,0.387,306,1.654,308,1.083,310,1.629,312,5.824,313,1.988,320,1.318,322,0.684,323,0.595,326,1.482,347,0.684,366,0.655,367,1.326,372,3.416,374,1.464,376,1.694,381,1.654,383,0.885,385,1.654,386,0.897,387,3.768,391,2.774,393,1.707,395,0.952,397,0.862,401,0.6,402,0.6,403,0.6,404,0.6,405,0.6,406,0.6,407,0.6,408,0.6,409,0.6,414,3.042,415,1.135,422,0.952,425,4.116,429,2.102,430,1.197,438,1.941,439,0.709,451,1.385,490,1.276,498,4.574,507,5.647,512,1.002,513,3.598,524,2.054,526,0.83,531,1.276,560,2.46,561,1.061,563,1.605,586,0.873,587,1.234,595,5.621,609,1.459,615,1.135,617,2.761,621,1.135,627,1.002,634,0.862,657,1.385,668,1.767,687,5.543,690,1.707,719,0.784,788,1.061,803,2.251,814,2.111,849,0.83,859,4.183,881,0.984,924,0.862,959,1.108,966,2.054,978,1.326,1116,3.527,1120,1.326,1122,3.02,1225,1.736,1246,1.834,1248,3.536,1277,2.832,1310,1.385,1368,2.92,1482,1.276,1560,1.459,1583,1.108,1613,1.276,1619,5.597,1620,3.686,1621,2.748,1622,1.558,1623,1.558,1624,4.975,1662,2.755,1712,1.234,1719,1.197,1748,4.749,1771,2.054,1912,1.558,1931,1.911,2216,1.459,2217,1.385,2218,1.459,2271,1.558,2315,1.558,2348,1.558,2521,3.136,2560,1.459,2808,1.459,2949,1.326,2981,2.748,3011,1.326,3256,1.709,3257,3.013,3258,1.709,3259,1.709,3260,1.709,3261,1.709,3262,1.709,3263,1.709,3264,1.709,3265,1.709,3266,3.013,3267,1.709,3268,3.013,3269,1.709,3270,1.709,3271,1.709,3272,1.709,3273,3.013,3274,1.709,3275,1.709,3276,1.709,3277,1.709,3278,1.709,3279,1.709,3280,1.709,3281,1.709,3282,1.709,3283,1.709,3284,3.013,3285,3.013,3286,6.63,3287,6.138,3288,1.709,3289,1.709,3290,1.709,3291,1.709,3292,1.709,3293,1.709,3294,5.562,3295,1.709,3296,1.709,3297,1.709,3298,1.709,3299,1.709,3300,4.042,3301,4.042,3302,1.709,3303,1.709,3304,1.709,3305,1.709,3306,3.013]],["component/60",[179,0.571]],["title/61",[]],["name/61",[24,0.33,120,0.759,326,0.966]],["text/61",[]],["component/61",[179,0.571]],["title/62-1",[9,17.781,24,7.254,65,16.857,110,26.848,162,24.497,323,15.062]],["name/62-1",[]],["text/62-1",[]],["component/62-1",[]],["title/62-2",[304,15.63,320,22.48]],["name/62-2",[]],["text/62-2",[]],["component/62-2",[]],["title/62",[20,12.533,103,17.54,128,21.886,129,23.752,1763,33.414]],["name/62",[70,0.395,128,0.588,129,0.638,1763,0.898,1821,0.726]],["text/62",[1,2.401,9,3.864,18,2.105,20,1.619,24,1.932,65,2.401,69,2.229,74,2.443,77,3.9,103,2.265,107,3.433,110,3.823,128,2.826,129,3.067,159,3.489,162,5.698,208,2.89,278,4.245,290,2.682,301,3.379,304,1.396,323,2.893,330,4.68,332,2.532,338,2.656,374,4.036,376,2.58,401,3.298,402,2.161,403,2.161,404,2.161,405,2.161,406,2.161,407,2.161,408,2.161,409,2.161,426,4.315,646,3.281,831,4.991,924,4.19,1555,7.091,1763,6.584,1821,3.489,2529,7.585,3307,6.158,3308,8.305,3309,6.158,3310,6.158]],["component/62",[179,0.571]],["title/63-1",[57,20.442,58,26.963,107,33.456]],["name/63-1",[]],["text/63-1",[]],["component/63-1",[]],["title/63-2",[57,18.101,58,23.875,107,29.625,209,19.549]],["name/63-2",[]],["text/63-2",[]],["component/63-2",[]],["title/63-3",[58,23.875,107,29.625,151,41.232,634,26.811]],["name/63-3",[]],["text/63-3",[]],["component/63-3",[]],["title/63-4",[107,38.425,381,37.83]],["name/63-4",[]],["text/63-4",[]],["component/63-4",[]],["title/63-5",[107,33.456,162,34.001,511,29.525]],["name/63-5",[]],["text/63-5",[]],["component/63-5",[]],["title/63-6",[304,15.63,320,22.48]],["name/63-6",[]],["text/63-6",[]],["component/63-6",[]],["title/63",[20,12.533,103,17.54,107,26.581,128,21.886,129,23.752]],["name/63",[58,0.49,70,0.337,107,0.609,128,0.501,129,0.544,1821,0.618]],["text/63",[18,1.868,20,1.362,21,2.761,57,1.765,58,3.852,61,2.003,63,2.131,69,1.876,85,2.131,87,2.46,103,1.906,107,6.512,128,2.378,129,2.581,140,2.02,151,6.653,159,4.858,160,2.844,162,4.858,176,2.156,192,1.922,209,2.711,278,3.766,294,4.895,304,1.175,323,1.805,328,4.108,332,2.131,338,2.235,347,2.074,356,2.518,359,2.685,366,1.986,374,2.518,376,3.087,381,5.415,391,3.833,401,1.819,402,1.819,403,1.819,404,1.819,405,1.819,406,1.819,407,1.819,408,1.819,409,1.819,429,2.235,467,2.889,567,4.021,584,5.505,585,2.801,634,4.326,683,2.985,719,3.382,786,3.87,924,4.712,1579,3.743,1612,3.154,1716,4.425,1761,4.021,1806,3.442,1821,5.809,1826,4.425,2210,3.631,2952,3.361,3311,5.182,3312,5.182,3313,5.182,3314,3.442,3315,4.726]],["component/63",[179,0.571]],["title/64-1",[20,12.533,100,20.772,103,17.54,128,21.886,129,23.752]],["name/64-1",[]],["text/64-1",[]],["component/64-1",[]],["title/64-2",[304,15.63,320,22.48]],["name/64-2",[]],["text/64-2",[]],["component/64-2",[]],["title/64",[20,12.533,70,14.711,103,17.54,128,21.886,129,23.752]],["name/64",[70,0.479,128,0.712,129,0.773,1265,1.03]],["text/64",[1,2.887,4,2.566,9,2.518,14,1.81,20,2.56,24,1.572,25,2.637,36,1.544,53,3.678,61,1.557,65,2.387,67,2.116,69,3.392,70,3.511,71,2.235,73,2.381,91,1.627,100,4.081,102,2.116,103,3.855,107,2.246,110,2.502,127,3.756,128,4.717,129,4.998,130,2.502,131,2.722,140,3.796,170,3.259,172,2.362,192,1.494,208,2.874,209,3.78,220,3.737,249,1.81,290,1.755,304,0.914,308,2.555,323,2.133,332,1.657,366,1.544,401,1.414,402,1.414,403,1.414,404,1.414,405,1.414,406,1.414,407,1.414,408,1.414,409,1.414,471,2.555,511,1.982,542,2.406,586,3.13,655,5.065,924,2.033,1011,4.068,1013,2.406,1062,1.849,1071,1.891,1092,4.733,1132,3.266,1193,2.824,1224,4.54,1225,3.528,1338,3.675,1422,2.555,1612,3.727,1633,3.675,1719,4.291,1763,2.824,1821,2.283,3179,4.963,3316,5.229]],["component/64",[179,0.571]],["title/65-1",[24,7.999,91,19.254,328,26.581,381,26.169,786,25.045]],["name/65-1",[]],["text/65-1",[]],["component/65-1",[]],["title/65-2",[1,20.718,24,8.915,65,20.718,183,23.386]],["name/65-2",[]],["text/65-2",[]],["component/65-2",[]],["title/65-3",[1,16.857,18,10.96,24,7.254,41,21.815,65,16.857,183,19.028]],["name/65-3",[]],["text/65-3",[]],["component/65-3",[]],["title/65-4",[16,18.101,24,8.915,694,30.617,2353,43.073]],["name/65-4",[]],["text/65-4",[]],["component/65-4",[]],["title/65-5",[347,21.268,456,32.342,694,30.617,1848,41.232]],["name/65-5",[]],["text/65-5",[]],["component/65-5",[]],["title/65-6",[1,20.718,24,8.915,65,20.718,183,23.386]],["name/65-6",[]],["text/65-6",[]],["component/65-6",[]],["title/65-7",[1,18.589,7,17.129,13,27.955,18,12.086,24,7.999]],["name/65-7",[]],["text/65-7",[]],["component/65-7",[]],["title/65-8",[304,15.63,320,22.48]],["name/65-8",[]],["text/65-8",[]],["component/65-8",[]],["title/65",[20,11.365,24,7.254,91,17.46,103,15.906,128,19.846,129,21.539]],["name/65",[24,0.183,70,0.337,91,0.441,128,0.501,129,0.544,1821,0.618]],["text/65",[1,3.984,7,3.596,13,5.215,16,2.857,18,1.854,20,1.457,24,1.96,36,0.788,41,3.154,43,2.298,46,1.644,51,1.129,53,0.915,58,2.491,65,3.55,69,0.745,71,0.751,74,1.405,82,1.861,84,1.172,88,3.665,90,3.431,91,3.754,92,1.165,94,2.48,95,1.835,99,1.811,102,1.861,103,1.303,110,3.881,116,4.825,127,0.934,128,1.626,129,1.765,133,1.592,159,3.541,162,3.541,166,1.915,169,0.934,170,2.44,172,3.251,176,1.622,183,3.401,191,2.728,192,2.056,203,3.683,227,2.901,249,0.924,257,1.626,277,2.353,278,3.492,283,1.228,291,1.537,304,1.058,308,2.247,323,1.625,328,3.091,329,1.185,332,0.846,333,2.749,338,0.887,347,1.867,356,1,359,1.066,364,1.43,373,2.041,376,1.955,380,1,381,4.435,383,1.066,391,2.073,399,3.62,401,1.243,402,0.722,403,1.243,404,0.722,405,0.722,406,0.722,407,0.722,408,0.722,409,0.722,414,0.887,429,2.391,438,0.988,456,4.703,526,1,598,3.732,599,1.442,631,1.112,634,1.038,650,1.367,655,1.915,664,1.228,679,2.247,683,3.194,698,2.353,719,0.944,786,3.843,787,2.077,849,1,858,1.402,861,2.077,877,1.402,924,4.077,986,3.885,1027,2.353,1083,1.252,1085,1.305,1089,1.486,1122,3.485,1271,1.757,1373,1.537,1612,1.252,1806,2.353,1821,5.04,1848,5.996,2205,2.871,2210,2.482,2335,1.757,2353,4.494,2425,1.757,2602,3.025,2677,4.934,2871,2.482,2952,5.241,3042,3.025,3076,2.646,3314,5.751,3316,1.757,3317,2.057,3318,2.057,3319,3.543,3320,2.057,3321,1.876,3322,2.057,3323,5.7,3324,4.142,3325,4.302,3326,3.984,3327,2.057,3328,1.876,3329,1.876,3330,2.057]],["component/65",[179,0.571]],["title/66-1",[24,8.915,65,20.718,162,30.107,457,32.997]],["name/66-1",[]],["text/66-1",[]],["component/66-1",[]],["title/66-2",[7,15.533,13,25.351,24,7.254,65,16.857,514,21.272,834,23.731]],["name/66-2",[]],["text/66-2",[]],["component/66-2",[]],["title/66-3",[304,15.63,320,22.48]],["name/66-3",[]],["text/66-3",[]],["component/66-3",[]],["title/66",[20,11.365,24,7.254,65,16.857,103,15.906,128,19.846,129,21.539]],["name/66",[24,0.183,65,0.426,70,0.337,128,0.501,129,0.544,1821,0.618]],["text/66",[1,1.204,7,3.6,9,1.27,13,5.166,16,1.408,18,1.436,19,0.807,20,0.812,24,1.892,27,1.601,33,0.887,36,0.674,46,0.816,51,0.965,53,1.838,57,1.694,63,2.045,65,4.363,67,2.171,69,1.496,70,1.534,71,1.127,73,1.329,77,3.122,82,2.612,84,1.022,87,2.689,91,1.248,94,0.697,95,1.601,102,0.923,103,1.136,110,2.566,116,4.02,127,2.258,128,1.418,129,1.539,133,1.388,140,2.208,156,1.031,159,4.605,162,4.877,166,0.95,170,0.774,172,1.811,174,1.501,176,1.455,191,1.52,192,2.315,194,1.502,203,1.168,208,0.825,209,2.477,220,2.509,227,0.816,257,0.807,260,0.807,278,3.442,301,2.268,304,0.701,309,1.232,323,1.973,328,2.304,330,0.876,332,0.723,333,2.397,338,0.758,347,1.654,356,0.854,359,0.911,364,1.248,366,1.184,374,2.753,376,2.084,381,4.305,388,3.812,391,1.859,394,1.425,399,2.397,401,0.617,402,0.617,403,0.617,404,0.617,405,0.617,406,0.617,407,0.617,408,0.617,409,0.617,414,0.758,429,2.145,456,4.098,463,2.773,467,3.48,473,0.98,482,1.14,493,0.95,496,1.198,514,2.787,526,2.417,569,3.35,584,3.716,585,2.689,598,2.468,614,1.198,634,2.085,643,0.965,650,1.168,655,3.868,664,1.049,671,2.397,683,1.78,685,2.052,719,2.6,786,3.279,787,1.031,800,0.996,823,1.425,834,3.109,849,0.854,856,2.73,858,1.198,861,1.031,881,1.013,914,1.811,924,4.228,941,1.168,970,2.638,986,1.232,1014,2.423,1027,2.052,1066,2.817,1083,1.07,1085,1.115,1089,1.27,1168,1.501,1193,4.718,1223,1.27,1224,2.268,1225,1.78,1300,2.397,1353,1.091,1474,2.638,1575,1.313,1612,1.07,1763,1.232,1806,2.052,1821,5.193,1826,3.529,1848,5.224,1902,1.501,1931,1.115,1964,2.638,2205,1.425,2210,2.896,2353,2.504,2581,1.425,2602,2.638,2677,2.986,2812,1.603,2871,1.232,2952,4.367,3042,1.501,3076,1.313,3314,4.473,3315,1.603,3316,1.501,3323,2.817,3324,2.308,3325,2.397,3326,2.638,3328,2.817,3329,1.603,3331,1.758,3332,1.758,3333,9.713,3334,5.665,3335,1.758,3336,1.758,3337,1.758,3338,4.134,3339,1.758]],["component/66",[179,0.571]],["title/67-1",[20,13.968,68,18.653,71,19.393,72,24.13]],["name/67-1",[]],["text/67-1",[]],["component/67-1",[]],["title/67-2",[68,16.737,71,17.401,72,21.65,301,26.169,774,27.955]],["name/67-2",[]],["text/67-2",[]],["component/67-2",[]],["title/67-3",[304,15.63,320,22.48]],["name/67-3",[]],["text/67-3",[]],["component/67-3",[]],["title/67",[4,15.271,18,9.238,20,9.58,68,12.793,71,13.301,73,11.72,104,19.144,105,19.144]],["name/67",[4,0.457,68,0.383,71,0.398,73,0.351,104,0.573,105,0.573]],["text/67",[1,1.038,4,2.743,5,2.329,10,1.938,14,3.716,16,2.23,18,2.403,19,1.222,20,2.174,22,1.056,24,1.451,25,2.149,27,1.379,32,1.62,36,1.688,45,1.379,46,4.29,53,2.504,57,0.907,61,1.029,65,1.717,68,3.987,69,0.964,70,1.738,71,3.911,72,1.208,73,2.512,74,2.597,76,1.418,77,1.828,84,2.399,89,1.484,96,1.02,99,1.36,104,2.959,105,2.959,109,1.326,110,1.653,112,2.823,129,1.326,137,1.589,138,1.196,157,1.589,159,2.495,166,1.439,168,1.726,170,1.171,176,1.915,188,1.762,191,1.309,192,2.897,194,1.294,209,2.668,224,1.171,241,3.76,257,1.222,260,2.021,263,2.09,278,2.251,290,1.159,301,2.417,304,0.604,307,1.923,313,4.856,321,1.115,322,1.065,323,2.28,329,1.533,333,3.417,339,2.925,347,1.065,366,2.159,387,1.029,391,0.995,394,2.157,397,1.343,401,0.934,402,0.934,403,1.546,404,0.934,405,0.934,406,0.934,407,0.934,408,0.934,409,0.934,429,1.148,430,1.865,439,1.828,457,2.734,467,1.484,488,1.439,511,1.309,512,1.56,514,1.309,526,1.294,547,2.065,562,1.988,577,2.537,596,1.814,627,4.581,646,3.001,670,2.629,694,1.533,719,3.005,743,1.62,773,1.988,774,1.56,779,2.157,784,1.865,833,1.988,834,1.461,845,2.427,856,2.417,877,1.814,902,2.281,986,3.086,1027,2.925,1062,2.021,1071,2.067,1073,1.865,1224,1.461,1249,1.62,1277,3.086,1315,1.865,1407,3.181,1581,1.726,1582,1.768,1761,2.065,1799,3.001,1821,4.426,1863,1.688,2035,1.923,2207,1.923,2529,1.923,2545,3.593,2673,2.427,2677,3.181,2799,2.273,2871,1.865,2950,2.157,2952,5.067,2969,4.016,3314,1.768,3340,2.662,3341,2.662,3342,2.273,3343,2.427,3344,1.923,3345,4.404,3346,4.016,3347,4.404,3348,2.662,3349,2.662,3350,2.662]],["component/67",[179,0.571]],["title/68-1",[4,16.573,73,12.719,104,20.776,105,20.776,109,19.703,347,15.83,2054,26.959]],["name/68-1",[]],["text/68-1",[]],["component/68-1",[]],["title/68-2",[109,29.895,3344,43.352,3351,51.246]],["name/68-2",[]],["text/68-2",[]],["component/68-2",[]],["title/68-3",[109,29.895,727,36.524,3344,43.352]],["name/68-3",[]],["text/68-3",[]],["component/68-3",[]],["title/68-4",[304,15.63,320,22.48]],["name/68-4",[]],["text/68-4",[]],["component/68-4",[]],["title/68",[4,14.159,14,15.182,18,8.566,20,8.882,71,12.332,73,10.867,104,17.75,105,17.75,109,16.833]],["name/68",[4,0.457,14,0.49,73,0.351,104,0.573,105,0.573,109,0.544]],["text/68",[4,4.238,14,1.389,18,1.261,24,0.835,25,2.122,27,1.601,35,2.39,36,1.907,39,5.695,46,3.322,54,1.374,57,2.855,63,1.271,70,1.535,71,2.612,73,3.252,76,1.647,84,2.066,104,5.313,105,5.602,109,5.191,111,1.846,140,2.435,147,1.846,148,2.335,159,1.751,172,3.661,183,2.19,192,1.845,194,1.502,209,2.886,234,1.812,244,2.166,249,2.235,304,0.701,315,1.919,321,1.295,322,1.237,323,2.175,324,2.398,326,1.521,332,1.271,347,3.14,366,1.907,376,1.295,386,1.624,387,3.24,391,1.156,397,1.559,401,1.746,402,1.085,403,1.085,404,1.085,405,1.085,406,1.085,407,1.085,408,1.085,409,1.085,429,2.146,436,2.398,438,2.999,439,2.065,457,1.919,488,1.671,496,2.107,505,2.233,511,1.521,545,3.156,549,2.107,568,1.559,570,2.233,585,3.869,670,2.971,683,2.867,727,4.775,739,4.642,914,3.661,924,1.559,941,2.053,1024,6.11,1031,2.309,1062,2.866,1071,2.931,1073,2.166,1277,3.487,1317,2.309,1349,2.053,1571,3.717,1749,2.233,1821,1.751,2004,2.398,2035,2.233,2054,6.767,2521,2.398,2529,4.511,2544,5.016,2619,2.819,2952,5.946,3140,4.845,3158,2.233,3314,2.053,3324,2.309,3325,2.398,3344,6.622,3351,5.332,3352,2.819,3353,2.639,3354,2.505,3355,3.091,3356,4.976,3357,4.976,3358,2.819,3359,3.091,3360,3.091,3361,3.091]],["component/68",[179,0.571]],["title/69-1",[5,15.121,347,24.018,516,46.565]],["name/69-1",[]],["text/69-1",[]],["component/69-1",[]],["title/69-2",[4,15.271,18,9.238,65,14.209,73,11.72,104,19.144,105,19.144,313,17.931,440,21.369]],["name/69-2",[]],["text/69-2",[]],["component/69-2",[]],["title/69-3",[304,15.63,320,22.48]],["name/69-3",[]],["text/69-3",[]],["component/69-3",[]],["title/69",[4,14.159,14,15.182,18,8.566,20,8.882,71,12.332,73,10.867,104,17.75,105,17.75,313,16.625]],["name/69",[4,0.457,14,0.49,73,0.351,104,0.573,105,0.573,313,0.537]],["text/69",[4,3.521,5,2.619,8,1.881,9,2.376,10,1.215,14,1.24,18,1.696,19,1.267,20,2.09,25,1.984,27,1.43,32,2.762,36,1.739,45,3.831,53,1.227,54,1.227,57,0.94,61,2.233,65,3.276,68,2.791,71,3.639,73,2.378,82,1.45,100,1.202,104,3.885,105,4.414,131,2.017,138,1.24,140,1.076,152,1.168,159,2.571,172,3.924,182,1.934,183,1.997,188,1.816,192,2.143,209,1.015,230,1.834,237,1.618,244,3.18,257,3.072,290,1.977,292,1.714,303,1.68,304,0.626,313,5.222,323,2.013,326,1.358,332,1.135,338,1.19,347,2.312,366,2.565,371,2.357,386,1.45,387,1.754,391,2.765,397,1.393,401,0.969,402,0.969,403,0.969,404,0.969,405,1.593,406,0.969,407,0.969,408,0.969,409,0.969,414,3.19,429,2.492,439,1.883,440,5.146,457,2.818,474,4.336,511,2.843,513,2.66,516,8.155,542,2.709,545,3.665,568,1.393,585,2.453,619,1.79,683,3.329,698,1.834,760,2.357,775,1.881,780,1.934,834,1.515,858,1.881,914,1.618,924,2.289,939,2.517,941,3.014,967,2.383,977,2.517,1011,3.838,1062,2.083,1071,1.295,1092,3.253,1098,1.714,1133,2.517,1346,2.062,1581,1.79,1582,1.834,1612,4.073,1654,2.517,1716,2.357,1749,3.278,1763,1.934,1772,3.678,1802,3.278,1806,3.014,1821,1.564,1910,2.357,2002,2.062,2054,5.42,2131,2.357,2521,2.142,2524,2.142,2529,4.835,2558,3.521,2677,1.994,2807,2.237,2952,5.45,3069,2.517,3314,1.834,3324,4.317,3353,3.875,3354,4.683,3358,2.517,3362,2.76,3363,4.538,3364,2.76,3365,2.76,3366,2.76,3367,2.76,3368,2.76,3369,2.76,3370,2.76,3371,2.76,3372,5.779,3373,2.76,3374,2.76,3375,2.76,3376,2.76]],["component/69",[179,0.571]],["title/70-1",[4,16.573,24,6.636,57,13.473,73,12.719,104,20.776,105,20.776,293,26.275]],["name/70-1",[]],["text/70-1",[]],["component/70-1",[]],["title/70-2",[189,23.654,300,25.356]],["name/70-2",[]],["text/70-2",[]],["component/70-2",[]],["title/70-3",[304,15.63,320,22.48]],["name/70-3",[]],["text/70-3",[]],["component/70-3",[]],["title/70",[4,22.266,73,17.088,104,27.913,105,27.913]],["name/70",[4,0.537,73,0.412,104,0.673,105,0.673,1265,0.851]],["text/70",[1,1.59,4,4.405,5,1.028,10,1.795,12,2.311,14,4.229,16,1.389,18,2.267,20,2.474,24,1.037,25,2.467,36,1.563,57,3.047,68,2.169,71,3.038,73,3.435,95,2.113,99,4.572,104,5.522,105,5.688,106,5.009,109,3.717,111,2.435,148,1.914,169,1.852,170,3.283,172,2.391,183,2.719,192,1.512,208,1.914,209,3.984,224,1.795,260,1.872,290,1.777,293,4.956,294,2.709,304,0.925,313,3.04,323,2.153,330,2.032,332,1.677,338,1.759,339,4.105,364,3.013,366,1.563,380,1.982,383,2.113,391,2.31,401,1.432,402,1.432,403,1.432,404,1.432,405,1.432,406,1.432,407,1.432,408,1.432,409,1.432,429,1.759,439,1.693,493,2.205,542,2.435,578,3.047,585,2.205,905,2.173,914,3.623,924,3.118,925,2.709,941,2.709,1026,2.946,1062,1.872,1068,3.164,1581,2.645,1582,2.709,1761,4.795,1781,3.719,1821,3.501,2808,3.483,2828,3.483,2950,3.306,2952,4.008,3314,2.709,3344,2.946,3351,5.277,3377,6.18,3378,4.079,3379,4.079,3380,4.079,3381,4.079,3382,4.079,3383,4.079,3384,4.079]],["component/70",[179,0.571]],["title/71-1",[5,13.461,16,11.511,25,10.017,57,11.511,313,16.625,1277,23.681,1581,21.918,1582,22.449]],["name/71-1",[]],["text/71-1",[]],["component/71-1",[]],["title/71-2",[5,13.461,16,11.511,25,10.017,57,11.511,313,16.625,1581,21.918,1582,22.449,2545,18.547]],["name/71-2",[]],["text/71-2",[]],["component/71-2",[]],["title/71-3",[304,15.63,320,22.48]],["name/71-3",[]],["text/71-3",[]],["component/71-3",[]],["title/71",[5,9.966,14,17.77,16,13.473,25,11.724,313,19.459,1581,25.654,1582,26.275]],["name/71",[4,0.353,5,0.212,14,0.378,25,0.25,73,0.271,104,0.442,105,0.442,3385,0.842]],["text/71",[2,3.356,4,2.894,5,2.957,14,2.377,16,3.211,18,1.341,25,2.851,45,2.741,54,2.353,57,3.435,59,1.171,65,3.59,67,1.281,69,1.482,73,2.221,74,0.967,84,0.807,96,0.935,104,3.628,105,3.928,112,1.052,121,1.36,140,2.416,159,2.998,172,4.05,176,0.713,184,1.215,192,0.904,234,5.085,257,1.879,278,2.093,304,0.553,311,2.082,313,4.638,319,4.589,321,1.022,322,0.976,323,2.406,334,1.405,347,2.48,366,0.935,386,2.151,387,2.396,388,3.357,391,2.317,401,2.175,402,0.856,403,0.856,404,0.856,405,0.856,406,0.856,407,0.856,408,0.856,409,0.856,414,2.282,440,2.4,457,1.514,511,3.049,524,1.662,545,3.356,563,2.181,568,2.066,585,2.861,586,1.247,646,1.299,683,2.359,687,3.059,722,2.082,786,2.151,856,1.338,914,3.102,925,2.72,927,2.791,941,3.515,974,2.224,1009,1.709,1011,4.589,1062,2.429,1071,1.921,1277,7.234,1353,3.848,1474,2.082,1581,6.114,1582,6.262,1612,4.551,1726,3.848,1749,4.477,1931,1.547,1964,2.082,2131,2.082,2529,4.99,2545,5.869,2677,1.762,2799,2.082,2871,1.709,2952,6.54,3314,3.515,3324,3.953,3325,1.892,3342,2.082,3343,2.224,3346,2.224,3353,3.496,3354,4.289,3386,2.439,3387,2.439]],["component/71",[179,0.571]],["title/72-1",[24,6.636,73,12.719,99,20.218,100,17.231,103,14.55,108,27.718,109,19.703]],["name/72-1",[]],["text/72-1",[]],["component/72-1",[]],["title/72-2",[18,10.026,24,6.636,73,12.719,99,20.218,103,14.55,108,27.718,109,19.703]],["name/72-2",[]],["text/72-2",[]],["component/72-2",[]],["title/72-3",[304,15.63,320,22.48]],["name/72-3",[]],["text/72-3",[]],["component/72-3",[]],["title/72",[24,7.254,73,13.904,99,22.102,103,15.906,108,30.3,109,21.539]],["name/72",[99,0.793,103,0.571,108,1.087,261,1.203]],["text/72",[4,1.562,18,2.013,24,1.872,36,1.428,48,2.364,51,2.045,57,2.403,58,1.674,69,1.349,73,3.411,74,2.288,75,2.364,99,5.422,100,4.263,102,3.029,103,3.844,105,3.029,108,7.616,109,5.112,110,4.931,111,4.742,138,1.674,140,2.249,148,3.311,163,2.314,172,4.656,183,1.64,209,3.695,224,1.64,257,1.711,275,2.612,304,0.845,321,1.562,322,1.492,323,2.009,332,1.533,333,2.892,338,1.607,342,4.475,347,1.492,355,2.612,357,2.417,366,2.211,387,2.727,401,1.308,402,1.308,403,1.308,404,1.308,405,1.308,406,1.308,407,1.308,408,1.308,409,1.308,429,1.607,457,4.381,493,4.293,655,3.814,740,4.166,881,2.147,924,2.91,941,3.831,963,3.381,1027,2.476,1062,2.647,1071,2.707,1802,4.166,1821,4.499,1931,3.658,2034,3.399,2035,2.692,2518,3.182,2544,2.612,2828,3.182,2952,4.576,3140,2.892,3158,2.692,3314,2.476,3324,2.784,3325,4.475,3352,5.26,3354,4.675,3388,5.768,3389,3.727,3390,3.727,3391,3.727,3392,3.727,3393,3.727,3394,3.727,3395,3.727]],["component/72",[179,0.571]],["title/73-1",[24,8.915,73,17.088,99,27.164,184,26.472]],["name/73-1",[]],["text/73-1",[]],["component/73-1",[]],["title/73-2",[189,23.654,300,25.356]],["name/73-2",[]],["text/73-2",[]],["component/73-2",[]],["title/73-3",[304,15.63,320,22.48]],["name/73-3",[]],["text/73-3",[]],["component/73-3",[]],["title/73",[24,10.068,73,19.298,99,30.677]],["name/73",[99,1.004,261,1.524,1265,1.305]],["text/73",[4,2.037,18,2.097,24,1.942,35,2.335,63,2.895,69,2.549,73,3.527,74,3.282,75,4.465,82,2.554,90,2.669,92,4.688,95,3.647,99,5.679,101,3.407,102,4.764,103,3.044,104,2.554,105,2.554,108,3.407,109,2.422,110,3.019,111,2.903,148,3.883,170,3.098,183,2.14,184,2.422,192,2.61,197,4.152,209,3.692,249,2.184,289,3.941,294,3.23,304,1.103,323,1.694,332,2,366,1.864,401,1.707,402,1.707,403,1.707,404,1.707,405,2.471,406,1.707,407,1.707,408,1.707,409,1.707,414,2.097,512,4.127,517,3.314,563,3.75,585,3.806,596,3.314,743,2.959,798,3.407,856,4.541,881,4.056,905,2.59,924,2.453,925,3.23,1193,7.032,1332,3.512,1373,6.182,1579,3.512,2433,3.941,3344,3.512,3396,6.42]],["component/73",[179,0.571]],["title/74-1",[24,6.636,73,12.719,99,20.218,100,17.231,101,27.718,102,20.776,103,14.55]],["name/74-1",[]],["text/74-1",[]],["component/74-1",[]],["title/74-2",[24,8.915,73,17.088,99,27.164,184,26.472]],["name/74-2",[]],["text/74-2",[]],["component/74-2",[]],["title/74-3",[24,6.636,52,16.894,73,12.719,101,27.718,102,20.776,103,14.55,1092,19.224]],["name/74-3",[]],["text/74-3",[]],["component/74-3",[]],["title/74-4",[24,8.915,73,17.088,99,27.164,347,21.268]],["name/74-4",[]],["text/74-4",[]],["component/74-4",[]],["title/74-5",[5,7.937,101,22.074,102,16.545,103,11.587,112,13.586,209,11.587,429,13.586,739,20.43,2545,17.288,3158,22.754]],["name/74-5",[]],["text/74-5",[]],["component/74-5",[]],["title/74-6",[5,12.014,18,12.086,856,26.169,1373,35.621,2545,26.169]],["name/74-6",[]],["text/74-6",[]],["component/74-6",[]],["title/74-7",[304,15.63,320,22.48]],["name/74-7",[]],["text/74-7",[]],["component/74-7",[]],["title/74",[24,7.254,73,13.904,99,22.102,101,30.3,102,22.712,103,15.906]],["name/74",[99,0.793,103,0.571,261,1.203,1721,1.324]],["text/74",[4,0.445,5,2.491,9,0.807,13,0.623,18,1.915,20,0.279,24,1.765,35,0.51,36,0.752,41,0.536,45,0.55,46,3.087,51,0.583,52,1.167,54,0.872,57,0.668,61,0.411,63,0.807,69,2.408,71,0.716,73,3.075,74,2.639,75,0.674,82,1.435,84,2.109,85,1.638,87,1.891,90,1.866,91,3.051,92,2.257,94,0.422,95,1.761,96,3.472,99,4.63,100,2.898,101,6.348,102,4.9,103,3.216,109,0.529,110,2.794,111,2.379,112,2.749,116,1.171,121,1.895,133,0.477,137,0.634,140,0.765,147,0.634,148,0.921,151,1.522,159,0.602,166,0.574,170,1.98,172,1.993,176,1.678,177,0.706,183,0.863,184,1.361,188,0.785,190,0.768,191,1.344,192,1.478,197,0.907,208,0.921,209,3.658,224,0.468,237,3.147,249,2.022,260,0.9,274,0.634,278,2.3,289,0.861,294,0.706,304,0.241,310,1.838,313,0.965,315,2.794,321,0.445,322,0.425,323,0.952,328,1.094,330,0.529,332,1.398,334,1.13,338,1.466,347,3.348,351,0.583,355,0.745,356,1.328,359,0.55,364,2.002,366,1.047,373,0.612,374,0.516,376,1.885,380,2.41,385,0.583,386,1.435,387,3.606,388,0.516,391,1.854,401,0.373,402,0.373,403,0.373,404,0.373,405,0.689,406,0.373,407,0.373,408,0.373,409,0.373,414,1.719,422,1.523,429,2.139,438,2.578,439,0.441,440,0.623,456,0.647,457,4.691,482,0.689,511,1.344,512,1.15,517,0.724,523,1.59,526,0.516,563,1.045,580,1.974,585,0.574,595,0.647,596,1.337,600,0.689,619,0.689,634,2.502,650,0.706,664,0.634,681,0.602,688,1.59,698,2.647,703,1.789,719,1.254,739,2.584,787,1.15,844,0.907,849,1.652,856,4.248,861,1.15,881,0.612,905,2.642,910,1.375,914,1.993,924,3.711,925,1.815,941,0.706,963,1.993,1011,0.706,1026,1.417,1062,1.254,1071,1.596,1083,0.647,1085,0.674,1089,0.768,1092,3.098,1122,0.794,1193,4.839,1249,2.425,1277,3.153,1315,1.375,1332,0.768,1373,5.495,1472,2.903,1575,0.794,1579,2.456,1580,2.903,1581,4.314,1582,4.419,1601,0.861,1612,0.647,1710,1.789,1802,3.251,1821,2.549,2002,0.794,2035,1.974,2061,0.824,2063,0.969,2133,2.12,2205,2.756,2207,0.768,2210,1.915,2326,0.969,2328,0.824,2335,1.675,2425,1.675,2433,0.861,2518,2.333,2529,1.974,2545,5.646,2558,2.12,2560,0.907,2581,0.861,2677,0.768,2871,0.745,2952,3.482,2968,0.969,3158,1.417,3314,1.815,3321,4.104,3326,0.907,3342,0.907,3344,1.417,3396,5.232,3397,1.063,3398,2.733,3399,3.4,3400,1.063,3401,4.5,3402,2.733,3403,2.733,3404,1.063,3405,1.063,3406,1.063,3407,1.063,3408,2.733,3409,1.962,3410,1.962,3411,1.962,3412,1.063,3413,1.063,3414,4.5,3415,1.962,3416,1.962,3417,1.962,3418,1.063,3419,1.962,3420,1.063,3421,1.063,3422,1.063,3423,1.063,3424,1.063,3425,1.063]],["component/74",[179,0.571]]],"invertedIndex":[["",{"_index":387,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["0",{"_index":553,"title":{},"name":{},"text":{"6":{},"14":{},"38":{},"45":{},"50":{},"57":{},"58":{},"59":{}},"component":{}}],["0.0.0.0",{"_index":2932,"title":{},"name":{},"text":{"48":{}},"component":{}}],["0.0.1",{"_index":2901,"title":{},"name":{},"text":{"47":{},"49":{},"53":{}},"component":{}}],["0.028",{"_index":2505,"title":{},"name":{},"text":{"38":{}},"component":{}}],["0.039",{"_index":3106,"title":{},"name":{},"text":{"55":{}},"component":{}}],["0.066",{"_index":3150,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["0.099",{"_index":3151,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["0.21.3",{"_index":1578,"title":{},"name":{},"text":{"21":{}},"component":{}}],["0.3",{"_index":1508,"title":{},"name":{},"text":{"19":{}},"component":{}}],["0.322",{"_index":3152,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["0.5556",{"_index":2409,"title":{},"name":{},"text":{"36":{}},"component":{}}],["0.8",{"_index":327,"title":{},"name":{},"text":{"4":{},"13":{},"21":{},"34":{}},"component":{}}],["0.9",{"_index":785,"title":{},"name":{},"text":{"7":{}},"component":{}}],["0/2",{"_index":3000,"title":{},"name":{},"text":{"50":{}},"component":{}}],["00",{"_index":3124,"title":{},"name":{},"text":{"57":{}},"component":{}}],["0000",{"_index":3189,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["00001",{"_index":624,"title":{},"name":{},"text":{"6":{},"24":{},"57":{},"58":{},"59":{}},"component":{}}],["0044ffa0",{"_index":2246,"title":{},"name":{},"text":{"33":{}},"component":{}}],["00:00:00.180",{"_index":1672,"title":{},"name":{},"text":{"21":{}},"component":{}}],["00ce5c1d",{"_index":2448,"title":{},"name":{},"text":{"38":{}},"component":{}}],["01",{"_index":3125,"title":{},"name":{},"text":{"57":{}},"component":{}}],["01t16:08:12.038z",{"_index":1845,"title":{},"name":{},"text":{"26":{}},"component":{}}],["01t16:08:12.061z",{"_index":1846,"title":{},"name":{},"text":{"26":{}},"component":{}}],["0229",{"_index":2734,"title":{},"name":{},"text":{"45":{}},"component":{}}],["03",{"_index":2477,"title":{},"name":{},"text":{"38":{}},"component":{}}],["037c",{"_index":2224,"title":{},"name":{},"text":{"33":{}},"component":{}}],["03:00",{"_index":1517,"title":{},"name":{},"text":{"19":{},"38":{}},"component":{}}],["03e6cf79",{"_index":2708,"title":{},"name":{},"text":{"45":{}},"component":{}}],["03t16:36:19",{"_index":2515,"title":{},"name":{},"text":{"38":{}},"component":{}}],["04",{"_index":660,"title":{},"name":{},"text":{"6":{}},"component":{}}],["05",{"_index":1627,"title":{},"name":{},"text":{"21":{}},"component":{}}],["05t17:31:00z",{"_index":661,"title":{},"name":{},"text":{"6":{}},"component":{}}],["06",{"_index":1230,"title":{},"name":{},"text":{"14":{},"33":{},"38":{},"45":{},"57":{},"58":{},"59":{}},"component":{}}],["06c3fe8e2dfc42e2211cbcc41224f5a3d6bd1f26",{"_index":3184,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["07",{"_index":1515,"title":{},"name":{},"text":{"19":{},"26":{}},"component":{}}],["09ccd1e972bb",{"_index":2236,"title":{},"name":{},"text":{"33":{}},"component":{}}],["1",{"_index":332,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"11":{},"13":{},"15":{},"16":{},"17":{},"19":{},"21":{},"23":{},"24":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"53":{},"54":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["1.0",{"_index":390,"title":{},"name":{},"text":{"4":{},"6":{},"9":{},"13":{},"17":{},"19":{},"21":{},"30":{},"32":{},"33":{},"36":{},"38":{},"42":{},"55":{}},"component":{}}],["1.0.0",{"_index":1553,"title":{},"name":{},"text":{"20":{},"21":{}},"component":{}}],["1.0.1",{"_index":2180,"title":{},"name":{},"text":{"33":{},"41":{}},"component":{}}],["1.0.jar",{"_index":2509,"title":{},"name":{},"text":{"38":{}},"component":{}}],["1.0578",{"_index":2228,"title":{},"name":{},"text":{"33":{}},"component":{}}],["1.22",{"_index":2977,"title":{},"name":{},"text":{"50":{}},"component":{}}],["1.22.0.final",{"_index":1687,"title":{},"name":{},"text":{"21":{}},"component":{}}],["1.22.1.final",{"_index":3104,"title":{},"name":{},"text":{"55":{}},"component":{}}],["1.27.2",{"_index":2209,"title":{},"name":{},"text":{"33":{}},"component":{}}],["1.3.8",{"_index":250,"title":{},"name":{},"text":{"2":{}},"component":{}}],["1.302",{"_index":3105,"title":{},"name":{},"text":{"55":{}},"component":{}}],["1.41",{"_index":3015,"title":{},"name":{},"text":{"50":{}},"component":{}}],["1.41.0",{"_index":3014,"title":{},"name":{},"text":{"50":{}},"component":{}}],["1.43",{"_index":185,"title":{"2":{}},"name":{},"text":{},"component":{}}],["1.43.0",{"_index":3028,"title":{"52-1":{}},"name":{},"text":{"52":{}},"component":{}}],["1.67.0",{"_index":3397,"title":{},"name":{},"text":{"74":{}},"component":{}}],["1/2",{"_index":3003,"title":{},"name":{},"text":{"50":{}},"component":{}}],["10",{"_index":482,"title":{},"name":{},"text":{"5":{},"6":{},"14":{},"17":{},"33":{},"42":{},"57":{},"58":{},"59":{},"66":{},"74":{}},"component":{}}],["10.0.0.0/24",{"_index":2992,"title":{},"name":{},"text":{"50":{}},"component":{}}],["10.100.120.208",{"_index":3137,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.102.87.208",{"_index":3134,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.106.202.150",{"_index":3130,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.108.153.180",{"_index":3139,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.111.19.134",{"_index":3126,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.96.0.0/12",{"_index":3222,"title":{},"name":{},"text":{"58":{}},"component":{}}],["10.97.110.167",{"_index":3117,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.98.150.141",{"_index":3128,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.98.64.78",{"_index":3121,"title":{},"name":{},"text":{"57":{}},"component":{}}],["100",{"_index":1477,"title":{},"name":{},"text":{"18":{}},"component":{}}],["1000",{"_index":1890,"title":{},"name":{},"text":{"27":{},"42":{}},"component":{}}],["10000",{"_index":427,"title":{},"name":{},"text":{"5":{},"16":{},"30":{}},"component":{}}],["1017afb1",{"_index":1188,"title":{},"name":{},"text":{"14":{}},"component":{}}],["11",{"_index":1575,"title":{},"name":{},"text":{"21":{},"33":{},"41":{},"42":{},"66":{},"74":{}},"component":{}}],["11:latest\\n\\nenv",{"_index":2839,"title":{},"name":{},"text":{"47":{}},"component":{}}],["12",{"_index":2581,"title":{},"name":{},"text":{"42":{},"50":{},"66":{},"74":{}},"component":{}}],["12.2",{"_index":1399,"title":{},"name":{},"text":{"17":{}},"component":{}}],["123",{"_index":658,"title":{},"name":{},"text":{"6":{}},"component":{}}],["12345",{"_index":1507,"title":{},"name":{},"text":{"19":{}},"component":{}}],["124859",{"_index":3221,"title":{},"name":{},"text":{"58":{}},"component":{}}],["128mi",{"_index":2868,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["13",{"_index":3423,"title":{},"name":{},"text":{"74":{}},"component":{}}],["13:43:45,077",{"_index":2771,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,215",{"_index":2772,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,219",{"_index":2773,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,230",{"_index":2775,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,239",{"_index":2781,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,244",{"_index":2786,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:44:36,666",{"_index":2741,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:44:36,669",{"_index":2743,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:44:36,673",{"_index":2745,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:44:36,676",{"_index":2747,"title":{},"name":{},"text":{"45":{}},"component":{}}],["14",{"_index":3424,"title":{},"name":{},"text":{"74":{}},"component":{}}],["14:38:09,741",{"_index":1629,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:09,840",{"_index":1631,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:09,843",{"_index":1635,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,877",{"_index":1640,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,878",{"_index":1644,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,879",{"_index":1645,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,880",{"_index":1651,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,889",{"_index":1655,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,890",{"_index":1664,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,375",{"_index":1677,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,377",{"_index":1682,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,378",{"_index":1685,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,379",{"_index":1691,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,380",{"_index":1693,"title":{},"name":{},"text":{"21":{}},"component":{}}],["15",{"_index":844,"title":{},"name":{},"text":{"9":{},"17":{},"74":{}},"component":{}}],["15.558",{"_index":2514,"title":{},"name":{},"text":{"38":{}},"component":{}}],["154.0",{"_index":1794,"title":{},"name":{},"text":{"25":{}},"component":{}}],["154ae8f2df21",{"_index":1221,"title":{},"name":{},"text":{"14":{}},"component":{}}],["156498b7096d",{"_index":1184,"title":{},"name":{},"text":{"14":{}},"component":{}}],["1564baf907a1",{"_index":2227,"title":{},"name":{},"text":{"33":{}},"component":{}}],["162.0",{"_index":1798,"title":{},"name":{},"text":{"25":{}},"component":{}}],["16384",{"_index":2995,"title":{},"name":{},"text":{"50":{}},"component":{}}],["16:36:11,461",{"_index":2478,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:11,708",{"_index":2482,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:12,004",{"_index":2494,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:14,486",{"_index":2496,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:14,612",{"_index":2497,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:14,613",{"_index":2501,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:16,559",{"_index":2504,"title":{},"name":{},"text":{"38":{}},"component":{}}],["17:38:09,692",{"_index":1646,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:09,705",{"_index":1652,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:12,332",{"_index":1656,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:12,405",{"_index":1665,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:12,636",{"_index":1675,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:12.332",{"_index":1658,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:13,105",{"_index":1678,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:13,132",{"_index":1683,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:13,181",{"_index":1686,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:13,182",{"_index":1692,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17ebabdb3585",{"_index":2737,"title":{},"name":{},"text":{"45":{}},"component":{}}],["18000/tcp",{"_index":3138,"title":{},"name":{},"text":{"57":{}},"component":{}}],["185\\nenv",{"_index":2857,"title":{},"name":{},"text":{"47":{}},"component":{}}],["1912",{"_index":2764,"title":{},"name":{},"text":{"45":{}},"component":{}}],["192.168.58.2",{"_index":3223,"title":{},"name":{},"text":{"58":{}},"component":{}}],["1c12",{"_index":2728,"title":{},"name":{},"text":{"45":{}},"component":{}}],["1d174d25",{"_index":1509,"title":{},"name":{},"text":{"19":{}},"component":{}}],["1e37",{"_index":2714,"title":{},"name":{},"text":{"45":{}},"component":{}}],["2",{"_index":338,"title":{},"name":{},"text":{"4":{},"6":{},"9":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"19":{},"21":{},"23":{},"24":{},"26":{},"27":{},"29":{},"32":{},"33":{},"34":{},"36":{},"38":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"53":{},"54":{},"57":{},"58":{},"59":{},"62":{},"63":{},"65":{},"66":{},"69":{},"70":{},"72":{},"74":{}},"component":{}}],["2.0",{"_index":125,"title":{"33":{},"32-5":{},"33-1":{}},"name":{},"text":{"1":{},"32":{},"33":{}},"component":{}}],["2.0.0",{"_index":1305,"title":{},"name":{},"text":{"16":{},"27":{},"34":{}},"component":{}}],["2.10.2.final",{"_index":3207,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["2.1156",{"_index":2229,"title":{},"name":{},"text":{"33":{}},"component":{}}],["2.16.9.final",{"_index":1633,"title":{},"name":{},"text":{"21":{},"64":{}},"component":{}}],["2.9.0.final",{"_index":1688,"title":{},"name":{},"text":{"21":{}},"component":{}}],["2.9.2.final",{"_index":2498,"title":{},"name":{},"text":{"38":{},"55":{}},"component":{}}],["2/2",{"_index":3005,"title":{},"name":{},"text":{"50":{}},"component":{}}],["20",{"_index":477,"title":{},"name":{},"text":{"5":{},"50":{}},"component":{}}],["20.10.7",{"_index":2208,"title":{},"name":{},"text":{"33":{}},"component":{}}],["200",{"_index":2076,"title":{},"name":{},"text":{"32":{},"33":{},"36":{}},"component":{}}],["2000",{"_index":1833,"title":{},"name":{},"text":{"26":{}},"component":{}}],["201",{"_index":2472,"title":{},"name":{},"text":{"38":{}},"component":{}}],["2018",{"_index":659,"title":{},"name":{},"text":{"6":{}},"component":{}}],["2022",{"_index":1514,"title":{},"name":{},"text":{"19":{},"21":{},"26":{},"33":{},"38":{},"45":{},"57":{},"58":{},"59":{}},"component":{}}],["2033",{"_index":1229,"title":{},"name":{},"text":{"14":{}},"component":{}}],["218.0",{"_index":1796,"title":{},"name":{},"text":{"25":{}},"component":{}}],["21bb14db61f0",{"_index":1404,"title":{},"name":{},"text":{"17":{}},"component":{}}],["21bb14db61f0\",\"source\":\"/local/curl\",\"type\":\"kogito.serverless.loanbroker.aggregated.quotes.response\",\"data",{"_index":1388,"title":{},"name":{},"text":{"17":{}},"component":{}}],["22.3.0",{"_index":3073,"title":{},"name":{},"text":{"55":{}},"component":{}}],["23",{"_index":3187,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["23:53:38",{"_index":3188,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["24",{"_index":841,"title":{},"name":{},"text":{"9":{},"45":{}},"component":{}}],["25",{"_index":1628,"title":{},"name":{},"text":{"21":{}},"component":{}}],["250m",{"_index":2867,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["25t16:22:53.735128049",{"_index":1526,"title":{},"name":{},"text":{"19":{}},"component":{}}],["25t16:29:27.320408379",{"_index":1541,"title":{},"name":{},"text":{"19":{}},"component":{}}],["25t16:30:35.461988261",{"_index":1516,"title":{},"name":{},"text":{"19":{}},"component":{}}],["2669m",{"_index":2513,"title":{},"name":{},"text":{"38":{}},"component":{}}],["27t04:35:54.631z\\\",\\\"retri",{"_index":1231,"title":{},"name":{},"text":{"14":{}},"component":{}}],["2acf710d",{"_index":3108,"title":{},"name":{},"text":{"55":{}},"component":{}}],["2d9184dd4b3d\",\"workflowdata\":{\"greeting\":\"hello",{"_index":1707,"title":{},"name":{},"text":{"21":{}},"component":{}}],["2fcda936e00",{"_index":2756,"title":{},"name":{},"text":{"45":{}},"component":{}}],["2s",{"_index":1777,"title":{},"name":{},"text":{"25":{}},"component":{}}],["3",{"_index":356,"title":{},"name":{},"text":{"4":{},"6":{},"9":{},"11":{},"13":{},"16":{},"17":{},"21":{},"23":{},"24":{},"26":{},"29":{},"32":{},"33":{},"36":{},"38":{},"42":{},"43":{},"45":{},"46":{},"53":{},"54":{},"57":{},"58":{},"59":{},"63":{},"65":{},"66":{},"74":{}},"component":{}}],["3.0.3",{"_index":2179,"title":{},"name":{},"text":{"33":{},"34":{},"36":{}},"component":{}}],["3.1.0",{"_index":2074,"title":{},"name":{},"text":{"32":{}},"component":{}}],["3.4.2.final",{"_index":2481,"title":{},"name":{},"text":{"38":{}},"component":{}}],["3.635",{"_index":2499,"title":{},"name":{},"text":{"38":{}},"component":{}}],["3.8.6",{"_index":1577,"title":{},"name":{},"text":{"21":{},"33":{},"41":{}},"component":{}}],["30",{"_index":1390,"title":{},"name":{},"text":{"17":{},"25":{},"46":{},"57":{},"58":{},"59":{}},"component":{}}],["300000",{"_index":1389,"title":{},"name":{},"text":{"17":{}},"component":{}}],["32.0",{"_index":2407,"title":{},"name":{},"text":{"36":{}},"component":{}}],["3301",{"_index":2709,"title":{},"name":{},"text":{"45":{}},"component":{}}],["3349741271d5",{"_index":2762,"title":{},"name":{},"text":{"45":{}},"component":{}}],["36ee",{"_index":2367,"title":{},"name":{},"text":{"35":{}},"component":{}}],["36ef",{"_index":2955,"title":{},"name":{},"text":{"49":{}},"component":{}}],["399ce304",{"_index":2223,"title":{},"name":{},"text":{"33":{}},"component":{}}],["3aa1ace60e79",{"_index":1524,"title":{},"name":{},"text":{"19":{}},"component":{}}],["3h16m",{"_index":625,"title":{},"name":{},"text":{"6":{},"24":{}},"component":{}}],["4",{"_index":359,"title":{},"name":{},"text":{"4":{},"9":{},"13":{},"16":{},"17":{},"21":{},"23":{},"26":{},"29":{},"32":{},"33":{},"36":{},"38":{},"42":{},"43":{},"46":{},"50":{},"57":{},"58":{},"59":{},"63":{},"65":{},"66":{},"74":{}},"component":{}}],["4.11",{"_index":2976,"title":{},"name":{},"text":{"50":{}},"component":{}}],["4.691",{"_index":1689,"title":{},"name":{},"text":{"21":{}},"component":{}}],["4.885",{"_index":3154,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["4.x",{"_index":3232,"title":{},"name":{},"text":{"59":{}},"component":{}}],["400",{"_index":992,"title":{},"name":{},"text":{"11":{}},"component":{}}],["4061",{"_index":2723,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4062",{"_index":1705,"title":{},"name":{},"text":{"21":{}},"component":{}}],["4066",{"_index":1154,"title":{},"name":{},"text":{"14":{}},"component":{}}],["4091",{"_index":1668,"title":{},"name":{},"text":{"21":{}},"component":{}}],["4096",{"_index":2990,"title":{},"name":{},"text":{"50":{}},"component":{}}],["40b7",{"_index":2368,"title":{},"name":{},"text":{"35":{}},"component":{}}],["40ea",{"_index":2729,"title":{},"name":{},"text":{"45":{}},"component":{}}],["41495513",{"_index":1403,"title":{},"name":{},"text":{"17":{}},"component":{}}],["4291",{"_index":1211,"title":{},"name":{},"text":{"14":{}},"component":{}}],["42d4",{"_index":2360,"title":{},"name":{},"text":{"35":{}},"component":{}}],["432d",{"_index":2778,"title":{},"name":{},"text":{"45":{}},"component":{}}],["434b",{"_index":2710,"title":{},"name":{},"text":{"45":{}},"component":{}}],["43a2",{"_index":1197,"title":{},"name":{},"text":{"14":{}},"component":{}}],["43m",{"_index":3132,"title":{},"name":{},"text":{"57":{}},"component":{}}],["440e",{"_index":1190,"title":{},"name":{},"text":{"14":{}},"component":{}}],["44729",{"_index":1674,"title":{},"name":{},"text":{"21":{}},"component":{}}],["44m",{"_index":3119,"title":{},"name":{},"text":{"57":{}},"component":{}}],["4517",{"_index":2760,"title":{},"name":{},"text":{"45":{}},"component":{}}],["457c2d37d2fe",{"_index":1513,"title":{},"name":{},"text":{"19":{}},"component":{}}],["45ef",{"_index":2361,"title":{},"name":{},"text":{"35":{}},"component":{}}],["45fd",{"_index":1744,"title":{},"name":{},"text":{"23":{}},"component":{}}],["46ac",{"_index":1510,"title":{},"name":{},"text":{"19":{}},"component":{}}],["4730",{"_index":2312,"title":{},"name":{},"text":{"34":{}},"component":{}}],["4785",{"_index":1511,"title":{},"name":{},"text":{"19":{}},"component":{}}],["47af",{"_index":1182,"title":{},"name":{},"text":{"14":{}},"component":{}}],["47d7",{"_index":2234,"title":{},"name":{},"text":{"33":{}},"component":{}}],["481d",{"_index":3110,"title":{},"name":{},"text":{"55":{}},"component":{}}],["486d",{"_index":2225,"title":{},"name":{},"text":{"33":{}},"component":{}}],["48ba",{"_index":2956,"title":{},"name":{},"text":{"49":{}},"component":{}}],["48c9",{"_index":1110,"title":{},"name":{},"text":{"13":{}},"component":{}}],["4936",{"_index":2449,"title":{},"name":{},"text":{"38":{}},"component":{}}],["4956",{"_index":1538,"title":{},"name":{},"text":{"19":{}},"component":{}}],["4[0",{"_index":994,"title":{},"name":{},"text":{"11":{}},"component":{}}],["4a81",{"_index":1386,"title":{},"name":{},"text":{"17":{}},"component":{}}],["4b34",{"_index":2765,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4b35e85c2406\",\"workflowdata\":{\"result\":\"abc",{"_index":1103,"title":{},"name":{},"text":{"13":{}},"component":{}}],["4b8e",{"_index":2735,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4b94408d",{"_index":2776,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4bd2",{"_index":3171,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["4c0e",{"_index":2754,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4c3f",{"_index":1206,"title":{},"name":{},"text":{"14":{}},"component":{}}],["4ca9",{"_index":2319,"title":{},"name":{},"text":{"34":{}},"component":{}}],["4cf1",{"_index":1219,"title":{},"name":{},"text":{"14":{}},"component":{}}],["4d7a",{"_index":2715,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4d94",{"_index":1522,"title":{},"name":{},"text":{"19":{},"45":{}},"component":{}}],["4e0b",{"_index":1756,"title":{},"name":{},"text":{"24":{}},"component":{}}],["4e18",{"_index":2450,"title":{},"name":{},"text":{"38":{}},"component":{}}],["4e6c",{"_index":2923,"title":{},"name":{},"text":{"47":{}},"component":{}}],["4f25",{"_index":1101,"title":{},"name":{},"text":{"13":{}},"component":{}}],["4fb4",{"_index":1529,"title":{},"name":{},"text":{"19":{}},"component":{}}],["4fdc",{"_index":2248,"title":{},"name":{},"text":{"33":{}},"component":{}}],["5",{"_index":664,"title":{},"name":{},"text":{"6":{},"13":{},"16":{},"21":{},"33":{},"36":{},"38":{},"42":{},"43":{},"57":{},"58":{},"59":{},"65":{},"66":{},"74":{}},"component":{}}],["5.061",{"_index":3155,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["5.322",{"_index":3157,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["5.460",{"_index":3160,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["50051",{"_index":2351,"title":{},"name":{},"text":{"35":{}},"component":{}}],["500m",{"_index":2869,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["51fd",{"_index":2318,"title":{},"name":{},"text":{"34":{}},"component":{}}],["5749",{"_index":1189,"title":{},"name":{},"text":{"14":{}},"component":{}}],["5952",{"_index":2311,"title":{},"name":{},"text":{"34":{}},"component":{}}],["5df1ed6",{"_index":1666,"title":{},"name":{},"text":{"21":{}},"component":{}}],["6",{"_index":1083,"title":{},"name":{},"text":{"13":{},"16":{},"21":{},"26":{},"33":{},"38":{},"42":{},"43":{},"57":{},"58":{},"59":{},"65":{},"66":{},"74":{}},"component":{}}],["6.470",{"_index":1634,"title":{},"name":{},"text":{"21":{}},"component":{}}],["60",{"_index":2610,"title":{},"name":{},"text":{"42":{}},"component":{}}],["60000",{"_index":1892,"title":{},"name":{},"text":{"27":{}},"component":{}}],["610809090d9c",{"_index":2717,"title":{},"name":{},"text":{"45":{}},"component":{}}],["63dd79c4071e",{"_index":2780,"title":{},"name":{},"text":{"45":{}},"component":{}}],["64mi",{"_index":2865,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["6676",{"_index":2753,"title":{},"name":{},"text":{"45":{}},"component":{}}],["679e2cd89394",{"_index":2731,"title":{},"name":{},"text":{"45":{}},"component":{}}],["69019826",{"_index":1527,"title":{},"name":{},"text":{"19":{}},"component":{}}],["6b876bb5894d",{"_index":1192,"title":{},"name":{},"text":{"14":{}},"component":{}}],["6e403a654a30\",\"workflowdata\":{\"name\":\"john\",\"language\":\"english\",\"message\":\"hello",{"_index":2363,"title":{},"name":{},"text":{"35":{}},"component":{}}],["6s",{"_index":3002,"title":{},"name":{},"text":{"50":{}},"component":{}}],["7",{"_index":1085,"title":{},"name":{},"text":{"13":{},"16":{},"21":{},"33":{},"38":{},"42":{},"57":{},"58":{},"59":{},"65":{},"66":{},"74":{}},"component":{}}],["7.819",{"_index":2503,"title":{},"name":{},"text":{"38":{}},"component":{}}],["700",{"_index":1393,"title":{},"name":{},"text":{"17":{}},"component":{}}],["734907f0fef2",{"_index":2767,"title":{},"name":{},"text":{"45":{}},"component":{}}],["7465d9ca7ca7",{"_index":1208,"title":{},"name":{},"text":{"14":{}},"component":{}}],["7640a0af",{"_index":1520,"title":{},"name":{},"text":{"19":{}},"component":{}}],["777adb97",{"_index":1742,"title":{},"name":{},"text":{"23":{}},"component":{}}],["782d",{"_index":1755,"title":{},"name":{},"text":{"24":{}},"component":{}}],["7a15",{"_index":1667,"title":{},"name":{},"text":{"21":{}},"component":{}}],["7a36b26094bd",{"_index":1199,"title":{},"name":{},"text":{"14":{}},"component":{}}],["7b2b",{"_index":2247,"title":{},"name":{},"text":{"33":{}},"component":{}}],["7e4a",{"_index":3109,"title":{},"name":{},"text":{"55":{}},"component":{}}],["7f63872c92f4\",\"workflowdata\":{\"result\":\"bc",{"_index":1112,"title":{},"name":{},"text":{"13":{}},"component":{}}],["7m6",{"_index":3167,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["7s",{"_index":3004,"title":{},"name":{},"text":{"50":{}},"component":{}}],["8",{"_index":650,"title":{},"name":{},"text":{"6":{},"13":{},"21":{},"33":{},"42":{},"47":{},"50":{},"65":{},"66":{},"74":{}},"component":{}}],["80",{"_index":1307,"title":{},"name":{},"text":{"16":{}},"component":{}}],["80/tcp",{"_index":3131,"title":{},"name":{},"text":{"57":{}},"component":{}}],["8080",{"_index":1309,"title":{},"name":{},"text":{"16":{},"25":{},"27":{},"48":{},"57":{},"58":{},"59":{}},"component":{}}],["8080/tcp",{"_index":3127,"title":{},"name":{},"text":{"57":{}},"component":{}}],["8080:8080",{"_index":3103,"title":{},"name":{},"text":{"55":{}},"component":{}}],["8080\\nuser",{"_index":2856,"title":{},"name":{},"text":{"47":{}},"component":{}}],["8082",{"_index":752,"title":{},"name":{},"text":{"6":{}},"component":{}}],["8180",{"_index":500,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["8180:8080",{"_index":1286,"title":{},"name":{},"text":{"16":{}},"component":{}}],["81ad",{"_index":1210,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8276",{"_index":235,"title":{},"name":{},"text":{"2":{}},"component":{}}],["82cd",{"_index":2716,"title":{},"name":{},"text":{"45":{}},"component":{}}],["837e",{"_index":3170,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["8479",{"_index":1387,"title":{},"name":{},"text":{"17":{}},"component":{}}],["84967277eef6",{"_index":1213,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8555",{"_index":2755,"title":{},"name":{},"text":{"45":{}},"component":{}}],["85ab59366fe6",{"_index":1540,"title":{},"name":{},"text":{"19":{}},"component":{}}],["85bb",{"_index":2779,"title":{},"name":{},"text":{"45":{}},"component":{}}],["8601",{"_index":836,"title":{},"name":{},"text":{"9":{}},"component":{}}],["86cc",{"_index":1102,"title":{},"name":{},"text":{"13":{}},"component":{}}],["870e",{"_index":1207,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8775",{"_index":1539,"title":{},"name":{},"text":{"19":{}},"component":{}}],["8785",{"_index":264,"title":{},"name":{},"text":{"2":{}},"component":{}}],["8794",{"_index":202,"title":{},"name":{},"text":{"2":{}},"component":{}}],["880b",{"_index":1530,"title":{},"name":{},"text":{"19":{}},"component":{}}],["89fa54d25e98",{"_index":2958,"title":{},"name":{},"text":{"49":{}},"component":{}}],["8a5e",{"_index":2362,"title":{},"name":{},"text":{"35":{}},"component":{}}],["8a8b",{"_index":2783,"title":{},"name":{},"text":{"45":{}},"component":{}}],["8b9b",{"_index":1191,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8c13",{"_index":1205,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8cad",{"_index":2777,"title":{},"name":{},"text":{"45":{}},"component":{}}],["8e96",{"_index":2724,"title":{},"name":{},"text":{"45":{}},"component":{}}],["8gb",{"_index":2989,"title":{},"name":{},"text":{"50":{}},"component":{}}],["9",{"_index":1089,"title":{},"name":{},"text":{"13":{},"33":{},"38":{},"42":{},"65":{},"66":{},"74":{}},"component":{}}],["9+&@#/%=~_",{"_index":3413,"title":{},"name":{},"text":{"74":{}},"component":{}}],["9+&@#/%?=_",{"_index":3412,"title":{},"name":{},"text":{"74":{}},"component":{}}],["9090/tcp,8008/tcp",{"_index":3129,"title":{},"name":{},"text":{"57":{}},"component":{}}],["9090/tcp,8008/tcp,443/tcp",{"_index":3135,"title":{},"name":{},"text":{"57":{}},"component":{}}],["9090/tcp,8008/tcp,80/tcp,81/tcp,443/tcp",{"_index":3118,"title":{},"name":{},"text":{"57":{}},"component":{}}],["9090/tcp,8008/tcp,8080/tcp",{"_index":3122,"title":{},"name":{},"text":{"57":{}},"component":{}}],["910d8e06728d",{"_index":2725,"title":{},"name":{},"text":{"45":{}},"component":{}}],["9158",{"_index":232,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9218",{"_index":229,"title":{},"name":{},"text":{"2":{}},"component":{}}],["925c",{"_index":3111,"title":{},"name":{},"text":{"55":{}},"component":{}}],["9311",{"_index":2924,"title":{},"name":{},"text":{"47":{}},"component":{}}],["9321",{"_index":270,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9354",{"_index":2235,"title":{},"name":{},"text":{"33":{}},"component":{}}],["938264210",{"_index":1642,"title":{},"name":{},"text":{"21":{}},"component":{}}],["93dd",{"_index":2369,"title":{},"name":{},"text":{"35":{}},"component":{}}],["9415",{"_index":240,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9434",{"_index":243,"title":{},"name":{},"text":{"2":{}},"component":{}}],["948547ffd",{"_index":2998,"title":{},"name":{},"text":{"50":{}},"component":{}}],["953f07a7",{"_index":1536,"title":{},"name":{},"text":{"19":{}},"component":{}}],["9561",{"_index":256,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9603",{"_index":226,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9605",{"_index":223,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9611",{"_index":251,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9613",{"_index":199,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9614",{"_index":195,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9625",{"_index":248,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9633",{"_index":206,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9643",{"_index":221,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9653",{"_index":211,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9654",{"_index":259,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9659",{"_index":255,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9665",{"_index":217,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9674e3e",{"_index":1204,"title":{},"name":{},"text":{"14":{}},"component":{}}],["9679",{"_index":269,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9683",{"_index":214,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9702",{"_index":187,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9706",{"_index":2722,"title":{},"name":{},"text":{"45":{}},"component":{}}],["984b5c6c",{"_index":2954,"title":{},"name":{},"text":{"49":{}},"component":{}}],["99",{"_index":1660,"title":{},"name":{},"text":{"21":{}},"component":{}}],["9969",{"_index":1745,"title":{},"name":{},"text":{"23":{}},"component":{}}],["998c",{"_index":2451,"title":{},"name":{},"text":{"38":{}},"component":{}}],["9]{2",{"_index":995,"title":{},"name":{},"text":{"11":{}},"component":{}}],["9c1b",{"_index":1212,"title":{},"name":{},"text":{"14":{}},"component":{}}],["9d543764",{"_index":2782,"title":{},"name":{},"text":{"45":{}},"component":{}}],["9d74",{"_index":1220,"title":{},"name":{},"text":{"14":{}},"component":{}}],["9d9d",{"_index":1523,"title":{},"name":{},"text":{"19":{}},"component":{}}],["_",{"_index":1624,"title":{},"name":{},"text":{"21":{},"32":{},"34":{},"60":{}},"component":{}}],["_/_/|_/_/|_|\\____/___",{"_index":1626,"title":{},"name":{},"text":{"21":{}},"component":{}}],["__",{"_index":1619,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["___",{"_index":1622,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["___\\_\\____/_",{"_index":1625,"title":{},"name":{},"text":{"21":{}},"component":{}}],["____",{"_index":1620,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["_____",{"_index":1621,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["______",{"_index":1623,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["_______",{"_index":3259,"title":{},"name":{},"text":{"60":{}},"component":{}}],["________",{"_index":3258,"title":{},"name":{},"text":{"60":{}},"component":{}}],["_________",{"_index":3260,"title":{},"name":{},"text":{"60":{}},"component":{}}],["____________",{"_index":3261,"title":{},"name":{},"text":{"60":{}},"component":{}}],["____________________",{"_index":3264,"title":{},"name":{},"text":{"60":{}},"component":{}}],["__________________________",{"_index":3265,"title":{},"name":{},"text":{"60":{}},"component":{}}],["______________________________",{"_index":3262,"title":{},"name":{},"text":{"60":{}},"component":{}}],["_dev_quarkus_rest_client_stock_svc_yaml_url=http://localhost:8383",{"_index":2323,"title":{},"name":{},"text":{"34":{}},"component":{}}],["_swf_eval_temp",{"_index":465,"title":{},"name":{},"text":{"5":{}},"component":{}}],["a0e5e0265fcb\",\"workflowdata\":{\"name\":\"john\",\"language\":\"english\",\"greeting\":\"hello",{"_index":3173,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["a2328f969c73\",\"workflowdata\":{\"name\":\"john\",\"response\":[{\"message\":\"hello",{"_index":2370,"title":{},"name":{},"text":{"35":{}},"component":{}}],["a363",{"_index":2736,"title":{},"name":{},"text":{"45":{}},"component":{}}],["a3e4",{"_index":1111,"title":{},"name":{},"text":{"13":{}},"component":{}}],["a577",{"_index":1198,"title":{},"name":{},"text":{"14":{}},"component":{}}],["a6c4",{"_index":2759,"title":{},"name":{},"text":{"45":{}},"component":{}}],["a6d2",{"_index":1706,"title":{},"name":{},"text":{"21":{}},"component":{}}],["a83",{"_index":1183,"title":{},"name":{},"text":{"14":{}},"component":{}}],["a95f95c9c190\",\"workflowdata\":{\"name\":\"kogito\",\"greeting\":\"greet",{"_index":1758,"title":{},"name":{},"text":{"24":{}},"component":{}}],["a9b",{"_index":1757,"title":{},"name":{},"text":{"24":{}},"component":{}}],["a9ef",{"_index":1385,"title":{},"name":{},"text":{"17":{}},"component":{}}],["a_unique_id_42",{"_index":672,"title":{},"name":{},"text":{"6":{}},"component":{}}],["aa11",{"_index":2957,"title":{},"name":{},"text":{"49":{}},"component":{}}],["aaee",{"_index":2784,"title":{},"name":{},"text":{"45":{}},"component":{}}],["ab_jolokia_off=\\\"\\\"\\nenv",{"_index":2858,"title":{},"name":{},"text":{"47":{}},"component":{}}],["abil",{"_index":3318,"title":{},"name":{},"text":{"65":{}},"component":{}}],["abort",{"_index":970,"title":{},"name":{},"text":{"11":{},"14":{},"66":{}},"component":{}}],["abov",{"_index":531,"title":{},"name":{},"text":{"6":{},"27":{},"31":{},"47":{},"49":{},"60":{}},"component":{}}],["absolut",{"_index":2347,"title":{},"name":{},"text":{"35":{}},"component":{}}],["abstract",{"_index":1348,"title":{},"name":{},"text":{"17":{},"18":{}},"component":{}}],["ac16",{"_index":1218,"title":{},"name":{},"text":{"14":{}},"component":{}}],["acceler",{"_index":3359,"title":{},"name":{},"text":{"68":{}},"component":{}}],["accept",{"_index":953,"title":{},"name":{},"text":{"10":{},"11":{},"13":{},"24":{},"33":{},"34":{},"35":{},"38":{},"42":{}},"component":{}}],["accept(contenttype.json",{"_index":1990,"title":{},"name":{},"text":{"29":{},"38":{}},"component":{}}],["accept:application/json",{"_index":2356,"title":{},"name":{},"text":{"35":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["access",{"_index":511,"title":{"6-6":{},"36-4":{},"63-5":{}},"name":{},"text":{"6":{},"9":{},"14":{},"18":{},"21":{},"26":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"47":{},"49":{},"53":{},"54":{},"57":{},"59":{},"64":{},"67":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["accord",{"_index":824,"title":{},"name":{},"text":{"8":{},"12":{},"32":{},"36":{},"46":{}},"component":{}}],["accordingli",{"_index":1969,"title":{},"name":{},"text":{"28":{},"46":{},"59":{}},"component":{}}],["account",{"_index":1277,"title":{"71-1":{}},"name":{},"text":{"16":{},"19":{},"60":{},"67":{},"68":{},"71":{},"74":{}},"component":{}}],["accur",{"_index":2130,"title":{},"name":{},"text":{"33":{}},"component":{}}],["achiev",{"_index":371,"title":{},"name":{},"text":{"4":{},"37":{},"69":{}},"component":{}}],["acknowledgment(strategy.post_process",{"_index":1051,"title":{},"name":{},"text":{"12":{}},"component":{}}],["acm",{"_index":2127,"title":{},"name":{},"text":{"33":{}},"component":{}}],["acme_financial_oauth",{"_index":2188,"title":{},"name":{},"text":{"33":{}},"component":{}}],["acme_financial_service_oauth",{"_index":2206,"title":{},"name":{},"text":{"33":{}},"component":{}}],["acquir",{"_index":1800,"title":{},"name":{},"text":{"26":{}},"component":{}}],["act",{"_index":1350,"title":{},"name":{},"text":{"17":{},"19":{},"42":{}},"component":{}}],["action",{"_index":526,"title":{},"name":{},"text":{"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"19":{},"20":{},"23":{},"24":{},"27":{},"28":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{},"53":{},"60":{},"65":{},"66":{},"67":{},"74":{}},"component":{}}],["actiondatafilt",{"_index":957,"title":{},"name":{},"text":{"10":{},"33":{},"45":{}},"component":{}}],["actionmod",{"_index":2293,"title":{},"name":{},"text":{"34":{},"36":{}},"component":{}}],["activ",{"_index":834,"title":{"66-2":{}},"name":{},"text":{"9":{},"13":{},"14":{},"19":{},"21":{},"27":{},"34":{},"38":{},"45":{},"47":{},"49":{},"51":{},"55":{},"57":{},"58":{},"59":{},"66":{},"67":{},"69":{}},"component":{}}],["activateaccount",{"_index":1503,"title":{},"name":{},"text":{"19":{}},"component":{}}],["activateaccountev",{"_index":1502,"title":{},"name":{},"text":{"19":{}},"component":{}}],["activatedaccount",{"_index":1505,"title":{},"name":{},"text":{"19":{}},"component":{}}],["activatedaccountev",{"_index":1504,"title":{},"name":{},"text":{"19":{}},"component":{}}],["activity/servic",{"_index":2429,"title":{},"name":{},"text":{"37":{}},"component":{}}],["actual",{"_index":344,"title":{},"name":{},"text":{"4":{}},"component":{}}],["ad",{"_index":191,"title":{"15-2":{},"43-1":{}},"name":{},"text":{"2":{},"6":{},"10":{},"12":{},"14":{},"15":{},"16":{},"23":{},"25":{},"27":{},"29":{},"32":{},"35":{},"36":{},"42":{},"43":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"65":{},"66":{},"67":{},"74":{}},"component":{}}],["ad9c",{"_index":1704,"title":{},"name":{},"text":{"21":{}},"component":{}}],["adapt",{"_index":3298,"title":{},"name":{},"text":{"60":{}},"component":{}}],["add",{"_index":140,"title":{"17-1":{},"17-2":{}},"name":{},"text":{"1":{},"2":{},"3":{},"6":{},"7":{},"8":{},"9":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"41":{},"42":{},"43":{},"45":{},"48":{},"51":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"64":{},"66":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["addit",{"_index":300,"title":{"53":{},"4-12":{},"6-21":{},"7-5":{},"8-2":{},"9-10":{},"10-4":{},"11-3":{},"12-2":{},"13-4":{},"14-15":{},"15-3":{},"16-8":{},"17-6":{},"18-4":{},"19-2":{},"21-6":{},"23-5":{},"24-2":{},"26-4":{},"29-3":{},"30-2":{},"32-7":{},"33-4":{},"34-9":{},"36-6":{},"37-3":{},"38-1":{},"41-6":{},"42-4":{},"43-4":{},"45-4":{},"46-10":{},"47-13":{},"48-3":{},"49-13":{},"50-9":{},"53-1":{},"53-3":{},"54-4":{},"55-5":{},"60-7":{},"70-2":{},"73-2":{}},"name":{},"text":{"3":{},"4":{},"9":{},"17":{},"20":{},"27":{},"28":{},"29":{},"32":{},"34":{},"46":{},"49":{},"53":{},"60":{}},"component":{}}],["addition",{"_index":1902,"title":{},"name":{},"text":{"27":{},"46":{},"66":{}},"component":{}}],["addon",{"_index":220,"title":{"14-14":{}},"name":{},"text":{"2":{},"6":{},"9":{},"14":{},"15":{},"17":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"31":{},"38":{},"50":{},"51":{},"57":{},"58":{},"59":{},"60":{},"64":{},"66":{}},"component":{}}],["addonsconfig",{"_index":2484,"title":{},"name":{},"text":{"38":{}},"component":{}}],["addonsconfig{usepersistence=fals",{"_index":2485,"title":{},"name":{},"text":{"38":{}},"component":{}}],["address",{"_index":1360,"title":{"47-8":{}},"name":{},"text":{"17":{},"42":{},"45":{},"47":{},"49":{},"52":{},"54":{},"55":{},"59":{}},"component":{}}],["adjust",{"_index":1339,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["admin",{"_index":2978,"title":{},"name":{},"text":{"50":{}},"component":{}}],["administr",{"_index":311,"title":{},"name":{},"text":{"3":{},"57":{},"71":{}},"component":{}}],["admiss",{"_index":3021,"title":{},"name":{},"text":{"51":{}},"component":{}}],["adopt",{"_index":781,"title":{},"name":{},"text":{"7":{}},"component":{}}],["advanc",{"_index":2812,"title":{},"name":{},"text":{"47":{},"66":{}},"component":{}}],["advantag",{"_index":1547,"title":{},"name":{},"text":{"20":{}},"component":{}}],["aea8",{"_index":1537,"title":{},"name":{},"text":{"19":{}},"component":{}}],["af5d",{"_index":2730,"title":{},"name":{},"text":{"45":{}},"component":{}}],["af60",{"_index":2249,"title":{},"name":{},"text":{"33":{}},"component":{}}],["affect",{"_index":1887,"title":{},"name":{},"text":{"27":{}},"component":{}}],["afteral",{"_index":2573,"title":{},"name":{},"text":{"42":{}},"component":{}}],["ag",{"_index":620,"title":{},"name":{},"text":{"6":{},"24":{},"50":{},"57":{},"58":{},"59":{}},"component":{}}],["again",{"_index":3213,"title":{},"name":{},"text":{"58":{}},"component":{}}],["against",{"_index":93,"title":{},"name":{},"text":{"1":{},"7":{},"10":{},"11":{},"19":{},"33":{}},"component":{}}],["aggreg",{"_index":1438,"title":{},"name":{},"text":{"17":{}},"component":{}}],["aggregatedquotesrespons",{"_index":1429,"title":{},"name":{},"text":{"17":{}},"component":{}}],["agroal",{"_index":1694,"title":{},"name":{},"text":{"21":{},"29":{},"30":{}},"component":{}}],["aim",{"_index":2430,"title":{},"name":{},"text":{"37":{}},"component":{}}],["alert",{"_index":3323,"title":{},"name":{},"text":{"65":{},"66":{}},"component":{}}],["alia",{"_index":2252,"title":{"34-2":{}},"name":{},"text":{"34":{},"58":{}},"component":{}}],["align",{"_index":222,"title":{"51-2":{}},"name":{},"text":{"2":{}},"component":{}}],["allinon",{"_index":1870,"title":{},"name":{},"text":{"27":{}},"component":{}}],["allinone:latest",{"_index":1875,"title":{},"name":{},"text":{"27":{}},"component":{}}],["alloc",{"_index":2204,"title":{},"name":{},"text":{"33":{},"45":{}},"component":{}}],["allof",{"_index":1088,"title":{},"name":{},"text":{"13":{}},"component":{}}],["allow",{"_index":166,"title":{},"name":{},"text":{"1":{},"2":{},"5":{},"6":{},"14":{},"15":{},"16":{},"18":{},"19":{},"29":{},"30":{},"34":{},"42":{},"45":{},"47":{},"59":{},"60":{},"65":{},"66":{},"67":{},"74":{}},"component":{}}],["along",{"_index":2002,"title":{},"name":{},"text":{"30":{},"57":{},"58":{},"59":{},"69":{},"74":{}},"component":{}}],["alongsid",{"_index":3402,"title":{},"name":{},"text":{"74":{}},"component":{}}],["alpha",{"_index":3020,"title":{},"name":{},"text":{"51":{}},"component":{}}],["alphabet",{"_index":2071,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{}}],["alreadi",{"_index":1353,"title":{},"name":{},"text":{"17":{},"31":{},"47":{},"48":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"66":{},"71":{}},"component":{}}],["altern",{"_index":395,"title":{},"name":{},"text":{"4":{},"9":{},"11":{},"17":{},"19":{},"27":{},"28":{},"30":{},"32":{},"33":{},"34":{},"38":{},"43":{},"45":{},"47":{},"49":{},"50":{},"55":{},"60":{}},"component":{}}],["although",{"_index":1355,"title":{},"name":{},"text":{"17":{}},"component":{}}],["alway",{"_index":1317,"title":{},"name":{},"text":{"16":{},"27":{},"35":{},"49":{},"53":{},"68":{}},"component":{}}],["amaz",{"_index":1709,"title":{},"name":{},"text":{"21":{}},"component":{}}],["amount",{"_index":831,"title":{},"name":{},"text":{"9":{},"17":{},"33":{},"62":{}},"component":{}}],["analyz",{"_index":2963,"title":{},"name":{},"text":{"49":{}},"component":{}}],["and/or",{"_index":791,"title":{},"name":{},"text":{"7":{}},"component":{}}],["annot",{"_index":1469,"title":{},"name":{},"text":{"18":{},"29":{},"42":{},"47":{},"49":{},"53":{},"57":{},"58":{},"59":{}},"component":{}}],["anoth",{"_index":1349,"title":{"47-2":{},"49-6":{}},"name":{},"text":{"17":{},"18":{},"30":{},"35":{},"45":{},"47":{},"49":{},"68":{}},"component":{}}],["anymor",{"_index":851,"title":{},"name":{},"text":{"9":{}},"component":{}}],["anyth",{"_index":2892,"title":{},"name":{},"text":{"47":{}},"component":{}}],["apach",{"_index":118,"title":{"18":{}},"name":{},"text":{"1":{},"6":{},"8":{},"12":{},"14":{},"16":{},"17":{},"18":{},"21":{},"23":{},"27":{},"28":{},"29":{},"33":{},"38":{},"55":{}},"component":{}}],["api",{"_index":45,"title":{"14-9":{},"27-12":{},"32-4":{}},"name":{},"text":{"1":{},"2":{},"4":{},"5":{},"14":{},"17":{},"26":{},"27":{},"32":{},"33":{},"34":{},"36":{},"38":{},"42":{},"43":{},"51":{},"60":{},"67":{},"69":{},"71":{},"74":{}},"component":{}}],["api_key_exampl",{"_index":2068,"title":{},"name":{},"text":{"32":{}},"component":{}}],["apicatalog_apis_123_docu",{"_index":2261,"title":{},"name":{},"text":{"34":{}},"component":{}}],["apicurio",{"_index":3415,"title":{},"name":{},"text":{"74":{}},"component":{}}],["apigroup",{"_index":3286,"title":{},"name":{},"text":{"60":{}},"component":{}}],["apikey",{"_index":2057,"title":{},"name":{},"text":{"32":{}},"component":{}}],["apivers",{"_index":1246,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"25":{},"27":{},"47":{},"48":{},"49":{},"52":{},"53":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["app",{"_index":1583,"title":{},"name":{},"text":{"21":{},"24":{},"25":{},"32":{},"33":{},"41":{},"48":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["app.kubernetes.io/nam",{"_index":1303,"title":{},"name":{},"text":{"16":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["app.kubernetes.io/vers",{"_index":1304,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["app.quarkus.io/build",{"_index":3185,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["app.quarkus.io/commit",{"_index":3183,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["app.sh",{"_index":2834,"title":{},"name":{},"text":{"47":{}},"component":{}}],["app/*.jar",{"_index":2851,"title":{},"name":{},"text":{"47":{}},"component":{}}],["app/app",{"_index":2853,"title":{},"name":{},"text":{"47":{}},"component":{}}],["app/lib",{"_index":2849,"title":{},"name":{},"text":{"47":{}},"component":{}}],["app/quarku",{"_index":2217,"title":{},"name":{},"text":{"33":{},"34":{},"47":{},"60":{}},"component":{}}],["appear",{"_index":2677,"title":{},"name":{},"text":{"45":{},"65":{},"66":{},"67":{},"69":{},"71":{},"74":{}},"component":{}}],["appl",{"_index":2525,"title":{},"name":{},"text":{"41":{}},"component":{}}],["appli",{"_index":786,"title":{"65-1":{}},"name":{},"text":{"7":{},"10":{},"11":{},"14":{},"17":{},"25":{},"27":{},"28":{},"31":{},"32":{},"46":{},"47":{},"49":{},"50":{},"53":{},"57":{},"58":{},"59":{},"63":{},"65":{},"66":{},"71":{}},"component":{}}],["applic",{"_index":25,"title":{"3":{},"30":{},"38":{},"57":{},"58":{},"59":{},"71":{},"15-2":{},"21-3":{},"21-4":{},"21-5":{},"29-2":{},"33-2":{},"33-3":{},"34-6":{},"34-7":{},"35-2":{},"42-2":{},"55-1":{},"55-2":{},"55-3":{},"57-2":{},"57-3":{},"57-4":{},"57-5":{},"58-2":{},"58-3":{},"58-4":{},"58-5":{},"59-2":{},"59-4":{},"59-5":{},"59-6":{},"71-1":{},"71-2":{}},"name":{"71":{}},"text":{"1":{},"3":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"67":{},"68":{},"69":{},"70":{},"71":{}},"component":{}}],["applicantworkflow",{"_index":2017,"title":{},"name":{},"text":{"30":{}},"component":{}}],["application.properti",{"_index":676,"title":{},"name":{},"text":{"6":{},"12":{},"14":{},"15":{},"16":{},"17":{},"28":{},"30":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"48":{},"57":{},"58":{},"59":{}},"component":{}}],["application/cloudevents+json",{"_index":648,"title":{},"name":{},"text":{"6":{},"17":{}},"component":{}}],["application/json",{"_index":644,"title":{},"name":{},"text":{"6":{},"13":{},"17":{},"24":{},"33":{},"34":{},"36":{},"38":{},"43":{},"45":{}},"component":{}}],["applications/ki",{"_index":3371,"title":{},"name":{},"text":{"69":{}},"component":{}}],["applicationscop",{"_index":2168,"title":{},"name":{},"text":{"33":{}},"component":{}}],["appreci",{"_index":409,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["approach",{"_index":292,"title":{},"name":{},"text":{"3":{},"6":{},"27":{},"30":{},"35":{},"36":{},"37":{},"41":{},"57":{},"58":{},"59":{},"60":{},"69":{}},"component":{}}],["appropri",{"_index":1437,"title":{},"name":{},"text":{"17":{},"21":{},"27":{},"31":{},"35":{}},"component":{}}],["approv",{"_index":2530,"title":{},"name":{},"text":{"41":{}},"component":{}}],["approvedvisa",{"_index":886,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["apps.openshift.io",{"_index":3292,"title":{},"name":{},"text":{"60":{}},"component":{}}],["apps/v1",{"_index":1312,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["architectur",{"_index":28,"title":{"46-8":{}},"name":{},"text":{"1":{},"27":{},"33":{},"42":{},"45":{},"46":{}},"component":{}}],["arg",{"_index":1836,"title":{},"name":{},"text":{"26":{}},"component":{}}],["arg1",{"_index":1729,"title":{},"name":{},"text":{"23":{}},"component":{}}],["arg2",{"_index":1730,"title":{},"name":{},"text":{"23":{}},"component":{}}],["argument",{"_index":509,"title":{"6-4":{},"6-9":{},"6-14":{},"10-2":{}},"name":{},"text":{"6":{},"9":{},"10":{},"11":{},"14":{},"20":{},"23":{},"24":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{}},"component":{}}],["arithmet",{"_index":713,"title":{},"name":{},"text":{"6":{}},"component":{}}],["around",{"_index":2936,"title":{},"name":{},"text":{"49":{}},"component":{}}],["array",{"_index":580,"title":{},"name":{},"text":{"6":{},"8":{},"10":{},"14":{},"23":{},"35":{},"74":{}},"component":{}}],["arriv",{"_index":828,"title":{},"name":{},"text":{"9":{},"16":{},"37":{},"46":{}},"component":{}}],["articl",{"_index":2531,"title":{},"name":{},"text":{"41":{},"59":{}},"component":{}}],["artifact",{"_index":1601,"title":{},"name":{},"text":{"21":{},"29":{},"55":{},"74":{}},"component":{}}],["asc",{"_index":1171,"title":{},"name":{},"text":{"14":{}},"component":{}}],["ascend",{"_index":1170,"title":{},"name":{},"text":{"14":{}},"component":{}}],["ascloudev",{"_index":652,"title":{},"name":{},"text":{"6":{}},"component":{}}],["ask",{"_index":2968,"title":{},"name":{},"text":{"49":{},"74":{}},"component":{}}],["asp.net",{"_index":2394,"title":{},"name":{},"text":{"36":{}},"component":{}}],["aspect",{"_index":1896,"title":{},"name":{},"text":{"27":{},"33":{}},"component":{}}],["asset",{"_index":1715,"title":{},"name":{},"text":{"22":{},"30":{}},"component":{}}],["assign",{"_index":2271,"title":{},"name":{},"text":{"34":{},"60":{}},"component":{}}],["associ",{"_index":398,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"12":{},"14":{},"19":{},"45":{},"54":{}},"component":{}}],["assum",{"_index":547,"title":{},"name":{},"text":{"6":{},"20":{},"43":{},"55":{},"67":{}},"component":{}}],["assur",{"_index":139,"title":{"38":{}},"name":{},"text":{"1":{},"21":{},"29":{},"38":{},"42":{},"43":{}},"component":{}}],["assured/target/serverless",{"_index":2508,"title":{},"name":{},"text":{"38":{}},"component":{}}],["async",{"_index":40,"title":{},"name":{},"text":{"1":{},"4":{}},"component":{}}],["asyncapi",{"_index":115,"title":{"20":{}},"name":{"20":{}},"text":{"1":{},"2":{},"20":{},"53":{}},"component":{}}],["asyncapi.yaml",{"_index":1549,"title":{},"name":{},"text":{"20":{}},"component":{}}],["asyncapi.yaml#consumewait",{"_index":1559,"title":{},"name":{},"text":{"20":{}},"component":{}}],["asyncapi.yaml#sendresum",{"_index":1564,"title":{},"name":{},"text":{"20":{}},"component":{}}],["asynchron",{"_index":864,"title":{},"name":{},"text":{"9":{},"12":{},"29":{},"37":{},"42":{}},"component":{}}],["atleast",{"_index":1106,"title":{},"name":{},"text":{"13":{}},"component":{}}],["atleast(1",{"_index":1995,"title":{},"name":{},"text":{"29":{}},"component":{}}],["atmost(30",{"_index":1996,"title":{},"name":{},"text":{"29":{}},"component":{}}],["atmost(60",{"_index":2591,"title":{},"name":{},"text":{"42":{}},"component":{}}],["attach",{"_index":508,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["attempt",{"_index":1889,"title":{},"name":{},"text":{"27":{},"49":{},"54":{}},"component":{}}],["attempttoredeployfail",{"_index":3062,"title":{},"name":{},"text":{"54":{}},"component":{}}],["attent",{"_index":3165,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["attribut",{"_index":385,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"8":{},"10":{},"12":{},"14":{},"16":{},"17":{},"19":{},"23":{},"27":{},"33":{},"36":{},"37":{},"45":{},"49":{},"53":{},"60":{},"74":{}},"component":{}}],["aud",{"_index":2242,"title":{},"name":{},"text":{"33":{}},"component":{}}],["augment",{"_index":2512,"title":{},"name":{},"text":{"38":{}},"component":{}}],["auth",{"_index":1926,"title":{},"name":{},"text":{"27":{}},"component":{}}],["auth_property_nam",{"_index":2069,"title":{},"name":{},"text":{"32":{}},"component":{}}],["authent",{"_index":121,"title":{"32":{},"33":{},"32-1":{},"32-2":{},"32-3":{},"32-4":{},"32-5":{},"47-7":{}},"name":{"32":{}},"text":{"1":{},"27":{},"32":{},"33":{},"36":{},"47":{},"57":{},"59":{},"71":{},"74":{}},"component":{}}],["author",{"_index":1714,"title":{"32-6":{}},"name":{},"text":{"22":{},"32":{},"33":{},"42":{}},"component":{}}],["authorizationurl",{"_index":2094,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["authprovid",{"_index":3414,"title":{},"name":{},"text":{"74":{}},"component":{}}],["auto",{"_index":1373,"title":{"74-6":{}},"name":{},"text":{"17":{},"27":{},"65":{},"73":{},"74":{}},"component":{}}],["autocomplet",{"_index":2534,"title":{},"name":{},"text":{"41":{}},"component":{}}],["automat",{"_index":905,"title":{},"name":{},"text":{"9":{},"12":{},"14":{},"15":{},"16":{},"20":{},"25":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"36":{},"37":{},"41":{},"46":{},"49":{},"70":{},"73":{},"74":{}},"component":{}}],["autoscal",{"_index":3120,"title":{},"name":{},"text":{"57":{}},"component":{}}],["avail",{"_index":719,"title":{"57-1":{},"60-6":{}},"name":{},"text":{"6":{},"9":{},"11":{},"14":{},"15":{},"16":{},"21":{},"23":{},"25":{},"26":{},"27":{},"28":{},"30":{},"31":{},"32":{},"34":{},"36":{},"41":{},"45":{},"46":{},"49":{},"53":{},"54":{},"57":{},"58":{},"59":{},"60":{},"63":{},"65":{},"66":{},"67":{},"74":{}},"component":{}}],["averag",{"_index":3307,"title":{},"name":{},"text":{"62":{}},"component":{}}],["avoid",{"_index":587,"title":{},"name":{},"text":{"6":{},"14":{},"15":{},"27":{},"36":{},"58":{},"60":{}},"component":{}}],["await",{"_index":1994,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["awaitil",{"_index":1979,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["awar",{"_index":2825,"title":{},"name":{},"text":{"47":{}},"component":{}}],["awesom",{"_index":1606,"title":{},"name":{},"text":{"21":{}},"component":{}}],["b",{"_index":1090,"title":{},"name":{},"text":{"13":{}},"component":{}}],["b125",{"_index":2922,"title":{},"name":{},"text":{"47":{}},"component":{}}],["b232",{"_index":2761,"title":{},"name":{},"text":{"45":{}},"component":{}}],["b4bf",{"_index":2226,"title":{},"name":{},"text":{"33":{}},"component":{}}],["b4f1",{"_index":3172,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["b526",{"_index":2313,"title":{},"name":{},"text":{"34":{}},"component":{}}],["b5e1",{"_index":2711,"title":{},"name":{},"text":{"45":{}},"component":{}}],["b689",{"_index":1155,"title":{},"name":{},"text":{"14":{},"34":{}},"component":{}}],["b7fb",{"_index":1521,"title":{},"name":{},"text":{"19":{}},"component":{}}],["b869",{"_index":2766,"title":{},"name":{},"text":{"45":{}},"component":{}}],["back",{"_index":1741,"title":{},"name":{},"text":{"23":{},"27":{},"35":{},"36":{},"47":{}},"component":{}}],["backend",{"_index":1965,"title":{},"name":{},"text":{"27":{}},"component":{}}],["background",{"_index":1334,"title":{},"name":{},"text":{"16":{}},"component":{}}],["balanc",{"_index":3159,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["band",{"_index":2427,"title":{},"name":{},"text":{"37":{}},"component":{}}],["bank1",{"_index":1397,"title":{},"name":{},"text":{"17":{}},"component":{}}],["bank2",{"_index":1400,"title":{},"name":{},"text":{"17":{}},"component":{}}],["bankid",{"_index":1396,"title":{},"name":{},"text":{"17":{}},"component":{}}],["bar",{"_index":1823,"title":{},"name":{},"text":{"26":{}},"component":{}}],["barchart",{"_index":1830,"title":{},"name":{},"text":{"26":{}},"component":{}}],["base",{"_index":63,"title":{"25":{},"35":{},"9-6":{},"36-2":{},"47-2":{},"47-3":{},"47-10":{},"49-6":{}},"name":{"20":{},"36":{},"45":{}},"text":{"1":{},"6":{},"9":{},"10":{},"12":{},"13":{},"14":{},"15":{},"21":{},"24":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"55":{},"59":{},"60":{},"63":{},"66":{},"68":{},"73":{},"74":{}},"component":{}}],["baseimag",{"_index":2822,"title":{},"name":{},"text":{"47":{},"49":{},"52":{}},"component":{}}],["baselin",{"_index":2021,"title":{"31-5":{},"31-6":{},"31-7":{}},"name":{},"text":{"31":{}},"component":{}}],["baselineonmigrate=\"tru",{"_index":2048,"title":{},"name":{},"text":{"31":{}},"component":{}}],["baselinevers",{"_index":2044,"title":{},"name":{},"text":{"31":{}},"component":{}}],["baselineversion=\"1.32.0",{"_index":2049,"title":{},"name":{},"text":{"31":{}},"component":{}}],["basic",{"_index":309,"title":{"32-2":{},"49-8":{}},"name":{"38":{}},"text":{"3":{},"32":{},"35":{},"47":{},"66":{}},"component":{}}],["bc76",{"_index":1512,"title":{},"name":{},"text":{"19":{}},"component":{}}],["bcfb",{"_index":1669,"title":{},"name":{},"text":{"21":{}},"component":{}}],["be",{"_index":190,"title":{},"name":{},"text":{"2":{},"9":{},"17":{},"21":{},"51":{},"59":{},"74":{}},"component":{}}],["bean",{"_index":452,"title":{},"name":{},"text":{"5":{},"6":{},"23":{}},"component":{}}],["bear",{"_index":284,"title":{},"name":{},"text":{"3":{}},"component":{}}],["bearer",{"_index":2053,"title":{"32-3":{}},"name":{},"text":{"32":{}},"component":{}}],["becom",{"_index":833,"title":{},"name":{},"text":{"9":{},"27":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["befor",{"_index":488,"title":{},"name":{},"text":{"5":{},"7":{},"9":{},"10":{},"16":{},"17":{},"18":{},"33":{},"35":{},"36":{},"41":{},"42":{},"43":{},"46":{},"53":{},"54":{},"57":{},"58":{},"59":{},"67":{},"68":{}},"component":{}}],["beforeal",{"_index":2464,"title":{},"name":{},"text":{"38":{},"42":{}},"component":{}}],["begin",{"_index":928,"title":{},"name":{},"text":{"10":{}},"component":{}}],["behav",{"_index":352,"title":{},"name":{},"text":{"4":{},"9":{},"43":{}},"component":{}}],["behavior",{"_index":345,"title":{},"name":{},"text":{"4":{},"7":{},"12":{},"14":{},"16":{},"29":{},"47":{},"58":{}},"component":{}}],["bellow",{"_index":2898,"title":{},"name":{},"text":{"47":{}},"component":{}}],["belong",{"_index":1241,"title":{},"name":{},"text":{"14":{},"19":{},"57":{},"58":{},"59":{}},"component":{}}],["below",{"_index":277,"title":{},"name":{},"text":{"3":{},"23":{},"27":{},"31":{},"37":{},"48":{},"50":{},"54":{},"57":{},"65":{}},"component":{}}],["bequiet",{"_index":817,"title":{},"name":{},"text":{"8":{}},"component":{}}],["best",{"_index":1713,"title":{},"name":{},"text":{"22":{},"28":{}},"component":{}}],["better",{"_index":1747,"title":{},"name":{},"text":{"23":{},"55":{}},"component":{}}],["between",{"_index":966,"title":{},"name":{},"text":{"11":{},"13":{},"14":{},"27":{},"28":{},"37":{},"42":{},"43":{},"60":{}},"component":{}}],["bidirect",{"_index":2327,"title":{"35-6":{}},"name":{},"text":{"35":{}},"component":{}}],["bigger",{"_index":1900,"title":{},"name":{},"text":{"27":{}},"component":{}}],["bin",{"_index":3365,"title":{},"name":{},"text":{"69":{}},"component":{}}],["binari",{"_index":1402,"title":{},"name":{},"text":{"17":{},"30":{},"41":{}},"component":{}}],["bind",{"_index":136,"title":{},"name":{},"text":{"1":{},"17":{},"27":{},"53":{},"60":{}},"component":{}}],["blank",{"_index":3322,"title":{},"name":{},"text":{"65":{}},"component":{}}],["block",{"_index":2334,"title":{},"name":{},"text":{"35":{},"41":{}},"component":{}}],["bodi",{"_index":597,"title":{},"name":{},"text":{"6":{},"10":{},"23":{},"36":{},"37":{},"38":{},"42":{},"43":{}},"component":{}}],["body(\"workflowdata.greet",{"_index":2469,"title":{},"name":{},"text":{"38":{}},"component":{}}],["body(\"{\\\"nam",{"_index":2467,"title":{},"name":{},"text":{"38":{}},"component":{}}],["body(objectmapper.writevalueasstring(ord",{"_index":2589,"title":{},"name":{},"text":{"42":{}},"component":{}}],["boolean",{"_index":433,"title":{},"name":{},"text":{"5":{},"6":{},"10":{},"14":{},"16":{},"30":{}},"component":{}}],["boot",{"_index":2392,"title":{},"name":{},"text":{"36":{}},"component":{}}],["bootstrap",{"_index":1569,"title":{"21-1":{}},"name":{},"text":{"21":{}},"component":{}}],["both",{"_index":599,"title":{},"name":{},"text":{"6":{},"8":{},"17":{},"37":{},"42":{},"46":{},"53":{},"65":{}},"component":{}}],["box",{"_index":3321,"title":{},"name":{},"text":{"65":{},"74":{}},"component":{}}],["branch",{"_index":342,"title":{"13-3":{}},"name":{},"text":{"4":{},"13":{},"55":{},"72":{}},"component":{}}],["brancha",{"_index":1082,"title":{},"name":{},"text":{"13":{}},"component":{}}],["branchb",{"_index":1084,"title":{},"name":{},"text":{"13":{}},"component":{}}],["branchc",{"_index":1086,"title":{},"name":{},"text":{"13":{}},"component":{}}],["break",{"_index":2751,"title":{},"name":{},"text":{"45":{},"47":{},"53":{}},"component":{}}],["briefli",{"_index":588,"title":{},"name":{},"text":{"6":{}},"component":{}}],["brl",{"_index":2241,"title":{},"name":{},"text":{"33":{}},"component":{}}],["broker",{"_index":1060,"title":{},"name":{},"text":{"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"27":{},"42":{}},"component":{}}],["browser",{"_index":2950,"title":{},"name":{},"text":{"49":{},"58":{},"67":{},"70":{}},"component":{}}],["bucket",{"_index":3123,"title":{},"name":{},"text":{"57":{}},"component":{}}],["buffer",{"_index":1471,"title":{},"name":{},"text":{"18":{}},"component":{}}],["bug",{"_index":181,"title":{"2-2":{}},"name":{},"text":{"47":{},"49":{}},"component":{}}],["build",{"_index":22,"title":{"47":{},"55":{},"17-4":{},"21-3":{},"26-2":{},"26-3":{},"41-3":{},"41-4":{},"47-1":{},"47-3":{},"47-5":{},"47-6":{},"47-8":{},"47-9":{},"47-11":{},"55-2":{},"55-3":{}},"name":{"47":{},"55":{},"56":{}},"text":{"1":{},"2":{},"3":{},"12":{},"17":{},"21":{},"24":{},"26":{},"28":{},"29":{},"31":{},"33":{},"36":{},"38":{},"41":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"54":{},"55":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["build:\\n",{"_index":2820,"title":{},"name":{},"text":{"47":{}},"component":{}}],["build=tru",{"_index":3100,"title":{},"name":{},"text":{"55":{},"58":{}},"component":{}}],["buildconfig",{"_index":2810,"title":{},"name":{},"text":{"47":{}},"component":{}}],["buildconfig/greet",{"_index":2908,"title":{},"name":{},"text":{"47":{}},"component":{}}],["builder",{"_index":193,"title":{"47-2":{},"47-10":{}},"name":{},"text":{"2":{},"37":{},"47":{},"51":{},"55":{}},"component":{}}],["builder\\n",{"_index":2829,"title":{},"name":{},"text":{"47":{}},"component":{}}],["buildfailedreason",{"_index":3067,"title":{},"name":{},"text":{"54":{}},"component":{}}],["buildisrunningreason",{"_index":3066,"title":{},"name":{},"text":{"54":{}},"component":{}}],["buildpack",{"_index":3075,"title":{},"name":{},"text":{"55":{}},"component":{}}],["built",{"_index":1799,"title":{},"name":{},"text":{"25":{},"36":{},"41":{},"54":{},"55":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["busi",{"_index":1848,"title":{"65-5":{}},"name":{},"text":{"26":{},"45":{},"65":{},"66":{}},"component":{}}],["businesskey",{"_index":1844,"title":{},"name":{},"text":{"26":{}},"component":{}}],["button",{"_index":3314,"title":{},"name":{},"text":{"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["buy",{"_index":2669,"title":{},"name":{},"text":{"45":{}},"component":{}}],["byte",{"_index":2629,"title":{},"name":{},"text":{"43":{}},"component":{}}],["c",{"_index":1091,"title":{},"name":{},"text":{"13":{}},"component":{}}],["c1658c4e49bc",{"_index":1531,"title":{},"name":{},"text":{"19":{}},"component":{}}],["c4e7",{"_index":1109,"title":{},"name":{},"text":{"13":{}},"component":{}}],["c82c",{"_index":2233,"title":{},"name":{},"text":{"33":{}},"component":{}}],["cace363774bb\",\"workflowdata\":{\"symbol\":\"kgto\",\"currentprice\":56.35,\"profit\":\"13",{"_index":2324,"title":{},"name":{},"text":{"34":{}},"component":{}}],["cace363774bb\",\"workflowdata\":{\"symbol\":\"kgto\",\"currentprice\":75,\"profit\":\"50",{"_index":2314,"title":{},"name":{},"text":{"34":{}},"component":{}}],["cach",{"_index":1636,"title":{},"name":{},"text":{"21":{},"38":{},"47":{},"55":{}},"component":{}}],["cad",{"_index":2240,"title":{},"name":{},"text":{"33":{}},"component":{}}],["calcul",{"_index":804,"title":{},"name":{},"text":{"8":{},"10":{},"33":{},"34":{}},"component":{}}],["calculateexchang",{"_index":2146,"title":{},"name":{},"text":{"33":{}},"component":{}}],["calculateexchangeact",{"_index":2159,"title":{},"name":{},"text":{"33":{}},"component":{}}],["calculateexchangeresult",{"_index":2147,"title":{},"name":{},"text":{"33":{}},"component":{}}],["calculatorclient.invokeoper",{"_index":759,"title":{},"name":{},"text":{"6":{}},"component":{}}],["calculatorclient.invokeoperation((string)metadata.getordefault(host,\"localhost",{"_index":750,"title":{},"name":{},"text":{"6":{}},"component":{}}],["call",{"_index":49,"title":{"28-3":{}},"name":{},"text":{"1":{},"6":{},"9":{},"10":{},"13":{},"14":{},"18":{},"20":{},"21":{},"23":{},"24":{},"27":{},"28":{},"35":{},"36":{},"37":{},"43":{},"45":{},"46":{},"47":{},"49":{},"58":{}},"component":{}}],["callabl",{"_index":2563,"title":{},"name":{},"text":{"42":{}},"component":{}}],["callback",{"_index":78,"title":{"12":{},"37":{},"9-3":{},"12-1":{},"37-1":{}},"name":{"12":{},"37":{}},"text":{"1":{},"4":{},"8":{},"9":{},"10":{},"12":{},"17":{},"18":{},"19":{},"27":{},"29":{},"30":{},"37":{},"45":{},"46":{}},"component":{}}],["callback_event_typ",{"_index":2790,"title":{},"name":{},"text":{"46":{}},"component":{}}],["callback_state_timeout",{"_index":2787,"title":{"46-1":{}},"name":{},"text":{"46":{}},"component":{}}],["callbackact",{"_index":867,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["callbackerror",{"_index":874,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["callbackev",{"_index":870,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["callbackfunct",{"_index":868,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["callbackrestit",{"_index":1986,"title":{},"name":{},"text":{"29":{}},"component":{}}],["callbackst",{"_index":866,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["caller",{"_index":1018,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["callpetstor",{"_index":2416,"title":{},"name":{},"text":{"36":{}},"component":{}}],["callservic",{"_index":3041,"title":{},"name":{},"text":{"53":{}},"component":{}}],["camel",{"_index":153,"title":{"23":{},"6-7":{},"23-1":{},"23-2":{},"23-3":{}},"name":{"23":{}},"text":{"1":{},"6":{},"23":{}},"component":{}}],["camel:direct",{"_index":1736,"title":{},"name":{},"text":{"23":{}},"component":{}}],["camel:direct:logroutereplacehead",{"_index":1735,"title":{},"name":{},"text":{"23":{}},"component":{}}],["camel:direct:myendpoint",{"_index":591,"title":{},"name":{},"text":{"6":{}},"component":{}}],["cancel",{"_index":847,"title":{},"name":{},"text":{"9":{},"14":{},"42":{},"45":{}},"component":{}}],["cancelpay",{"_index":2692,"title":{},"name":{},"text":{"45":{}},"component":{}}],["cancelpaymentrespons",{"_index":2768,"title":{},"name":{},"text":{"45":{}},"component":{}}],["cancelstockrespons",{"_index":2769,"title":{},"name":{},"text":{"45":{}},"component":{}}],["can’t",{"_index":3069,"title":{},"name":{},"text":{"54":{},"69":{}},"component":{}}],["capabl",{"_index":517,"title":{},"name":{},"text":{"6":{},"14":{},"15":{},"17":{},"18":{},"30":{},"50":{},"73":{},"74":{}},"component":{}}],["card",{"_index":276,"title":{},"name":{},"text":{"3":{},"45":{}},"component":{}}],["care",{"_index":1354,"title":{},"name":{},"text":{"17":{},"31":{}},"component":{}}],["carri",{"_index":2794,"title":{},"name":{},"text":{"46":{}},"component":{}}],["case",{"_index":19,"title":{"1-13":{}},"name":{},"text":{"4":{},"6":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"23":{},"27":{},"28":{},"31":{},"32":{},"33":{},"35":{},"36":{},"41":{},"43":{},"45":{},"46":{},"47":{},"49":{},"54":{},"55":{},"58":{},"60":{},"66":{},"67":{},"69":{}},"component":{}}],["cat",{"_index":2889,"title":{},"name":{},"text":{"47":{}},"component":{}}],["catalog",{"_index":2981,"title":{},"name":{},"text":{"50":{},"60":{}},"component":{}}],["catch",{"_index":755,"title":{},"name":{},"text":{"6":{},"11":{},"12":{},"43":{}},"component":{}}],["caus",{"_index":2962,"title":{},"name":{},"text":{"49":{}},"component":{}}],["cd",{"_index":1599,"title":{},"name":{},"text":{"21":{},"33":{},"34":{},"46":{},"55":{}},"component":{}}],["cd98c6bd3ade",{"_index":2250,"title":{},"name":{},"text":{"33":{}},"component":{}}],["cdi",{"_index":1637,"title":{},"name":{},"text":{"21":{},"38":{}},"component":{}}],["ce",{"_index":1053,"title":{},"name":{},"text":{"12":{},"17":{}},"component":{}}],["ce.get().getdata",{"_index":1057,"title":{},"name":{},"text":{"12":{}},"component":{}}],["celsiu",{"_index":933,"title":{},"name":{},"text":{"10":{}},"component":{}}],["certain",{"_index":878,"title":{},"name":{},"text":{"9":{},"18":{},"34":{}},"component":{}}],["certif",{"_index":3375,"title":{},"name":{},"text":{"69":{}},"component":{}}],["chain",{"_index":980,"title":{},"name":{},"text":{"11":{}},"component":{}}],["chang",{"_index":148,"title":{"2-1":{},"2-2":{},"47-4":{},"47-10":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"10":{},"11":{},"13":{},"16":{},"17":{},"18":{},"21":{},"24":{},"27":{},"30":{},"31":{},"33":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"52":{},"68":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["channel",{"_index":445,"title":{"18-1":{},"18-2":{}},"name":{},"text":{"5":{},"17":{},"18":{},"20":{},"37":{},"42":{},"49":{}},"component":{}}],["charact",{"_index":926,"title":{},"name":{},"text":{"10":{},"32":{},"34":{}},"component":{}}],["charset=utf",{"_index":649,"title":{},"name":{},"text":{"6":{}},"component":{}}],["chart",{"_index":1824,"title":{},"name":{},"text":{"26":{}},"component":{}}],["check",{"_index":646,"title":{"47-12":{},"49-3":{}},"name":{},"text":{"6":{},"7":{},"11":{},"17":{},"25":{},"27":{},"29":{},"33":{},"38":{},"41":{},"42":{},"47":{},"49":{},"54":{},"57":{},"58":{},"59":{},"62":{},"67":{},"71":{}},"component":{}}],["checkbox",{"_index":3386,"title":{},"name":{},"text":{"71":{}},"component":{}}],["checkeven",{"_index":1002,"title":{},"name":{},"text":{"11":{}},"component":{}}],["checkevenact",{"_index":1003,"title":{},"name":{},"text":{"11":{}},"component":{}}],["checkeventarriv",{"_index":871,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["checkout",{"_index":2672,"title":{},"name":{},"text":{"45":{}},"component":{}}],["checkvalid",{"_index":2155,"title":{},"name":{},"text":{"33":{}},"component":{}}],["child",{"_index":1006,"title":{},"name":{},"text":{"11":{}},"component":{}}],["chip",{"_index":3319,"title":{},"name":{},"text":{"65":{}},"component":{}}],["chmod",{"_index":2522,"title":{},"name":{},"text":{"41":{}},"component":{}}],["choic",{"_index":1966,"title":{},"name":{},"text":{"28":{},"49":{}},"component":{}}],["choos",{"_index":1130,"title":{},"name":{},"text":{"14":{},"31":{}},"component":{}}],["chooseoneev",{"_index":2795,"title":{},"name":{},"text":{"46":{}},"component":{}}],["chooseonev",{"_index":884,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["chooseonlanguag",{"_index":2902,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["choreographi",{"_index":26,"title":{},"name":{},"text":{"1":{}},"component":{}}],["chown=185",{"_index":2846,"title":{},"name":{},"text":{"47":{}},"component":{}}],["chrome",{"_index":108,"title":{"72":{},"72-1":{},"72-2":{}},"name":{"72":{}},"text":{"1":{},"22":{},"72":{},"73":{}},"component":{}}],["chrome_extension_serverless_workflow_editor_version.zip",{"_index":3389,"title":{},"name":{},"text":{"72":{}},"component":{}}],["class",{"_index":541,"title":{},"name":{},"text":{"6":{},"11":{},"29":{},"33":{},"38":{},"42":{},"43":{},"45":{}},"component":{}}],["classifi",{"_index":1440,"title":{},"name":{},"text":{"18":{},"42":{}},"component":{}}],["classpath",{"_index":778,"title":{},"name":{},"text":{"7":{},"18":{},"20":{},"35":{},"36":{}},"component":{}}],["clean",{"_index":1417,"title":{},"name":{},"text":{"17":{},"21":{},"28":{},"29":{},"33":{},"35":{},"38":{},"42":{}},"component":{}}],["clear",{"_index":3042,"title":{},"name":{},"text":{"53":{},"65":{},"66":{}},"component":{}}],["clearli",{"_index":1899,"title":{},"name":{},"text":{"27":{}},"component":{}}],["cli",{"_index":131,"title":{"41":{},"55":{},"31-3":{},"31-7":{},"41-1":{},"41-2":{},"41-3":{},"41-5":{},"57-3":{},"57-4":{},"57-5":{},"58-3":{},"58-4":{},"58-5":{},"59-4":{},"59-5":{},"59-6":{}},"name":{"55":{}},"text":{"1":{},"3":{},"17":{},"21":{},"22":{},"24":{},"28":{},"31":{},"32":{},"36":{},"41":{},"50":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"69":{}},"component":{}}],["click",{"_index":2952,"title":{},"name":{},"text":{"49":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["clickabl",{"_index":3315,"title":{},"name":{},"text":{"63":{},"66":{}},"component":{}}],["client",{"_index":234,"title":{"35-5":{}},"name":{},"text":{"2":{},"14":{},"21":{},"26":{},"27":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"45":{},"60":{},"68":{},"71":{}},"component":{}}],["client.acme_financial_oauth.auth",{"_index":2194,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.cli",{"_index":2198,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.credentials.cli",{"_index":2200,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.discoveri",{"_index":2193,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.grant.type=cli",{"_index":2199,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.token",{"_index":2196,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_service_yml.url=http://localhost:8483",{"_index":2192,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.apicatalog_apis_123_document.url=http://localhost:8282",{"_index":2260,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.auth",{"_index":1928,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.host",{"_index":1924,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.myworkflow_myfunction.url=http://localhost:8282",{"_index":2262,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.oauth_exampl",{"_index":2115,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.auth",{"_index":2103,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.cli",{"_index":2109,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.credentials.cli",{"_index":2112,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.discoveri",{"_index":2107,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.grant.type=cli",{"_index":2111,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.token",{"_index":2105,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.password",{"_index":1930,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.remotecatalog.url=http://localhost:8282",{"_index":2277,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.restcountries_json.url",{"_index":2647,"title":{},"name":{},"text":{"43":{}},"component":{}}],["client.sasl",{"_index":1927,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.stock",{"_index":2267,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.stock_portfolio_svc_yaml.url=http://localhost:8282",{"_index":2254,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.stock_svc_yaml.url=http://localhost:8181",{"_index":2303,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.stock_svc_yaml.url=http://localhost:8383",{"_index":2301,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.subtraction_yaml.url=${subtraction_url:http://myserver.com",{"_index":2423,"title":{},"name":{},"text":{"36":{}},"component":{}}],["client.subtraction_yaml.url=http://myserver.com",{"_index":2420,"title":{},"name":{},"text":{"36":{}},"component":{}}],["client.us",{"_index":1925,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.usernam",{"_index":1929,"title":{},"name":{},"text":{"27":{}},"component":{}}],["clientcredenti",{"_index":2093,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["clone",{"_index":1571,"title":{},"name":{},"text":{"21":{},"30":{},"33":{},"46":{},"55":{},"68":{}},"component":{}}],["close",{"_index":2799,"title":{},"name":{},"text":{"46":{},"67":{},"71":{}},"component":{}}],["cloud",{"_index":13,"title":{"3":{},"1-9":{},"65-7":{},"66-2":{}},"name":{},"text":{"1":{},"4":{},"6":{},"10":{},"14":{},"27":{},"28":{},"37":{},"46":{},"65":{},"66":{},"74":{}},"component":{}}],["cloudev",{"_index":29,"title":{"42":{},"6-16":{},"24-1":{}},"name":{"42":{}},"text":{"1":{},"5":{},"6":{},"8":{},"10":{},"12":{},"14":{},"17":{},"18":{},"19":{},"20":{},"21":{},"24":{},"37":{},"38":{},"42":{}},"component":{}}],["cloudeventbuild",{"_index":2438,"title":{},"name":{},"text":{"37":{}},"component":{}}],["cloudeventbuilder.v1",{"_index":2439,"title":{},"name":{},"text":{"37":{}},"component":{}}],["cloudeventdata",{"_index":1056,"title":{},"name":{},"text":{"12":{}},"component":{}}],["cloudeventdata.getnode().get(\"move\").astext",{"_index":1059,"title":{},"name":{},"text":{"12":{}},"component":{}}],["cloudeventutils.decode(message.getpayload",{"_index":1054,"title":{},"name":{},"text":{"12":{}},"component":{}}],["clue",{"_index":2966,"title":{},"name":{},"text":{"49":{}},"component":{}}],["cluster",{"_index":273,"title":{},"name":{},"text":{"3":{},"6":{},"17":{},"27":{},"28":{},"34":{},"36":{},"41":{},"46":{},"47":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["clusterip",{"_index":1311,"title":{},"name":{},"text":{"16":{},"57":{}},"component":{}}],["clusterrol",{"_index":3299,"title":{},"name":{},"text":{"60":{}},"component":{}}],["cm",{"_index":2927,"title":{},"name":{},"text":{"48":{},"49":{}},"component":{}}],["cm/sonataflow",{"_index":2896,"title":{},"name":{},"text":{"47":{}},"component":{}}],["cncf",{"_index":75,"title":{"51-2":{}},"name":{"4":{}},"text":{"1":{},"4":{},"6":{},"21":{},"22":{},"36":{},"49":{},"72":{},"73":{},"74":{}},"component":{}}],["code",{"_index":102,"title":{"74":{},"74-1":{},"74-3":{},"74-5":{}},"name":{},"text":{"1":{},"6":{},"7":{},"8":{},"11":{},"21":{},"22":{},"26":{},"33":{},"35":{},"36":{},"38":{},"49":{},"64":{},"65":{},"66":{},"72":{},"73":{},"74":{}},"component":{}}],["code\":\"org.kie.kogito.serviceexcept",{"_index":2694,"title":{},"name":{},"text":{"45":{}},"component":{}}],["codegenprovid",{"_index":242,"title":{},"name":{},"text":{"2":{}},"component":{}}],["cogwheel",{"_index":3353,"title":{},"name":{},"text":{"68":{},"69":{},"71":{}},"component":{}}],["collect",{"_index":579,"title":{},"name":{},"text":{"6":{},"15":{},"27":{},"46":{}},"component":{}}],["colon",{"_index":997,"title":{},"name":{},"text":{"11":{}},"component":{}}],["column",{"_index":1826,"title":{},"name":{},"text":{"26":{},"63":{},"66":{}},"component":{}}],["columngroup",{"_index":1837,"title":{},"name":{},"text":{"26":{}},"component":{}}],["com.acme.myinterfaceorclass",{"_index":538,"title":{},"name":{},"text":{"6":{}},"component":{}}],["com.apple.quarantin",{"_index":3370,"title":{},"name":{},"text":{"69":{}},"component":{}}],["com.fasterxml.jackson.databind.jsonnod",{"_index":2632,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.fasterxml.jackson.databind.objectmapp",{"_index":2633,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.pull_request.open",{"_index":654,"title":{},"name":{},"text":{"6":{}},"component":{}}],["com.github.tomakehurst",{"_index":2564,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.client.wiremock.arespons",{"_index":2640,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.client.wiremock.get",{"_index":2641,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.client.wiremock.urlequalto",{"_index":2642,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.core.wiremockconfigur",{"_index":2635,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.wiremockserv",{"_index":2634,"title":{},"name":{},"text":{"43":{}},"component":{}}],["combin",{"_index":801,"title":{},"name":{},"text":{"8":{},"14":{},"27":{},"28":{},"41":{}},"component":{}}],["come",{"_index":1132,"title":{},"name":{},"text":{"14":{},"55":{},"59":{},"64":{}},"component":{}}],["comexampleextension1",{"_index":662,"title":{},"name":{},"text":{"6":{}},"component":{}}],["comexampleothervalu",{"_index":663,"title":{},"name":{},"text":{"6":{}},"component":{}}],["comma",{"_index":1949,"title":{},"name":{},"text":{"27":{},"41":{}},"component":{}}],["command",{"_index":1092,"title":{"74-3":{}},"name":{},"text":{"13":{},"17":{},"21":{},"22":{},"24":{},"25":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"38":{},"41":{},"42":{},"46":{},"47":{},"49":{},"50":{},"54":{},"55":{},"57":{},"58":{},"59":{},"64":{},"69":{},"74":{}},"component":{}}],["commerc",{"_index":2670,"title":{},"name":{},"text":{"45":{}},"component":{}}],["commit",{"_index":3352,"title":{},"name":{},"text":{"68":{},"72":{}},"component":{}}],["common",{"_index":413,"title":{},"name":{},"text":{"5":{},"16":{},"27":{},"32":{}},"component":{}}],["commonli",{"_index":411,"title":{},"name":{},"text":{"5":{},"16":{},"30":{}},"component":{}}],["commun",{"_index":1116,"title":{"14-11":{}},"name":{},"text":{"14":{},"15":{},"16":{},"27":{},"28":{},"31":{},"45":{},"46":{},"49":{},"50":{},"60":{}},"component":{}}],["compani",{"_index":3052,"title":{},"name":{},"text":{"53":{}},"component":{}}],["compat",{"_index":2897,"title":{},"name":{},"text":{"47":{}},"component":{}}],["compens",{"_index":317,"title":{"4-9":{}},"name":{},"text":{"4":{},"45":{}},"component":{}}],["compensatedbi",{"_index":2691,"title":{},"name":{},"text":{"45":{}},"component":{}}],["compensatedby\":\"cancelpay",{"_index":2686,"title":{},"name":{},"text":{"45":{}},"component":{}}],["compil",{"_index":1607,"title":{},"name":{},"text":{"21":{},"35":{}},"component":{}}],["complet",{"_index":856,"title":{"74-6":{}},"name":{},"text":{"9":{},"12":{},"13":{},"21":{},"25":{},"26":{},"30":{},"32":{},"37":{},"38":{},"41":{},"42":{},"45":{},"54":{},"66":{},"67":{},"71":{},"73":{},"74":{}},"component":{}}],["completiontyp",{"_index":1087,"title":{},"name":{},"text":{"13":{}},"component":{}}],["complex",{"_index":379,"title":{},"name":{},"text":{"4":{},"10":{},"23":{},"41":{},"46":{},"49":{}},"component":{}}],["compliant",{"_index":336,"title":{},"name":{},"text":{"4":{},"19":{}},"component":{}}],["compon",{"_index":793,"title":{},"name":{},"text":{"7":{},"17":{},"23":{},"26":{},"32":{},"33":{},"36":{},"42":{}},"component":{}}],["components/messages/messag",{"_index":1556,"title":{},"name":{},"text":{"20":{}},"component":{}}],["components/schemas/exchangerateresult",{"_index":2183,"title":{},"name":{},"text":{"33":{}},"component":{}}],["components/schemas/multiplicationoper",{"_index":2404,"title":{},"name":{},"text":{"36":{}},"component":{}}],["compos",{"_index":973,"title":{},"name":{},"text":{"11":{},"16":{},"32":{},"33":{},"35":{},"36":{},"41":{}},"component":{}}],["composit",{"_index":298,"title":{},"name":{},"text":{"3":{},"27":{}},"component":{}}],["comprehend",{"_index":3341,"title":{},"name":{},"text":{"67":{}},"component":{}}],["comprehens",{"_index":2970,"title":{},"name":{},"text":{"49":{}},"component":{}}],["comput",{"_index":324,"title":{},"name":{},"text":{"4":{},"6":{},"34":{},"36":{},"68":{}},"component":{}}],["computeprofit",{"_index":2296,"title":{},"name":{},"text":{"34":{}},"component":{}}],["concata",{"_index":1076,"title":{},"name":{},"text":{"13":{}},"component":{}}],["concatb",{"_index":1078,"title":{},"name":{},"text":{"13":{}},"component":{}}],["concatc",{"_index":1080,"title":{},"name":{},"text":{"13":{}},"component":{}}],["concaten",{"_index":1067,"title":{},"name":{},"text":{"13":{}},"component":{}}],["concept",{"_index":3,"title":{"14":{},"1-2":{}},"name":{"14":{},"27":{}},"text":{"1":{},"15":{},"16":{},"35":{},"49":{}},"component":{}}],["concern",{"_index":3043,"title":{},"name":{},"text":{"53":{}},"component":{}}],["concurr",{"_index":2015,"title":{},"name":{},"text":{"30":{}},"component":{}}],["condit",{"_index":231,"title":{"54":{},"10-1":{},"54-2":{},"54-3":{}},"name":{"54":{}},"text":{"2":{},"3":{},"6":{},"9":{},"10":{},"16":{},"24":{},"33":{},"34":{},"47":{},"49":{},"54":{},"57":{},"58":{},"59":{}},"component":{}}],["conf/flyway.conf",{"_index":2026,"title":{},"name":{},"text":{"31":{}},"component":{}}],["config",{"_index":2020,"title":{"31-2":{}},"name":{},"text":{"34":{},"43":{},"47":{},"52":{},"57":{},"58":{}},"component":{}}],["config.nam",{"_index":2300,"title":{},"name":{},"text":{"34":{}},"component":{}}],["config:\\n",{"_index":2821,"title":{},"name":{},"text":{"47":{}},"component":{}}],["configmap",{"_index":2279,"title":{"53-1":{}},"name":{},"text":{"34":{},"47":{},"48":{},"49":{},"53":{}},"component":{}}],["configsourc",{"_index":2278,"title":{},"name":{},"text":{"34":{}},"component":{}}],["configur",{"_index":84,"title":{"5":{},"34":{},"48":{},"6-17":{},"14-11":{},"16-7":{},"17-1":{},"17-2":{},"18-1":{},"27-7":{},"30-1":{},"31-6":{},"33-2":{},"34-3":{},"36-5":{},"37-2":{},"47-1":{},"47-8":{},"48-1":{},"49-11":{},"60-2":{}},"name":{"5":{},"34":{},"48":{}},"text":{"1":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"25":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"43":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"67":{},"68":{},"71":{},"74":{}},"component":{}}],["configuration.html#nw",{"_index":2915,"title":{},"name":{},"text":{"47":{}},"component":{}}],["configurewiremockserv",{"_index":2645,"title":{},"name":{},"text":{"43":{}},"component":{}}],["confirm",{"_index":2673,"title":{},"name":{},"text":{"45":{},"67":{}},"component":{}}],["conflict",{"_index":2619,"title":{},"name":{},"text":{"43":{},"68":{}},"component":{}}],["conform",{"_index":1383,"title":{},"name":{},"text":{"17":{}},"component":{}}],["connect",{"_index":440,"title":{"69-2":{}},"name":{},"text":{"5":{},"9":{},"14":{},"15":{},"16":{},"17":{},"26":{},"27":{},"30":{},"32":{},"33":{},"42":{},"69":{},"71":{},"74":{}},"component":{}}],["connect/auth",{"_index":2186,"title":{},"name":{},"text":{"33":{}},"component":{}}],["connect/token",{"_index":2187,"title":{},"name":{},"text":{"33":{}},"component":{}}],["connector",{"_index":1261,"title":{},"name":{},"text":{"14":{},"16":{},"18":{}},"component":{}}],["consequ",{"_index":1025,"title":{},"name":{},"text":{"12":{}},"component":{}}],["consid",{"_index":524,"title":{},"name":{},"text":{"6":{},"8":{},"9":{},"11":{},"27":{},"30":{},"45":{},"60":{},"71":{}},"component":{}}],["consider",{"_index":1975,"title":{},"name":{},"text":{"28":{}},"component":{}}],["consist",{"_index":685,"title":{},"name":{},"text":{"6":{},"8":{},"10":{},"17":{},"19":{},"35":{},"36":{},"37":{},"45":{},"66":{}},"component":{}}],["consol",{"_index":1011,"title":{},"name":{},"text":{"11":{},"16":{},"23":{},"45":{},"50":{},"58":{},"64":{},"69":{},"71":{},"74":{}},"component":{}}],["constant",{"_index":318,"title":{"4-10":{}},"name":{},"text":{"4":{},"10":{}},"component":{}}],["constraint",{"_index":601,"title":{},"name":{},"text":{"6":{},"47":{},"49":{}},"component":{}}],["construct",{"_index":972,"title":{},"name":{},"text":{"11":{}},"component":{}}],["consult",{"_index":3064,"title":{},"name":{},"text":{"54":{}},"component":{}}],["consum",{"_index":33,"title":{"17":{},"18":{},"20-1":{},"25-3":{},"25-4":{}},"name":{"17":{},"18":{}},"text":{"1":{},"4":{},"6":{},"8":{},"9":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"25":{},"26":{},"28":{},"37":{},"42":{},"60":{},"66":{}},"component":{}}],["consumeev",{"_index":1558,"title":{},"name":{},"text":{"20":{}},"component":{}}],["consumerwait",{"_index":1557,"title":{},"name":{},"text":{"20":{}},"component":{}}],["consumes(mediatype.application_json",{"_index":2434,"title":{},"name":{},"text":{"37":{}},"component":{}}],["consumewait",{"_index":1554,"title":{},"name":{},"text":{"20":{}},"component":{}}],["consumpt",{"_index":1135,"title":{"25-2":{}},"name":{},"text":{"14":{},"17":{}},"component":{}}],["contact",{"_index":2251,"title":{},"name":{},"text":{"33":{}},"component":{}}],["contain",{"_index":192,"title":{"47-7":{}},"name":{},"text":{"2":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"45":{},"46":{},"47":{},"49":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{}},"component":{}}],["container_nam",{"_index":1284,"title":{},"name":{},"text":{"16":{}},"component":{}}],["containerconcurr",{"_index":3190,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["containercr",{"_index":3001,"title":{},"name":{},"text":{"50":{}},"component":{}}],["containerport",{"_index":1318,"title":{},"name":{},"text":{"16":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["contains($l[1",{"_index":1814,"title":{},"name":{},"text":{"26":{}},"component":{}}],["containsal",{"_index":1159,"title":{},"name":{},"text":{"14":{}},"component":{}}],["containsani",{"_index":1160,"title":{},"name":{},"text":{"14":{}},"component":{}}],["content",{"_index":568,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"13":{},"14":{},"17":{},"21":{},"24":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"42":{},"45":{},"47":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{},"68":{},"69":{},"71":{}},"component":{}}],["contenttype(contenttype.json",{"_index":1989,"title":{},"name":{},"text":{"29":{},"38":{}},"component":{}}],["contenttype(mediatype.application_json",{"_index":2588,"title":{},"name":{},"text":{"42":{}},"component":{}}],["context",{"_index":512,"title":{"6-6":{}},"name":{},"text":{"6":{},"19":{},"21":{},"23":{},"27":{},"38":{},"47":{},"53":{},"57":{},"58":{},"59":{},"60":{},"67":{},"73":{},"74":{}},"component":{}}],["context/namespac",{"_index":3084,"title":{},"name":{},"text":{"55":{}},"component":{}}],["contextattributenam",{"_index":1492,"title":{},"name":{},"text":{"19":{}},"component":{}}],["contextattributevalu",{"_index":1493,"title":{},"name":{},"text":{"19":{}},"component":{}}],["contextu",{"_index":581,"title":{},"name":{},"text":{"6":{}},"component":{}}],["continu",{"_index":725,"title":{},"name":{},"text":{"6":{},"9":{},"19":{},"27":{},"45":{},"46":{}},"component":{}}],["contrast",{"_index":2428,"title":{},"name":{},"text":{"37":{}},"component":{}}],["control",{"_index":163,"title":{},"name":{},"text":{"1":{},"6":{},"9":{},"12":{},"27":{},"30":{},"37":{},"45":{},"47":{},"50":{},"53":{},"57":{},"72":{}},"component":{}}],["convent",{"_index":1885,"title":{},"name":{},"text":{"27":{},"32":{}},"component":{}}],["converg",{"_index":280,"title":{},"name":{},"text":{"3":{}},"component":{}}],["convers",{"_index":931,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["convert",{"_index":576,"title":{},"name":{},"text":{"6":{},"10":{},"27":{}},"component":{}}],["cooki",{"_index":2090,"title":{},"name":{},"text":{"32":{}},"component":{}}],["coordin",{"_index":630,"title":{},"name":{},"text":{"6":{},"10":{},"24":{},"45":{}},"component":{}}],["copi",{"_index":545,"title":{},"name":{},"text":{"6":{},"10":{},"21":{},"26":{},"35":{},"36":{},"41":{},"47":{},"49":{},"68":{},"69":{},"71":{}},"component":{}}],["core",{"_index":2,"title":{"14":{},"1-2":{}},"name":{"14":{},"27":{}},"text":{"1":{},"14":{},"15":{},"16":{},"36":{},"45":{},"50":{},"71":{}},"component":{}}],["core/custom",{"_index":1759,"title":{},"name":{},"text":{"24":{}},"component":{}}],["corner",{"_index":3354,"title":{},"name":{},"text":{"68":{},"69":{},"71":{},"72":{}},"component":{}}],["correct",{"_index":775,"title":{},"name":{},"text":{"7":{},"17":{},"31":{},"49":{},"50":{},"57":{},"58":{},"59":{},"69":{}},"component":{}}],["correctli",{"_index":1407,"title":{},"name":{},"text":{"17":{},"42":{},"49":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["correl",{"_index":117,"title":{"19":{},"19-1":{}},"name":{"19":{}},"text":{"1":{},"4":{},"8":{},"12":{},"17":{},"18":{},"19":{},"37":{}},"component":{}}],["correspond",{"_index":578,"title":{},"name":{},"text":{"6":{},"27":{},"28":{},"35":{},"46":{},"70":{}},"component":{}}],["count",{"_index":1852,"title":{},"name":{},"text":{"26":{}},"component":{}}],["counter",{"_index":1790,"title":{},"name":{},"text":{"25":{}},"component":{}}],["countri",{"_index":2609,"title":{},"name":{},"text":{"42":{}},"component":{}}],["countryserviceworkflowtest",{"_index":2655,"title":{},"name":{},"text":{"43":{}},"component":{}}],["cover",{"_index":396,"title":{},"name":{},"text":{"4":{},"8":{},"35":{},"37":{}},"component":{}}],["cpu",{"_index":2866,"title":{},"name":{},"text":{"47":{},"50":{},"52":{}},"component":{}}],["cr",{"_index":3007,"title":{},"name":{},"text":{"50":{},"51":{},"53":{}},"component":{}}],["creat",{"_index":57,"title":{"21":{},"13-1":{},"21-2":{},"23-2":{},"41-2":{},"47-6":{},"47-7":{},"53-1":{},"53-2":{},"63-1":{},"63-2":{},"70-1":{},"71-1":{},"71-2":{}},"name":{"21":{}},"text":{"1":{},"2":{},"4":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"17":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["create_table.sql",{"_index":2043,"title":{},"name":{},"text":{"31":{}},"component":{}}],["creation",{"_index":1302,"title":{},"name":{},"text":{"16":{},"30":{},"32":{},"41":{}},"component":{}}],["credenti",{"_index":2061,"title":{},"name":{},"text":{"32":{},"33":{},"47":{},"57":{},"74":{}},"component":{}}],["credit",{"_index":1391,"title":{},"name":{},"text":{"17":{},"45":{}},"component":{}}],["crucial",{"_index":1047,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["ctrl+c",{"_index":1711,"title":{},"name":{},"text":{"21":{},"33":{}},"component":{}}],["ctrl+shift+m",{"_index":3425,"title":{},"name":{},"text":{"74":{}},"component":{}}],["ctrl+shift+p",{"_index":3404,"title":{},"name":{},"text":{"74":{}},"component":{}}],["ctrl+space",{"_index":3420,"title":{},"name":{},"text":{"74":{}},"component":{}}],["cue",{"_index":2944,"title":{},"name":{},"text":{"49":{}},"component":{}}],["curl",{"_index":1095,"title":{},"name":{},"text":{"13":{},"17":{},"21":{},"24":{},"33":{},"34":{},"35":{},"45":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["currenc",{"_index":2125,"title":{},"name":{},"text":{"33":{}},"component":{}}],["currency_exchange_workflow",{"_index":2139,"title":{},"name":{},"text":{"33":{}},"component":{}}],["currencyfrom",{"_index":2152,"title":{},"name":{},"text":{"33":{}},"component":{}}],["currencyto",{"_index":2153,"title":{},"name":{},"text":{"33":{}},"component":{}}],["current",{"_index":27,"title":{},"name":{},"text":{"1":{},"6":{},"9":{},"15":{},"19":{},"21":{},"27":{},"30":{},"34":{},"41":{},"47":{},"49":{},"50":{},"51":{},"53":{},"54":{},"57":{},"58":{},"59":{},"60":{},"66":{},"67":{},"68":{},"69":{}},"component":{}}],["currentpric",{"_index":2298,"title":{},"name":{},"text":{"34":{}},"component":{}}],["custom",{"_index":58,"title":{"6":{},"6-1":{},"6-2":{},"6-7":{},"6-11":{},"6-19":{},"6-20":{},"47-3":{},"63-1":{},"63-2":{},"63-3":{}},"name":{"6":{},"24":{},"63":{}},"text":{"1":{},"2":{},"4":{},"6":{},"11":{},"16":{},"17":{},"23":{},"24":{},"26":{},"33":{},"34":{},"45":{},"47":{},"49":{},"50":{},"51":{},"53":{},"60":{},"63":{},"65":{},"72":{}},"component":{}}],["custom`workitemhandl",{"_index":767,"title":{},"name":{},"text":{"6":{}},"component":{}}],["customer_nam",{"_index":641,"title":{},"name":{},"text":{"6":{}},"component":{}}],["cycl",{"_index":297,"title":{"42-3":{}},"name":{},"text":{"3":{},"49":{}},"component":{}}],["d",{"_index":1098,"title":{},"name":{},"text":{"13":{},"17":{},"24":{},"31":{},"33":{},"34":{},"35":{},"47":{},"55":{},"57":{},"58":{},"59":{},"69":{}},"component":{}}],["d297",{"_index":1743,"title":{},"name":{},"text":{"23":{}},"component":{}}],["d43a56b6",{"_index":1152,"title":{},"name":{},"text":{"14":{}},"component":{}}],["d6899b5639aa",{"_index":2712,"title":{},"name":{},"text":{"45":{}},"component":{}}],["d70386b9a375",{"_index":1156,"title":{},"name":{},"text":{"14":{}},"component":{}}],["da82",{"_index":1196,"title":{},"name":{},"text":{"14":{}},"component":{}}],["daef",{"_index":1528,"title":{},"name":{},"text":{"19":{}},"component":{}}],["daemon",{"_index":3101,"title":{},"name":{},"text":{"55":{},"58":{}},"component":{}}],["damag",{"_index":3364,"title":{},"name":{},"text":{"69":{}},"component":{}}],["dash.yaml|yml",{"_index":3380,"title":{},"name":{},"text":{"70":{}},"component":{}}],["dashboard",{"_index":107,"title":{"26":{},"63":{},"26-1":{},"26-2":{},"26-3":{},"63-1":{},"63-2":{},"63-3":{},"63-4":{},"63-5":{}},"name":{"26":{},"63":{}},"text":{"1":{},"25":{},"26":{},"58":{},"62":{},"63":{},"64":{}},"component":{}}],["dashbuild",{"_index":1761,"title":{},"name":{},"text":{"25":{},"26":{},"63":{},"67":{},"70":{}},"component":{}}],["dashoard",{"_index":1842,"title":{},"name":{},"text":{"26":{}},"component":{}}],["data",{"_index":16,"title":{"14":{},"15":{},"16":{},"26":{},"71":{},"1-12":{},"4-4":{},"10-3":{},"14-1":{},"14-2":{},"14-3":{},"14-4":{},"14-5":{},"14-6":{},"14-7":{},"14-9":{},"14-10":{},"14-11":{},"14-14":{},"15-2":{},"16-1":{},"16-2":{},"16-3":{},"16-4":{},"16-5":{},"16-6":{},"16-7":{},"26-3":{},"65-4":{},"71-1":{},"71-2":{}},"name":{"14":{},"15":{},"16":{},"26":{}},"text":{"1":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"19":{},"21":{},"23":{},"26":{},"27":{},"29":{},"30":{},"33":{},"36":{},"45":{},"46":{},"47":{},"48":{},"49":{},"53":{},"65":{},"66":{},"67":{},"70":{},"71":{}},"component":{}}],["data.processinst",{"_index":1849,"title":{},"name":{},"text":{"26":{}},"component":{}}],["data:\"{\\\"expirationtim",{"_index":1228,"title":{},"name":{},"text":{"14":{}},"component":{}}],["databas",{"_index":145,"title":{"31":{}},"name":{},"text":{"1":{},"5":{},"14":{},"15":{},"16":{},"21":{},"27":{},"29":{},"30":{},"31":{},"46":{}},"component":{}}],["database:5432/postgres?currentschema=job",{"_index":1878,"title":{},"name":{},"text":{"27":{}},"component":{}}],["database:5432/postgres?search_path=job",{"_index":1881,"title":{},"name":{},"text":{"27":{}},"component":{}}],["database_nam",{"_index":2042,"title":{},"name":{},"text":{"31":{}},"component":{}}],["datacondit",{"_index":879,"title":{},"name":{},"text":{"9":{},"10":{},"33":{},"47":{},"49":{}},"component":{}}],["datacontenttyp",{"_index":665,"title":{},"name":{},"text":{"6":{},"17":{}},"component":{}}],["dataindex",{"_index":1245,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["datainputschema",{"_index":771,"title":{"7-3":{}},"name":{},"text":{"7":{},"33":{},"53":{}},"component":{}}],["dataonli",{"_index":810,"title":{},"name":{},"text":{"8":{}},"component":{}}],["dataset",{"_index":1808,"title":{},"name":{},"text":{"26":{}},"component":{}}],["datasetlookup",{"_index":1839,"title":{},"name":{},"text":{"26":{}},"component":{}}],["datasourc",{"_index":1345,"title":{},"name":{},"text":{"16":{},"27":{},"30":{}},"component":{}}],["date",{"_index":1167,"title":{},"name":{},"text":{"14":{},"27":{}},"component":{}}],["day",{"_index":839,"title":{},"name":{},"text":{"9":{}},"component":{}}],["ddebug=fals",{"_index":2304,"title":{},"name":{},"text":{"34":{}},"component":{}}],["ddl",{"_index":1903,"title":{},"name":{},"text":{"27":{},"31":{}},"component":{}}],["debug",{"_index":490,"title":{},"name":{"39":{}},"text":{"5":{},"6":{},"23":{},"27":{},"60":{}},"component":{}}],["decid",{"_index":669,"title":{},"name":{},"text":{"6":{},"49":{}},"component":{}}],["decim",{"_index":612,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["decis",{"_index":106,"title":{},"name":{},"text":{"1":{},"9":{},"18":{},"70":{}},"component":{}}],["declar",{"_index":533,"title":{},"name":{},"text":{"6":{},"12":{},"18":{},"19":{},"20":{},"23":{},"24":{},"29":{},"33":{},"35":{},"37":{},"42":{},"45":{}},"component":{}}],["dedic",{"_index":1117,"title":{},"name":{},"text":{"14":{},"18":{}},"component":{}}],["deeper",{"_index":173,"title":{},"name":{},"text":{"1":{}},"component":{}}],["default",{"_index":376,"title":{"35-1":{}},"name":{},"text":{"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"21":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"41":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"65":{},"66":{},"68":{},"74":{}},"component":{}}],["default_builder_resource_nam",{"_index":2826,"title":{},"name":{},"text":{"47":{}},"component":{}}],["default_workflow_extens",{"_index":2827,"title":{},"name":{},"text":{"47":{}},"component":{}}],["defaultcondit",{"_index":883,"title":{},"name":{},"text":{"9":{},"33":{},"46":{},"47":{},"49":{}},"component":{}}],["deffer",{"_index":218,"title":{},"name":{},"text":{"2":{}},"component":{}}],["defin",{"_index":94,"title":{"23-3":{},"34-4":{},"34-8":{},"36-3":{}},"name":{"7":{}},"text":{"1":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"25":{},"26":{},"27":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"43":{},"45":{},"46":{},"47":{},"48":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"74":{}},"component":{}}],["definit",{"_index":91,"title":{"7":{},"65":{},"6-3":{},"6-8":{},"6-12":{},"11-1":{},"17-5":{},"36-1":{},"49-12":{},"65-1":{}},"name":{"65":{}},"text":{"1":{},"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"27":{},"28":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{},"53":{},"60":{},"64":{},"65":{},"66":{},"74":{}},"component":{}}],["defint",{"_index":813,"title":{},"name":{},"text":{"8":{}},"component":{}}],["deleg",{"_index":1379,"title":{},"name":{},"text":{"17":{},"32":{}},"component":{}}],["delet",{"_index":1932,"title":{},"name":{},"text":{"27":{},"49":{},"50":{},"53":{}},"component":{}}],["deliv",{"_index":1936,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["deliveri",{"_index":1858,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["demo\",node_name=\"2\",process_id=\"foreach\",version=\"1.0.0",{"_index":1797,"title":{},"name":{},"text":{"25":{}},"component":{}}],["demo\",node_name=\"2\",process_id=\"jsongreet\",version=\"1.0.0",{"_index":1793,"title":{},"name":{},"text":{"25":{}},"component":{}}],["demo\",node_name=\"2\",process_id=\"yamlgreet\",version=\"1.0.0",{"_index":1795,"title":{},"name":{},"text":{"25":{}},"component":{}}],["deniedvisa",{"_index":888,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["denot",{"_index":726,"title":{},"name":{},"text":{"6":{}},"component":{}}],["depend",{"_index":53,"title":{},"name":{},"text":{"1":{},"2":{},"7":{},"9":{},"10":{},"13":{},"14":{},"15":{},"17":{},"18":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"38":{},"41":{},"42":{},"43":{},"46":{},"54":{},"55":{},"57":{},"58":{},"59":{},"64":{},"65":{},"66":{},"67":{},"69":{}},"component":{}}],["depends_on",{"_index":1287,"title":{},"name":{},"text":{"16":{}},"component":{}}],["deploy",{"_index":68,"title":{"47":{},"57":{},"58":{},"59":{},"67":{},"9-6":{},"16-1":{},"16-3":{},"16-4":{},"16-5":{},"41-5":{},"47-11":{},"49-2":{},"57-2":{},"57-3":{},"57-4":{},"57-5":{},"58-2":{},"58-3":{},"58-4":{},"58-5":{},"59-2":{},"59-4":{},"59-5":{},"59-6":{},"67-1":{},"67-2":{}},"name":{"47":{},"57":{},"58":{},"59":{},"67":{}},"text":{"1":{},"2":{},"3":{},"6":{},"9":{},"14":{},"15":{},"16":{},"17":{},"21":{},"24":{},"27":{},"28":{},"30":{},"36":{},"41":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"69":{},"70":{}},"component":{}}],["deployment/sonataflow",{"_index":3006,"title":{},"name":{},"text":{"50":{}},"component":{}}],["deploymentconfig",{"_index":3293,"title":{},"name":{},"text":{"60":{}},"component":{}}],["deploymentconfigs.v1.apps.openshift.io",{"_index":3276,"title":{},"name":{},"text":{"60":{}},"component":{}}],["deploymentfailur",{"_index":3060,"title":{},"name":{},"text":{"54":{}},"component":{}}],["deploymentisunavail",{"_index":3061,"title":{},"name":{},"text":{"54":{}},"component":{}}],["deployments.v1.app",{"_index":3275,"title":{},"name":{},"text":{"60":{}},"component":{}}],["deployments/\\ncopi",{"_index":2852,"title":{},"name":{},"text":{"47":{}},"component":{}}],["deployments/app/\\ncopi",{"_index":2854,"title":{},"name":{},"text":{"47":{}},"component":{}}],["deployments/lib/\\ncopi",{"_index":2850,"title":{},"name":{},"text":{"47":{}},"component":{}}],["deployments/quarkus/\\n\\nexpos",{"_index":2855,"title":{},"name":{},"text":{"47":{}},"component":{}}],["desc",{"_index":1172,"title":{},"name":{},"text":{"14":{}},"component":{}}],["descend",{"_index":572,"title":{},"name":{},"text":{"6":{},"14":{},"26":{}},"component":{}}],["describ",{"_index":322,"title":{},"name":{},"text":{"4":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"17":{},"18":{},"19":{},"20":{},"21":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"68":{},"71":{},"72":{},"74":{}},"component":{}}],["descript",{"_index":334,"title":{},"name":{},"text":{"4":{},"5":{},"9":{},"11":{},"13":{},"16":{},"17":{},"20":{},"21":{},"23":{},"27":{},"32":{},"33":{},"36":{},"54":{},"71":{},"74":{}},"component":{}}],["descriptor",{"_index":113,"title":{},"name":{},"text":{"1":{},"53":{},"57":{},"58":{},"59":{}},"component":{}}],["desd",{"_index":920,"title":{},"name":{},"text":{"10":{},"35":{},"47":{},"49":{}},"component":{}}],["design",{"_index":798,"title":{},"name":{},"text":{"8":{},"10":{},"15":{},"28":{},"45":{},"46":{},"53":{},"73":{}},"component":{}}],["desir",{"_index":990,"title":{},"name":{},"text":{"11":{},"18":{},"47":{},"49":{},"57":{},"58":{},"59":{}},"component":{}}],["desktop",{"_index":2881,"title":{},"name":{},"text":{"47":{}},"component":{}}],["detail",{"_index":162,"title":{"31-8":{},"62-1":{},"63-5":{},"66-1":{}},"name":{},"text":{"1":{},"9":{},"14":{},"15":{},"16":{},"24":{},"30":{},"42":{},"45":{},"57":{},"62":{},"63":{},"65":{},"66":{}},"component":{}}],["detect",{"_index":1648,"title":{},"name":{},"text":{"21":{}},"component":{}}],["determin",{"_index":978,"title":{},"name":{},"text":{"11":{},"27":{},"33":{},"46":{},"60":{}},"component":{}}],["dev",{"_index":128,"title":{"62":{},"63":{},"64":{},"65":{},"66":{},"9-7":{},"46-5":{},"64-1":{}},"name":{"62":{},"63":{},"64":{},"65":{},"66":{}},"text":{"1":{},"2":{},"5":{},"9":{},"14":{},"15":{},"16":{},"21":{},"22":{},"29":{},"34":{},"46":{},"48":{},"49":{},"51":{},"53":{},"62":{},"63":{},"64":{},"65":{},"66":{}},"component":{}}],["dev.loc",{"_index":2542,"title":{},"name":{},"text":{"41":{},"58":{}},"component":{}}],["dev.local/kogito/serverless",{"_index":3229,"title":{},"name":{},"text":{"58":{}},"component":{}}],["dev.local/mi",{"_index":2541,"title":{},"name":{},"text":{"41":{}},"component":{}}],["dev.local/serverless",{"_index":1609,"title":{},"name":{},"text":{"21":{}},"component":{}}],["dev.quarkus.rest",{"_index":2302,"title":{},"name":{},"text":{"34":{}},"component":{}}],["develop",{"_index":290,"title":{"49":{},"14-4":{},"16-6":{},"34-6":{},"49-1":{},"54-2":{}},"name":{"40":{},"49":{}},"text":{"3":{},"5":{},"6":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"20":{},"21":{},"22":{},"26":{},"28":{},"34":{},"35":{},"37":{},"41":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"62":{},"64":{},"67":{},"69":{},"70":{}},"component":{}}],["devmod",{"_index":262,"title":{},"name":{},"text":{"2":{},"49":{},"51":{},"52":{}},"component":{}}],["devmode:\\n",{"_index":2959,"title":{},"name":{},"text":{"49":{}},"component":{}}],["devmodebaseimag",{"_index":3035,"title":{},"name":{},"text":{"52":{}},"component":{}}],["devprofil",{"_index":2798,"title":{},"name":{},"text":{"46":{}},"component":{}}],["devui",{"_index":3316,"title":{},"name":{},"text":{"64":{},"65":{},"66":{}},"component":{}}],["dexec.mainclass=\"org.kie.kogito.examples.sw.greeting.greeterservic",{"_index":2355,"title":{},"name":{},"text":{"35":{}},"component":{}}],["dextensions=\"kogito",{"_index":1352,"title":{},"name":{},"text":{"17":{},"21":{},"28":{}},"component":{}}],["dextensions=\"quarku",{"_index":1411,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{}}],["dfd85a369987",{"_index":3112,"title":{},"name":{},"text":{"55":{}},"component":{}}],["diagram",{"_index":1193,"title":{},"name":{},"text":{"14":{},"27":{},"33":{},"46":{},"64":{},"66":{},"73":{},"74":{}},"component":{}}],["dialog",{"_index":3401,"title":{},"name":{},"text":{"74":{}},"component":{}}],["differ",{"_index":169,"title":{"34-3":{},"34-4":{},"34-8":{}},"name":{},"text":{"1":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"18":{},"25":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"36":{},"37":{},"43":{},"46":{},"47":{},"53":{},"57":{},"58":{},"59":{},"60":{},"65":{},"70":{}},"component":{}}],["difficult",{"_index":2283,"title":{},"name":{},"text":{"34":{}},"component":{}}],["digest",{"_index":1917,"title":{},"name":{},"text":{"27":{}},"component":{}}],["dimens",{"_index":1075,"title":{},"name":{},"text":{"13":{}},"component":{}}],["direct",{"_index":592,"title":{},"name":{},"text":{"6":{},"14":{},"15":{},"23":{},"28":{}},"component":{}}],["direct:logroutereplacehead",{"_index":1725,"title":{},"name":{},"text":{"23":{}},"component":{}}],["directli",{"_index":48,"title":{},"name":{},"text":{"1":{},"3":{},"15":{},"16":{},"21":{},"25":{},"26":{},"30":{},"47":{},"49":{},"60":{},"72":{}},"component":{}}],["directori",{"_index":210,"title":{},"name":{},"text":{"2":{},"7":{},"13":{},"17":{},"21":{},"23":{},"28":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"46":{},"53":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["disabl",{"_index":430,"title":{},"name":{},"text":{"5":{},"15":{},"16":{},"25":{},"27":{},"33":{},"60":{},"67":{}},"component":{}}],["discard",{"_index":944,"title":{},"name":{},"text":{"10":{},"12":{}},"component":{}}],["discov",{"_index":1748,"title":{},"name":{},"text":{"24":{},"49":{},"60":{}},"component":{}}],["discoveri",{"_index":312,"title":{"60":{},"60-2":{},"60-3":{},"60-4":{},"60-5":{},"60-6":{}},"name":{"60":{}},"text":{"3":{},"24":{},"33":{},"36":{},"38":{},"60":{}},"component":{}}],["dispatch",{"_index":1371,"title":{},"name":{},"text":{"17":{}},"component":{}}],["display",{"_index":159,"title":{"26":{}},"name":{},"text":{"1":{},"6":{},"10":{},"11":{},"12":{},"21":{},"26":{},"37":{},"62":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["dist",{"_index":3392,"title":{},"name":{},"text":{"72":{}},"component":{}}],["distinct",{"_index":2842,"title":{},"name":{},"text":{"47":{}},"component":{}}],["distribut",{"_index":1125,"title":{"16-2":{}},"name":{},"text":{"14":{},"15":{},"16":{},"21":{},"45":{},"47":{},"49":{}},"component":{}}],["divid",{"_index":716,"title":{},"name":{},"text":{"6":{}},"component":{}}],["dividend",{"_index":761,"title":{},"name":{},"text":{"6":{}},"component":{}}],["dividend\":\".dividend",{"_index":764,"title":{},"name":{},"text":{"6":{}},"component":{}}],["divis",{"_index":723,"title":{},"name":{},"text":{"6":{}},"component":{}}],["divisor",{"_index":762,"title":{},"name":{},"text":{"6":{}},"component":{}}],["divisor\":\".divisor",{"_index":765,"title":{},"name":{},"text":{"6":{}},"component":{}}],["djava.util.logging.manager=org.jboss.logmanager.logmanager\\\"\\nenv",{"_index":2860,"title":{},"name":{},"text":{"47":{}},"component":{}}],["dmy.sys.prop1=value1",{"_index":1883,"title":{},"name":{},"text":{"27":{}},"component":{}}],["dmy.sys.prop2=value2",{"_index":1884,"title":{},"name":{},"text":{"27":{}},"component":{}}],["dn",{"_index":3146,"title":{},"name":{},"text":{"57":{}},"component":{}}],["dnocod",{"_index":1598,"title":{},"name":{},"text":{"21":{}},"component":{}}],["do",{"_index":2960,"title":{},"name":{},"text":{"49":{},"53":{}},"component":{}}],["docker",{"_index":1283,"title":{},"name":{},"text":{"16":{},"21":{},"27":{},"29":{},"30":{},"33":{},"41":{},"47":{},"50":{},"55":{},"58":{},"59":{}},"component":{}}],["dockerfil",{"_index":2804,"title":{"47-3":{}},"name":{},"text":{"47":{}},"component":{}}],["document",{"_index":321,"title":{"7-4":{}},"name":{},"text":{"4":{},"8":{},"10":{},"11":{},"12":{},"13":{},"15":{},"17":{},"18":{},"20":{},"21":{},"24":{},"25":{},"26":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"67":{},"68":{},"71":{},"72":{},"74":{}},"component":{}}],["doe",{"_index":2447,"title":{},"name":{},"text":{"38":{},"49":{}},"component":{}}],["doesn’t",{"_index":198,"title":{},"name":{},"text":{"2":{},"21":{},"38":{},"47":{},"54":{}},"component":{}}],["domain",{"_index":1489,"title":{},"name":{},"text":{"19":{},"33":{},"45":{},"53":{},"57":{},"58":{}},"component":{}}],["domainmap",{"_index":3133,"title":{},"name":{},"text":{"57":{}},"component":{}}],["domest",{"_index":2607,"title":{},"name":{},"text":{"42":{}},"component":{}}],["domesticship",{"_index":2608,"title":{},"name":{},"text":{"42":{}},"component":{}}],["don",{"_index":909,"title":{},"name":{},"text":{"9":{}},"component":{}}],["done",{"_index":1069,"title":{},"name":{},"text":{"13":{},"14":{},"53":{}},"component":{}}],["don’t",{"_index":633,"title":{},"name":{},"text":{"6":{},"27":{},"47":{}},"component":{}}],["dooper",{"_index":2401,"title":{},"name":{},"text":{"36":{}},"component":{}}],["doubl",{"_index":2171,"title":{},"name":{},"text":{"33":{},"47":{}},"component":{}}],["down",{"_index":1964,"title":{},"name":{},"text":{"27":{},"66":{},"71":{}},"component":{}}],["download",{"_index":1802,"title":{},"name":{},"text":{"26":{},"31":{},"35":{},"41":{},"69":{},"72":{},"74":{}},"component":{}}],["dprojectartifactid=serverless",{"_index":1595,"title":{},"name":{},"text":{"21":{}},"component":{}}],["dprojectgroupid=org.acm",{"_index":1594,"title":{},"name":{},"text":{"21":{}},"component":{}}],["dquarkus.contain",{"_index":3079,"title":{},"name":{},"text":{"55":{},"58":{}},"component":{}}],["dquarkus.http.host=0.0.0.0",{"_index":2859,"title":{},"name":{},"text":{"47":{}},"component":{}}],["dquarkus.native.contain",{"_index":3099,"title":{},"name":{},"text":{"55":{}},"component":{}}],["dquarkus.native.remot",{"_index":3102,"title":{},"name":{},"text":{"55":{},"58":{}},"component":{}}],["drag",{"_index":3336,"title":{},"name":{},"text":{"66":{}},"component":{}}],["drawer",{"_index":3387,"title":{},"name":{},"text":{"71":{}},"component":{}}],["driven",{"_index":31,"title":{},"name":{},"text":{"1":{},"19":{},"42":{}},"component":{}}],["driver",{"_index":2996,"title":{},"name":{},"text":{"50":{}},"component":{}}],["drop",{"_index":1474,"title":{},"name":{},"text":{"18":{},"66":{},"71":{}},"component":{}}],["dskiptest",{"_index":3208,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["dsl",{"_index":1717,"title":{"23-3":{}},"name":{},"text":{"23":{}},"component":{}}],["due",{"_index":2524,"title":{},"name":{},"text":{"41":{},"43":{},"57":{},"58":{},"69":{}},"component":{}}],["duplic",{"_index":212,"title":{},"name":{},"text":{"2":{}},"component":{}}],["durat",{"_index":832,"title":{},"name":{},"text":{"9":{},"25":{},"26":{},"46":{}},"component":{}}],["dure",{"_index":690,"title":{"17-4":{}},"name":{},"text":{"6":{},"11":{},"16":{},"17":{},"23":{},"26":{},"30":{},"32":{},"36":{},"41":{},"42":{},"45":{},"46":{},"49":{},"50":{},"53":{},"60":{}},"component":{}}],["dynam",{"_index":2433,"title":{},"name":{},"text":{"37":{},"43":{},"73":{},"74":{}},"component":{}}],["e",{"_index":1045,"title":{},"name":{},"text":{"12":{},"27":{},"38":{},"41":{},"43":{},"45":{}},"component":{}}],["e.g",{"_index":2882,"title":{},"name":{},"text":{"47":{}},"component":{}}],["e0e7708d",{"_index":2232,"title":{},"name":{},"text":{"33":{}},"component":{}}],["e293aa293bf",{"_index":1670,"title":{},"name":{},"text":{"21":{}},"component":{}}],["e6ccbe9c94c3",{"_index":2785,"title":{},"name":{},"text":{"45":{}},"component":{}}],["eaab",{"_index":1181,"title":{},"name":{},"text":{"14":{}},"component":{}}],["each",{"_index":330,"title":{},"name":{},"text":{"4":{},"10":{},"12":{},"13":{},"15":{},"16":{},"17":{},"18":{},"19":{},"25":{},"27":{},"28":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"43":{},"45":{},"46":{},"47":{},"59":{},"62":{},"66":{},"70":{},"74":{}},"component":{}}],["earli",{"_index":2975,"title":{},"name":{},"text":{"50":{}},"component":{}}],["earlier",{"_index":693,"title":{},"name":{},"text":{"6":{},"59":{}},"component":{}}],["easi",{"_index":3340,"title":{},"name":{},"text":{"67":{}},"component":{}}],["easiest",{"_index":2935,"title":{},"name":{},"text":{"49":{}},"component":{}}],["easili",{"_index":3239,"title":{},"name":{},"text":{"59":{}},"component":{}}],["ecosystem",{"_index":50,"title":{},"name":{},"text":{"1":{},"22":{},"28":{}},"component":{}}],["edit",{"_index":111,"title":{"48-1":{}},"name":{},"text":{"1":{},"21":{},"22":{},"26":{},"31":{},"47":{},"48":{},"49":{},"53":{},"68":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["editor",{"_index":99,"title":{"72":{},"73":{},"74":{},"72-1":{},"72-2":{},"73-1":{},"74-1":{},"74-2":{},"74-4":{}},"name":{"72":{},"73":{},"74":{}},"text":{"1":{},"21":{},"22":{},"23":{},"47":{},"48":{},"49":{},"65":{},"67":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["efafe4dfb3e7",{"_index":1746,"title":{},"name":{},"text":{"23":{}},"component":{}}],["elaps",{"_index":2502,"title":{},"name":{},"text":{"38":{}},"component":{}}],["elect",{"_index":1856,"title":{"27-16":{}},"name":{},"text":{"27":{}},"component":{}}],["element",{"_index":1491,"title":{},"name":{},"text":{"19":{}},"component":{}}],["else’",{"_index":3361,"title":{},"name":{},"text":{"68":{}},"component":{}}],["email",{"_index":1506,"title":{},"name":{},"text":{"19":{},"47":{}},"component":{}}],["emb",{"_index":929,"title":{},"name":{},"text":{"10":{}},"component":{}}],["embed",{"_index":906,"title":{"14-14":{},"28-4":{},"46-6":{}},"name":{},"text":{"9":{},"10":{},"11":{},"15":{},"21":{},"27":{},"28":{},"46":{}},"component":{}}],["emitt",{"_index":1467,"title":{},"name":{},"text":{"18":{}},"component":{}}],["empti",{"_index":451,"title":{},"name":{},"text":{"5":{},"12":{},"35":{},"60":{}},"component":{}}],["emul",{"_index":3226,"title":{},"name":{},"text":{"58":{}},"component":{}}],["enabl",{"_index":429,"title":{"23-1":{},"25-1":{},"60-5":{},"74-5":{}},"name":{},"text":{"5":{},"6":{},"10":{},"11":{},"14":{},"15":{},"16":{},"17":{},"18":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"38":{},"41":{},"42":{},"47":{},"48":{},"51":{},"58":{},"60":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"72":{},"74":{}},"component":{}}],["enabled=fals",{"_index":2108,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["encapsul",{"_index":1441,"title":{},"name":{},"text":{"18":{}},"component":{}}],["encod",{"_index":1618,"title":{},"name":{},"text":{"21":{}},"component":{}}],["encount",{"_index":977,"title":{},"name":{},"text":{"11":{},"69":{}},"component":{}}],["end",{"_index":643,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"21":{},"23":{},"26":{},"29":{},"33":{},"34":{},"36":{},"37":{},"42":{},"47":{},"49":{},"53":{},"66":{}},"component":{}}],["endpoint",{"_index":227,"title":{"34":{},"14-7":{},"17-3":{},"34-3":{},"36-5":{}},"name":{"34":{}},"text":{"2":{},"5":{},"6":{},"7":{},"10":{},"13":{},"14":{},"15":{},"16":{},"17":{},"20":{},"21":{},"23":{},"25":{},"26":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"42":{},"43":{},"54":{},"60":{},"65":{},"66":{}},"component":{}}],["endsuccess",{"_index":2160,"title":{},"name":{},"text":{"33":{}},"component":{}}],["endwitherror",{"_index":2158,"title":{},"name":{},"text":{"33":{}},"component":{}}],["enforc",{"_index":2526,"title":{},"name":{},"text":{"41":{}},"component":{}}],["engin",{"_index":859,"title":{},"name":{},"text":{"9":{},"11":{},"19":{},"23":{},"30":{},"36":{},"45":{},"48":{},"60":{}},"component":{}}],["english",{"_index":915,"title":{},"name":{},"text":{"10":{},"35":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["enough",{"_index":1357,"title":{},"name":{},"text":{"17":{}},"component":{}}],["ensur",{"_index":670,"title":{},"name":{},"text":{"6":{},"9":{},"17":{},"25":{},"27":{},"29":{},"31":{},"41":{},"45":{},"49":{},"57":{},"58":{},"59":{},"67":{},"68":{}},"component":{}}],["enter",{"_index":1612,"title":{},"name":{},"text":{"21":{},"35":{},"41":{},"54":{},"57":{},"58":{},"59":{},"63":{},"64":{},"65":{},"66":{},"69":{},"71":{},"74":{}},"component":{}}],["enterpris",{"_index":1654,"title":{},"name":{},"text":{"21":{},"69":{}},"component":{}}],["entir",{"_index":562,"title":{},"name":{},"text":{"6":{},"10":{},"19":{},"45":{},"47":{},"67":{}},"component":{}}],["entiti",{"_index":1443,"title":{},"name":{},"text":{"18":{},"27":{}},"component":{}}],["entri",{"_index":2824,"title":{},"name":{},"text":{"47":{},"53":{}},"component":{}}],["entrypoint",{"_index":1128,"title":{},"name":{},"text":{"14":{}},"component":{}}],["enum",{"_index":2326,"title":{"35-1":{}},"name":{},"text":{"74":{}},"component":{}}],["enumer",{"_index":468,"title":{},"name":{},"text":{"5":{},"35":{}},"component":{}}],["env",{"_index":1320,"title":{},"name":{},"text":{"16":{},"27":{},"58":{}},"component":{}}],["environ",{"_index":902,"title":{"27-4":{},"27-5":{},"34-3":{},"34-4":{},"34-8":{}},"name":{},"text":{"9":{},"16":{},"17":{},"22":{},"27":{},"28":{},"32":{},"33":{},"34":{},"36":{},"37":{},"41":{},"43":{},"46":{},"49":{},"50":{},"58":{},"59":{},"67":{}},"component":{}}],["ephemer",{"_index":1343,"title":{"27-10":{}},"name":{},"text":{"16":{},"27":{}},"component":{}}],["ephemeral:1.43.0.fin",{"_index":503,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["equal",{"_index":940,"title":{},"name":{},"text":{"10":{},"14":{}},"component":{}}],["equals_to",{"_index":1835,"title":{},"name":{},"text":{"26":{}},"component":{}}],["equalto(\"hello",{"_index":2470,"title":{},"name":{},"text":{"38":{}},"component":{}}],["error",{"_index":82,"title":{"11":{},"4-6":{},"11-1":{},"11-2":{}},"name":{"11":{}},"text":{"1":{},"4":{},"6":{},"7":{},"11":{},"18":{},"26":{},"33":{},"38":{},"45":{},"49":{},"58":{},"59":{},"65":{},"66":{},"69":{},"73":{},"74":{}},"component":{}}],["error.messag",{"_index":1850,"title":{},"name":{},"text":{"26":{}},"component":{}}],["errorref",{"_index":873,"title":{},"name":{},"text":{"9":{},"11":{},"33":{},"46":{}},"component":{}}],["errorref\":\"process",{"_index":2687,"title":{},"name":{},"text":{"45":{}},"component":{}}],["establish",{"_index":1938,"title":{},"name":{},"text":{"27":{},"31":{}},"component":{}}],["etc",{"_index":613,"title":{},"name":{},"text":{"6":{},"9":{},"23":{},"27":{},"28":{},"33":{},"53":{}},"component":{}}],["eur",{"_index":2220,"title":{},"name":{},"text":{"33":{}},"component":{}}],["eval",{"_index":3212,"title":{},"name":{},"text":{"58":{}},"component":{}}],["evalu",{"_index":361,"title":{},"name":{},"text":{"4":{},"10":{},"19":{},"23":{},"33":{},"42":{},"51":{}},"component":{}}],["even",{"_index":47,"title":{},"name":{},"text":{"1":{},"11":{},"18":{},"30":{},"49":{}},"component":{}}],["event",{"_index":7,"title":{"8":{},"17":{},"18":{},"19":{},"1-5":{},"4-3":{},"8-1":{},"9-2":{},"9-5":{},"14-12":{},"14-13":{},"16-4":{},"16-5":{},"17-1":{},"17-2":{},"17-3":{},"17-5":{},"19-1":{},"20-1":{},"20-2":{},"27-12":{},"27-13":{},"27-14":{},"28-1":{},"65-7":{},"66-2":{}},"name":{"8":{},"17":{},"18":{},"19":{}},"text":{"1":{},"2":{},"3":{},"4":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"27":{},"28":{},"30":{},"37":{},"41":{},"42":{},"45":{},"46":{},"51":{},"57":{},"58":{},"59":{},"65":{},"66":{}},"component":{}}],["event1",{"_index":892,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["event2",{"_index":898,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["event_state_timeout",{"_index":2789,"title":{"46-3":{}},"name":{},"text":{"46":{}},"component":{}}],["eventbodi",{"_index":1033,"title":{},"name":{},"text":{"12":{}},"component":{}}],["eventbody.put(\"dummyeventvari",{"_index":1036,"title":{},"name":{},"text":{"12":{}},"component":{}}],["eventbody.put(\"result",{"_index":1035,"title":{},"name":{},"text":{"12":{}},"component":{}}],["eventcondit",{"_index":880,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["eventdata",{"_index":2793,"title":{},"name":{},"text":{"46":{}},"component":{}}],["eventdatafilt",{"_index":893,"title":{},"name":{},"text":{"9":{},"10":{},"12":{},"46":{}},"component":{}}],["eventing.knative.dev/v1",{"_index":1247,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"27":{}},"component":{}}],["eventing:1.43.0.fin",{"_index":3178,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["eventinput",{"_index":2436,"title":{},"name":{},"text":{"37":{}},"component":{}}],["eventinput.getprocessinstanceid",{"_index":2440,"title":{},"name":{},"text":{"37":{}},"component":{}}],["eventref",{"_index":805,"title":{},"name":{},"text":{"8":{},"9":{},"10":{},"12":{},"19":{},"37":{},"46":{}},"component":{}}],["eventrefdefinit",{"_index":369,"title":{},"name":{},"text":{"4":{}},"component":{}}],["events.connector=quarku",{"_index":1257,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events.connector=smallry",{"_index":1262,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events.method=post",{"_index":1259,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events.top",{"_index":1959,"title":{},"name":{},"text":{"27":{}},"component":{}}],["events.topic=kogito",{"_index":1263,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events.url=${k_sink",{"_index":1258,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["events.url=${k_sink:http://localhost:8280/v2/jobs/ev",{"_index":1970,"title":{},"name":{},"text":{"28":{}},"component":{}}],["events.value.serializer=org.apache.kafka.common.serialization.stringseri",{"_index":1264,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events_support",{"_index":1946,"title":{},"name":{},"text":{"27":{}},"component":{}}],["eventtimeout",{"_index":863,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["eventu",{"_index":279,"title":{},"name":{},"text":{"3":{},"27":{},"37":{}},"component":{}}],["everyth",{"_index":2893,"title":{},"name":{},"text":{"47":{},"49":{},"50":{},"59":{}},"component":{}}],["everytim",{"_index":492,"title":{},"name":{},"text":{"5":{}},"component":{}}],["evolv",{"_index":272,"title":{},"name":{},"text":{"3":{},"49":{}},"component":{}}],["exactli",{"_index":840,"title":{},"name":{},"text":{"9":{}},"component":{}}],["exampl",{"_index":176,"title":{"45":{},"6-20":{},"7-3":{},"8-1":{},"10-1":{},"10-2":{},"10-3":{},"11-2":{},"12-1":{},"16-4":{},"16-5":{},"17-5":{},"18-2":{},"19-1":{},"23-4":{},"25-5":{},"32-2":{},"32-3":{},"32-4":{},"32-5":{},"32-6":{},"33-1":{},"33-2":{},"33-3":{},"37-1":{},"42-3":{},"45-2":{},"45-3":{},"46-9":{},"55-1":{},"60-4":{}},"name":{"46":{}},"text":{"1":{},"2":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"65":{},"66":{},"67":{},"71":{},"74":{}},"component":{}}],["example.json",{"_index":2055,"title":{},"name":{},"text":{"32":{}},"component":{}}],["examples.git",{"_index":2006,"title":{},"name":{},"text":{"30":{},"33":{},"46":{},"55":{}},"component":{}}],["examples/serverless",{"_index":1572,"title":{},"name":{},"text":{"21":{},"33":{},"38":{},"46":{},"55":{}},"component":{}}],["exceed",{"_index":891,"title":{},"name":{},"text":{"9":{}},"component":{}}],["except",{"_index":367,"title":{},"name":{},"text":{"4":{},"7":{},"11":{},"45":{},"60":{}},"component":{}}],["excerpt",{"_index":2410,"title":{},"name":{},"text":{"36":{},"47":{}},"component":{}}],["exchang",{"_index":2126,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchanged",{"_index":2154,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchanger",{"_index":2148,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchangerateresult",{"_index":2184,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchangeworkflowhelp",{"_index":2164,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchangeworkflowhelper.java",{"_index":2165,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exclus",{"_index":346,"title":{},"name":{},"text":{"4":{},"8":{},"9":{},"32":{},"46":{}},"component":{}}],["exec:java",{"_index":2354,"title":{},"name":{},"text":{"35":{}},"component":{}}],["execut",{"_index":9,"title":{"1-7":{},"27-3":{},"31-4":{},"42-3":{},"46-4":{},"62-1":{}},"name":{"39":{}},"text":{"1":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"19":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"38":{},"41":{},"42":{},"45":{},"46":{},"47":{},"48":{},"49":{},"55":{},"57":{},"58":{},"59":{},"62":{},"64":{},"66":{},"69":{},"74":{}},"component":{}}],["executeworkitem",{"_index":708,"title":{},"name":{},"text":{"6":{}},"component":{}}],["executioncount",{"_index":1149,"title":{},"name":{},"text":{"14":{}},"component":{}}],["executionstatu",{"_index":2156,"title":{},"name":{},"text":{"33":{}},"component":{}}],["executionstatusmessag",{"_index":2161,"title":{},"name":{},"text":{"33":{}},"component":{}}],["executor",{"_index":201,"title":{},"name":{},"text":{"2":{},"45":{}},"component":{}}],["exemplifi",{"_index":589,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["exhaust",{"_index":981,"title":{},"name":{},"text":{"11":{}},"component":{}}],["exist",{"_index":147,"title":{},"name":{},"text":{"1":{},"5":{},"8":{},"10":{},"14":{},"16":{},"18":{},"31":{},"34":{},"35":{},"43":{},"46":{},"60":{},"68":{},"74":{}},"component":{}}],["exitmessag",{"_index":895,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["expect",{"_index":561,"title":{},"name":{},"text":{"6":{},"7":{},"11":{},"12":{},"14":{},"16":{},"23":{},"29":{},"35":{},"38":{},"42":{},"55":{},"60":{}},"component":{}}],["experi",{"_index":289,"title":{},"name":{},"text":{"3":{},"22":{},"73":{},"74":{}},"component":{}}],["expir",{"_index":882,"title":{},"name":{},"text":{"9":{},"29":{},"42":{}},"component":{}}],["explain",{"_index":1460,"title":{},"name":{},"text":{"18":{},"49":{},"59":{}},"component":{}}],["explicitli",{"_index":1134,"title":{},"name":{},"text":{"14":{},"18":{}},"component":{}}],["explor",{"_index":174,"title":{},"name":{},"text":{"1":{},"16":{},"66":{}},"component":{}}],["export",{"_index":2322,"title":{},"name":{},"text":{"34":{}},"component":{}}],["expos",{"_index":156,"title":{"25":{},"27-4":{}},"name":{"25":{}},"text":{"1":{},"14":{},"15":{},"25":{},"27":{},"33":{},"36":{},"38":{},"47":{},"49":{},"59":{},"60":{},"66":{}},"component":{}}],["exposur",{"_index":1139,"title":{},"name":{},"text":{"14":{}},"component":{}}],["express",{"_index":80,"title":{"10":{},"4-5":{},"10-1":{},"10-2":{},"10-3":{}},"name":{"10":{}},"text":{"1":{},"4":{},"6":{},"7":{},"10":{},"11":{},"13":{},"23":{},"26":{},"29":{},"33":{},"36":{},"42":{},"60":{}},"component":{}}],["expressionlang",{"_index":384,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{}}],["ext",{"_index":3179,"title":{},"name":{},"text":{"57":{},"58":{},"59":{},"64":{}},"component":{}}],["extend",{"_index":516,"title":{"69-1":{}},"name":{},"text":{"6":{},"30":{},"46":{},"69":{}},"component":{}}],["extens",{"_index":103,"title":{"15":{},"28":{},"62":{},"63":{},"64":{},"65":{},"66":{},"72":{},"74":{},"14-5":{},"14-14":{},"15-2":{},"64-1":{},"72-1":{},"72-2":{},"74-1":{},"74-3":{},"74-5":{}},"name":{"15":{},"28":{},"72":{},"74":{}},"text":{"1":{},"6":{},"7":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"24":{},"25":{},"27":{},"28":{},"29":{},"32":{},"34":{},"36":{},"37":{},"38":{},"41":{},"55":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"72":{},"73":{},"74":{}},"component":{}}],["extension.kogito.swf.silentlygeneratesvg",{"_index":3405,"title":{},"name":{},"text":{"74":{}},"component":{}}],["extensionid",{"_index":789,"title":{},"name":{},"text":{"7":{},"34":{}},"component":{}}],["extern",{"_index":137,"title":{},"name":{},"text":{"1":{},"2":{},"6":{},"9":{},"11":{},"12":{},"15":{},"19":{},"27":{},"37":{},"47":{},"54":{},"57":{},"67":{},"74":{}},"component":{}}],["extra",{"_index":1141,"title":{},"name":{},"text":{"14":{}},"component":{}}],["extract",{"_index":740,"title":{},"name":{},"text":{"6":{},"19":{},"26":{},"29":{},"31":{},"36":{},"72":{}},"component":{}}],["f",{"_index":1424,"title":{},"name":{},"text":{"17":{},"25":{},"28":{},"31":{},"47":{},"49":{},"50":{},"57":{},"58":{},"59":{}},"component":{}}],["f0f9",{"_index":1100,"title":{},"name":{},"text":{"13":{}},"component":{}}],["f5c5d5d784ad",{"_index":2452,"title":{},"name":{},"text":{"38":{}},"component":{}}],["f779929c9937\",\"workflowdata\":{\"symbol\":\"kgto\",\"currentprice\":59.36,\"profit\":\"19",{"_index":2320,"title":{},"name":{},"text":{"34":{}},"component":{}}],["fabric8",{"_index":3306,"title":{},"name":{},"text":{"60":{}},"component":{}}],["facilit",{"_index":1408,"title":{},"name":{},"text":{"17":{},"27":{},"28":{},"29":{},"46":{}},"component":{}}],["fact",{"_index":1023,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["fahrenheit",{"_index":932,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["fail",{"_index":454,"title":{},"name":{},"text":{"5":{},"7":{},"18":{},"27":{},"33":{},"38":{},"43":{},"45":{},"49":{},"54":{}},"component":{}}],["failonvalidationerror",{"_index":777,"title":{},"name":{},"text":{"7":{}},"component":{}}],["failsaf",{"_index":1981,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["failservic",{"_index":2749,"title":{},"name":{},"text":{"45":{}},"component":{}}],["failservice\":\".failservic",{"_index":2683,"title":{},"name":{},"text":{"45":{}},"component":{}}],["failservice\":\"shippingservic",{"_index":2757,"title":{},"name":{},"text":{"45":{}},"component":{}}],["failur",{"_index":203,"title":{"49-9":{}},"name":{},"text":{"2":{},"11":{},"38":{},"45":{},"49":{},"51":{},"54":{},"65":{},"66":{}},"component":{}}],["failurethreshold",{"_index":3193,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["fake",{"_index":2285,"title":{},"name":{},"text":{"34":{}},"component":{}}],["fals",{"_index":348,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"14":{},"15":{},"16":{},"17":{},"27":{},"30":{},"31":{},"36":{},"48":{},"49":{},"54":{},"55":{},"58":{}},"component":{}}],["familiar",{"_index":400,"title":{"22":{}},"name":{"22":{}},"text":{"4":{},"21":{},"36":{},"43":{},"55":{}},"component":{}}],["fast",{"_index":2557,"title":{},"name":{},"text":{"41":{}},"component":{}}],["faster",{"_index":3107,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{}},"component":{}}],["fat",{"_index":2316,"title":{},"name":{},"text":{"34":{}},"component":{}}],["fb11",{"_index":1153,"title":{},"name":{},"text":{"14":{}},"component":{}}],["fe5a3577efdd\",\"workflowdata\":{\"name\":\"john\",\"language\":\"english\",\"greeting\":\"hello",{"_index":2925,"title":{},"name":{},"text":{"47":{}},"component":{}}],["featur",{"_index":184,"title":{"2":{},"49-10":{},"73-1":{},"74-2":{}},"name":{},"text":{"3":{},"4":{},"6":{},"14":{},"15":{},"16":{},"21":{},"23":{},"24":{},"27":{},"30":{},"31":{},"36":{},"38":{},"47":{},"49":{},"57":{},"58":{},"59":{},"60":{},"71":{},"73":{},"74":{}},"component":{}}],["feel",{"_index":404,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["fetch",{"_index":2871,"title":{},"name":{},"text":{"47":{},"49":{},"58":{},"65":{},"66":{},"67":{},"71":{},"74":{}},"component":{}}],["few",{"_index":307,"title":{},"name":{},"text":{"3":{},"17":{},"47":{},"48":{},"49":{},"55":{},"67":{}},"component":{}}],["field",{"_index":683,"title":{},"name":{},"text":{"6":{},"10":{},"12":{},"14":{},"21":{},"26":{},"30":{},"35":{},"47":{},"49":{},"50":{},"63":{},"65":{},"66":{},"68":{},"69":{},"71":{}},"component":{}}],["fieldpath",{"_index":1324,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["fieldref",{"_index":1323,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["figur",{"_index":924,"title":{},"name":{},"text":{"10":{},"11":{},"12":{},"19":{},"21":{},"26":{},"27":{},"33":{},"37":{},"42":{},"45":{},"46":{},"49":{},"57":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["file",{"_index":209,"title":{"53":{},"53-1":{},"63-2":{},"74-5":{}},"name":{"53":{}},"text":{"2":{},"3":{},"5":{},"6":{},"7":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"25":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{},"63":{},"64":{},"66":{},"67":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["file.yaml#myfunction1",{"_index":2386,"title":{},"name":{},"text":{"36":{}},"component":{}}],["file=$(pwd",{"_index":3044,"title":{},"name":{},"text":{"53":{}},"component":{}}],["file=.dockerconfigjson=${home}/.docker/config.json",{"_index":2878,"title":{},"name":{},"text":{"47":{}},"component":{}}],["file_nam",{"_index":458,"title":{},"name":{},"text":{"5":{}},"component":{}}],["file_name(default",{"_index":2253,"title":{},"name":{},"text":{"34":{}},"component":{}}],["filenam",{"_index":2063,"title":{},"name":{},"text":{"32":{},"74":{}},"component":{}}],["filename.svg",{"_index":3407,"title":{},"name":{},"text":{"74":{}},"component":{}}],["filesystem",{"_index":420,"title":{},"name":{},"text":{"5":{}},"component":{}}],["fill",{"_index":2353,"title":{"65-4":{}},"name":{},"text":{"35":{},"65":{},"66":{}},"component":{}}],["fillworkitemhandl",{"_index":696,"title":{},"name":{},"text":{"6":{}},"component":{}}],["fillworkitemhandler(workflow",{"_index":732,"title":{},"name":{},"text":{"6":{}},"component":{}}],["filter",{"_index":381,"title":{"10-3":{},"63-4":{},"65-1":{}},"name":{},"text":{"4":{},"6":{},"10":{},"14":{},"16":{},"17":{},"21":{},"26":{},"27":{},"32":{},"33":{},"46":{},"50":{},"60":{},"63":{},"65":{},"66":{}},"component":{}}],["final",{"_index":593,"title":{},"name":{},"text":{"6":{},"10":{},"14":{},"16":{},"27":{},"28":{},"33":{},"36":{},"42":{},"43":{},"46":{},"47":{}},"component":{}}],["finalizewitherror",{"_index":875,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["financi",{"_index":2128,"title":{},"name":{},"text":{"33":{}},"component":{}}],["find",{"_index":401,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["fine",{"_index":2872,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["finish",{"_index":850,"title":{},"name":{},"text":{"9":{},"10":{},"11":{},"12":{},"21":{},"30":{},"35":{},"37":{},"38":{},"43":{},"47":{},"54":{}},"component":{}}],["fire",{"_index":1176,"title":{},"name":{},"text":{"14":{},"37":{}},"component":{}}],["fire&wait",{"_index":825,"title":{},"name":{},"text":{"8":{},"12":{}},"component":{}}],["first",{"_index":72,"title":{"67-1":{},"67-2":{}},"name":{"21":{}},"text":{"1":{},"4":{},"8":{},"10":{},"11":{},"12":{},"13":{},"15":{},"18":{},"21":{},"23":{},"25":{},"26":{},"29":{},"30":{},"33":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"46":{},"47":{},"49":{},"50":{},"54":{},"55":{},"58":{},"59":{},"60":{},"67":{}},"component":{}}],["fit",{"_index":1967,"title":{},"name":{},"text":{"28":{}},"component":{}}],["fix",{"_index":182,"title":{"2-2":{}},"name":{},"text":{"5":{},"16":{},"41":{},"43":{},"47":{},"49":{},"69":{}},"component":{}}],["flag",{"_index":780,"title":{},"name":{},"text":{"7":{},"9":{},"11":{},"21":{},"41":{},"46":{},"55":{},"69":{}},"component":{}}],["flasgger",{"_index":2393,"title":{},"name":{},"text":{"36":{}},"component":{}}],["flexibl",{"_index":1124,"title":{},"name":{},"text":{"14":{}},"component":{}}],["fli",{"_index":2888,"title":{},"name":{},"text":{"47":{}},"component":{}}],["float",{"_index":611,"title":{},"name":{},"text":{"6":{},"23":{},"36":{}},"component":{}}],["flow",{"_index":267,"title":{},"name":{},"text":{"2":{},"7":{},"9":{},"17":{},"20":{},"21":{},"32":{},"33":{},"37":{},"42":{},"45":{},"46":{},"47":{},"49":{},"53":{}},"component":{}}],["flyway",{"_index":150,"title":{"31-2":{},"31-3":{},"31-7":{},"31-8":{}},"name":{"31":{}},"text":{"1":{},"14":{},"16":{},"27":{},"30":{},"31":{}},"component":{}}],["flyway.loc",{"_index":2037,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway.locations=classpath:com.mycomp.migration,database/migrations,filesystem:/sql",{"_index":2038,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway.password=bar",{"_index":2029,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway.url=jdbc:postgresql://localhost:5432/foobardb",{"_index":2027,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway.user=foo",{"_index":2028,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway_schema_histori",{"_index":2024,"title":{},"name":{},"text":{"31":{}},"component":{}}],["focus",{"_index":1021,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["folder",{"_index":2035,"title":{},"name":{},"text":{"31":{},"36":{},"41":{},"67":{},"68":{},"72":{},"74":{}},"component":{}}],["follow",{"_index":69,"title":{},"name":{},"text":{"1":{},"2":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["footprint",{"_index":3098,"title":{},"name":{},"text":{"55":{}},"component":{}}],["foreach",{"_index":358,"title":{},"name":{},"text":{"4":{},"5":{},"25":{}},"component":{}}],["forget",{"_index":667,"title":{},"name":{},"text":{"6":{}},"component":{}}],["form",{"_index":399,"title":{},"name":{},"text":{"4":{},"9":{},"18":{},"65":{},"66":{}},"component":{}}],["format",{"_index":787,"title":{},"name":{},"text":{"7":{},"9":{},"14":{},"17":{},"18":{},"19":{},"23":{},"26":{},"30":{},"32":{},"33":{},"36":{},"48":{},"65":{},"66":{},"74":{}},"component":{}}],["former",{"_index":1022,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["found",{"_index":320,"title":{"4-13":{},"5-1":{},"6-22":{},"7-6":{},"8-3":{},"9-11":{},"10-5":{},"11-4":{},"12-3":{},"13-5":{},"14-16":{},"15-4":{},"16-9":{},"17-7":{},"18-5":{},"19-3":{},"20-3":{},"21-7":{},"22-1":{},"23-6":{},"24-3":{},"25-6":{},"26-5":{},"27-17":{},"28-5":{},"29-4":{},"30-3":{},"31-9":{},"32-8":{},"33-5":{},"34-10":{},"35-7":{},"36-7":{},"37-4":{},"38-2":{},"41-7":{},"42-5":{},"43-5":{},"45-5":{},"46-11":{},"47-14":{},"48-4":{},"49-14":{},"50-10":{},"53-4":{},"54-5":{},"55-6":{},"57-6":{},"58-6":{},"59-7":{},"60-8":{},"62-2":{},"63-6":{},"64-2":{},"65-8":{},"66-3":{},"67-3":{},"68-4":{},"69-3":{},"70-3":{},"71-3":{},"72-3":{},"73-3":{},"74-7":{}},"name":{},"text":{"6":{},"11":{},"16":{},"18":{},"27":{},"35":{},"36":{},"38":{},"59":{},"60":{}},"component":{}}],["foundat",{"_index":325,"title":{},"name":{},"text":{"4":{},"6":{}},"component":{}}],["four",{"_index":711,"title":{},"name":{},"text":{"6":{},"47":{}},"component":{}}],["fqcn",{"_index":539,"title":{},"name":{},"text":{"6":{},"11":{},"45":{}},"component":{}}],["framework",{"_index":56,"title":{},"name":{},"text":{"1":{},"33":{},"36":{},"42":{}},"component":{}}],["fraud",{"_index":2604,"title":{},"name":{},"text":{"42":{}},"component":{}}],["fraudevalu",{"_index":2605,"title":{},"name":{},"text":{"42":{}},"component":{}}],["free",{"_index":405,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["from/test",{"_index":2586,"title":{},"name":{},"text":{"42":{}},"component":{}}],["from=build",{"_index":2845,"title":{},"name":{},"text":{"47":{}},"component":{}}],["fulfil",{"_index":2668,"title":{},"name":{},"text":{"45":{}},"component":{}}],["full",{"_index":275,"title":{},"name":{},"text":{"3":{},"16":{},"27":{},"28":{},"29":{},"34":{},"41":{},"72":{}},"component":{}}],["full_uri",{"_index":459,"title":{},"name":{},"text":{"5":{},"34":{}},"component":{}}],["fulli",{"_index":335,"title":{},"name":{},"text":{"4":{},"6":{},"11":{},"45":{}},"component":{}}],["function",{"_index":96,"title":{"6":{},"4-2":{},"6-1":{},"6-2":{},"6-3":{},"6-4":{},"6-5":{},"6-6":{},"6-7":{},"6-8":{},"6-9":{},"6-10":{},"6-11":{},"6-12":{},"6-14":{},"6-19":{},"6-20":{},"10-2":{},"23-3":{},"36-1":{},"36-3":{},"36-4":{}},"name":{"6":{},"24":{}},"text":{"1":{},"2":{},"4":{},"6":{},"8":{},"10":{},"11":{},"13":{},"14":{},"15":{},"18":{},"20":{},"23":{},"24":{},"26":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"47":{},"49":{},"51":{},"53":{},"60":{},"67":{},"71":{},"74":{}},"component":{}}],["function($l",{"_index":1812,"title":{},"name":{},"text":{"26":{}},"component":{}}],["function_nam",{"_index":461,"title":{},"name":{},"text":{"5":{},"34":{}},"component":{}}],["functiondef",{"_index":735,"title":{},"name":{},"text":{"6":{}},"component":{}}],["functiondefinit",{"_index":734,"title":{},"name":{},"text":{"6":{}},"component":{}}],["functionref",{"_index":528,"title":{},"name":{},"text":{"6":{},"8":{},"9":{},"10":{},"11":{},"13":{},"20":{},"23":{},"24":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{},"53":{}},"component":{}}],["function’",{"_index":1751,"title":{},"name":{},"text":{"24":{}},"component":{}}],["further",{"_index":1340,"title":{},"name":{},"text":{"16":{},"33":{},"57":{},"58":{},"59":{}},"component":{}}],["futur",{"_index":354,"title":{},"name":{},"text":{"4":{},"19":{},"33":{},"36":{}},"component":{}}],["gateway",{"_index":1115,"title":{"14-9":{}},"name":{},"text":{"14":{}},"component":{}}],["gbp",{"_index":2239,"title":{},"name":{},"text":{"33":{}},"component":{}}],["gener",{"_index":249,"title":{"17-4":{},"54-1":{}},"name":{},"text":{"2":{},"3":{},"5":{},"6":{},"7":{},"9":{},"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"21":{},"25":{},"27":{},"28":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"41":{},"47":{},"48":{},"54":{},"57":{},"58":{},"59":{},"64":{},"65":{},"68":{},"73":{},"74":{}},"component":{}}],["generalerror",{"_index":794,"title":{},"name":{},"text":{"7":{}},"component":{}}],["generatecloudevent(ce.get().getextension(cloudeventextensionconstants.process_instance_id).tostr",{"_index":1058,"title":{},"name":{},"text":{"12":{}},"component":{}}],["generatecloudevent(str",{"_index":1032,"title":{},"name":{},"text":{"12":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].[auth_property_nam",{"_index":2062,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].api",{"_index":2087,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].bear",{"_index":2083,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].head",{"_index":2120,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].password",{"_index":2080,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].token",{"_index":2116,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].usernam",{"_index":2078,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.codegen.default.security.schem",{"_index":2059,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.codegen.default.security.scheme=http",{"_index":2060,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.codegen.spec.acme_financial_service_yml.bas",{"_index":2189,"title":{},"name":{},"text":{"33":{}},"component":{}}],["generator.security_example_json.auth.api_key_example.api",{"_index":2088,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.http_basic_example.password=my_passwd",{"_index":2081,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.http_basic_example.username=my_us",{"_index":2079,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.http_bearer_example.bear",{"_index":2084,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.oauth_example.head",{"_index":2122,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.oauth_example.token",{"_index":2118,"title":{},"name":{},"text":{"32":{}},"component":{}}],["get",{"_index":0,"title":{"22":{},"1-1":{}},"name":{"22":{}},"text":{"3":{},"4":{},"21":{},"25":{},"36":{},"43":{},"50":{},"55":{},"58":{}},"component":{}}],["get(\"/callback/{id",{"_index":1999,"title":{},"name":{},"text":{"29":{}},"component":{}}],["getexchanger",{"_index":2143,"title":{},"name":{},"text":{"33":{}},"component":{}}],["getexchangerateact",{"_index":2157,"title":{},"name":{},"text":{"33":{}},"component":{}}],["getpet",{"_index":2417,"title":{},"name":{},"text":{"36":{}},"component":{}}],["getpetbyid",{"_index":2413,"title":{},"name":{},"text":{"36":{}},"component":{}}],["getprofitfunct",{"_index":2291,"title":{},"name":{},"text":{"34":{}},"component":{}}],["getstockpric",{"_index":2287,"title":{},"name":{},"text":{"34":{}},"component":{}}],["getstockpricefunct",{"_index":2288,"title":{},"name":{},"text":{"34":{}},"component":{}}],["getstockprofit",{"_index":2297,"title":{},"name":{},"text":{"34":{}},"component":{}}],["getter",{"_index":2175,"title":{},"name":{},"text":{"33":{}},"component":{}}],["gist",{"_index":3356,"title":{},"name":{},"text":{"68":{}},"component":{}}],["git",{"_index":2004,"title":{},"name":{},"text":{"30":{},"33":{},"46":{},"55":{},"68":{}},"component":{}}],["git@github.com:kiegroup/kogito",{"_index":2005,"title":{},"name":{},"text":{"30":{}},"component":{}}],["github",{"_index":109,"title":{"68":{},"72":{},"68-1":{},"68-2":{},"68-3":{},"72-1":{},"72-2":{}},"name":{"68":{}},"text":{"1":{},"12":{},"13":{},"21":{},"22":{},"23":{},"30":{},"33":{},"34":{},"35":{},"37":{},"38":{},"45":{},"67":{},"68":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["give",{"_index":2943,"title":{},"name":{},"text":{"49":{}},"component":{}}],["given",{"_index":617,"title":{},"name":{},"text":{"6":{},"9":{},"17":{},"19":{},"27":{},"29":{},"34":{},"38":{},"42":{},"45":{},"46":{},"47":{},"49":{},"50":{},"52":{},"53":{},"57":{},"60":{}},"component":{}}],["global",{"_index":1482,"title":{"27-7":{}},"name":{},"text":{"18":{},"27":{},"32":{},"47":{},"60":{}},"component":{}}],["go",{"_index":172,"title":{},"name":{},"text":{"1":{},"26":{},"33":{},"36":{},"46":{},"53":{},"58":{},"64":{},"65":{},"66":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["goal",{"_index":1243,"title":{},"name":{},"text":{"14":{},"16":{},"27":{}},"component":{}}],["goe",{"_index":2938,"title":{},"name":{},"text":{"49":{}},"component":{}}],["good",{"_index":2173,"title":{},"name":{},"text":{"33":{}},"component":{}}],["googl",{"_index":3388,"title":{},"name":{},"text":{"72":{}},"component":{}}],["goto",{"_index":971,"title":{},"name":{},"text":{"11":{}},"component":{}}],["graalvm",{"_index":3072,"title":{},"name":{},"text":{"55":{}},"component":{}}],["gradl",{"_index":2019,"title":{},"name":{},"text":{"30":{},"57":{},"58":{},"59":{}},"component":{}}],["grafana",{"_index":1762,"title":{},"name":{},"text":{"25":{}},"component":{}}],["grant",{"_index":2131,"title":{},"name":{},"text":{"33":{},"69":{},"71":{}},"component":{}}],["graphic",{"_index":1853,"title":{},"name":{},"text":{"26":{}},"component":{}}],["graphiql",{"_index":1233,"title":{},"name":{},"text":{"14":{},"26":{}},"component":{}}],["graphql",{"_index":362,"title":{"14-7":{},"14-8":{},"14-10":{}},"name":{},"text":{"4":{},"14":{},"15":{},"16":{},"21":{},"26":{},"27":{}},"component":{}}],["greaterthan",{"_index":1162,"title":{},"name":{},"text":{"14":{}},"component":{}}],["greaterthanequ",{"_index":1163,"title":{},"name":{},"text":{"14":{}},"component":{}}],["greecepayload",{"_index":2621,"title":{},"name":{},"text":{"43":{}},"component":{}}],["greet",{"_index":627,"title":{},"name":{},"text":{"6":{},"10":{},"21":{},"24":{},"26":{},"35":{},"38":{},"47":{},"48":{},"49":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{}},"component":{}}],["greetact",{"_index":2905,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["greeter",{"_index":2330,"title":{},"name":{},"text":{"35":{}},"component":{}}],["greetfunct",{"_index":2903,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["greetinenglish",{"_index":922,"title":{},"name":{},"text":{"10":{},"47":{},"49":{}},"component":{}}],["greeting+.nam",{"_index":2906,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["greeting.proto",{"_index":2342,"title":{},"name":{},"text":{"35":{}},"component":{}}],["greeting.proto#greeter#sayhello",{"_index":2341,"title":{},"name":{},"text":{"35":{}},"component":{}}],["greeting_svc/greet",{"_index":2920,"title":{},"name":{},"text":{"47":{}},"component":{}}],["greeting_svc=$(minikub",{"_index":2912,"title":{},"name":{},"text":{"47":{}},"component":{}}],["greeting_svc=$(oc",{"_index":2917,"title":{},"name":{},"text":{"47":{}},"component":{}}],["greetinspanish",{"_index":923,"title":{},"name":{},"text":{"10":{},"47":{},"49":{}},"component":{}}],["greetperson",{"_index":2904,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["group",{"_index":803,"title":{},"name":{},"text":{"8":{},"17":{},"21":{},"26":{},"53":{},"60":{}},"component":{}}],["group/namespac",{"_index":3206,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["groupfunct",{"_index":1838,"title":{},"name":{},"text":{"26":{}},"component":{}}],["grpc",{"_index":114,"title":{"35":{},"35-3":{},"35-4":{},"35-5":{},"35-6":{}},"name":{"35":{}},"text":{"1":{},"5":{},"35":{},"45":{}},"component":{}}],["guarante",{"_index":1897,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{}}],["guid",{"_index":21,"title":{"1":{},"52":{}},"name":{"52":{}},"text":{"1":{},"2":{},"3":{},"9":{},"14":{},"16":{},"27":{},"28":{},"30":{},"32":{},"33":{},"34":{},"47":{},"49":{},"50":{},"57":{},"58":{},"59":{},"63":{}},"component":{}}],["gvk",{"_index":3266,"title":{},"name":{},"text":{"60":{}},"component":{}}],["h",{"_index":1097,"title":{},"name":{},"text":{"13":{},"17":{},"21":{},"24":{},"31":{},"33":{},"34":{},"35":{},"41":{},"45":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["halt",{"_index":865,"title":{},"name":{},"text":{"9":{}},"component":{}}],["hand",{"_index":2792,"title":{},"name":{},"text":{"46":{}},"component":{}}],["handl",{"_index":83,"title":{"11":{},"4-6":{},"11-2":{},"18-3":{}},"name":{"8":{},"11":{}},"text":{"1":{},"2":{},"3":{},"4":{},"6":{},"11":{},"12":{},"24":{},"27":{},"28":{},"30":{},"37":{},"42":{},"45":{},"47":{},"50":{},"58":{}},"component":{}}],["handlenovisadecis",{"_index":889,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["handler",{"_index":689,"title":{},"name":{},"text":{"6":{}},"component":{}}],["handling.sw.json",{"_index":2676,"title":{},"name":{},"text":{"45":{}},"component":{}}],["happen",{"_index":965,"title":{},"name":{},"text":{"11":{},"20":{},"49":{},"54":{}},"component":{}}],["hardcod",{"_index":2421,"title":{},"name":{},"text":{"36":{}},"component":{}}],["harden",{"_index":2814,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["hashmap",{"_index":1034,"title":{},"name":{},"text":{"12":{}},"component":{}}],["hat",{"_index":1582,"title":{"71":{},"71-1":{},"71-2":{}},"name":{},"text":{"21":{},"59":{},"67":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["hat’",{"_index":2895,"title":{},"name":{},"text":{"47":{}},"component":{}}],["have",{"_index":2543,"title":{},"name":{},"text":{"41":{},"47":{},"49":{},"53":{}},"component":{}}],["header",{"_index":598,"title":{},"name":{},"text":{"6":{},"8":{},"9":{},"10":{},"12":{},"17":{},"23":{},"32":{},"36":{},"37":{},"38":{},"42":{},"43":{},"65":{},"66":{}},"component":{}}],["header(\"accept",{"_index":2471,"title":{},"name":{},"text":{"38":{}},"component":{}}],["header(\"c",{"_index":2584,"title":{},"name":{},"text":{"42":{}},"component":{}}],["header.workflowid",{"_index":1728,"title":{},"name":{},"text":{"23":{}},"component":{}}],["health",{"_index":1366,"title":{},"name":{},"text":{"17":{},"21":{},"49":{}},"component":{}}],["healthi",{"_index":2961,"title":{},"name":{},"text":{"49":{},"54":{}},"component":{}}],["hello",{"_index":918,"title":{},"name":{},"text":{"10":{},"21":{},"32":{},"37":{},"38":{},"41":{},"47":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["hello.sw.json",{"_index":1605,"title":{},"name":{},"text":{"21":{}},"component":{}}],["hello_world",{"_index":1573,"title":{},"name":{},"text":{"21":{}},"component":{}}],["hellorepli",{"_index":2338,"title":{},"name":{},"text":{"35":{}},"component":{}}],["hellorequest",{"_index":2337,"title":{},"name":{},"text":{"35":{}},"component":{}}],["hellotest",{"_index":2453,"title":{},"name":{},"text":{"38":{}},"component":{}}],["hellotest.java",{"_index":2455,"title":{},"name":{},"text":{"38":{}},"component":{}}],["help",{"_index":308,"title":{},"name":{},"text":{"3":{},"7":{},"11":{},"17":{},"25":{},"41":{},"49":{},"54":{},"59":{},"60":{},"64":{},"65":{}},"component":{}}],["henc",{"_index":707,"title":{},"name":{},"text":{"6":{}},"component":{}}],["here",{"_index":407,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["here’",{"_index":2928,"title":{},"name":{},"text":{"48":{}},"component":{}}],["hibern",{"_index":1695,"title":{},"name":{},"text":{"21":{}},"component":{}}],["hide",{"_index":3395,"title":{},"name":{},"text":{"72":{}},"component":{}}],["highli",{"_index":2985,"title":{},"name":{},"text":{"50":{}},"component":{}}],["histori",{"_index":1394,"title":{},"name":{},"text":{"17":{},"31":{}},"component":{}}],["hit",{"_index":2601,"title":{},"name":{},"text":{"42":{},"49":{}},"component":{}}],["hold",{"_index":486,"title":{},"name":{},"text":{"5":{},"7":{},"12":{},"37":{},"47":{},"49":{}},"component":{}}],["home",{"_index":3377,"title":{},"name":{},"text":{"70":{}},"component":{}}],["home/kogito/launch/build",{"_index":2833,"title":{},"name":{},"text":{"47":{}},"component":{}}],["home/kogito/serverless",{"_index":2847,"title":{},"name":{},"text":{"47":{}},"component":{}}],["home/user/dev/kiegroup/kogito",{"_index":2507,"title":{},"name":{},"text":{"38":{}},"component":{}}],["home}/.docker/config.json",{"_index":2880,"title":{},"name":{},"text":{"47":{}},"component":{}}],["hood",{"_index":3256,"title":{},"name":{},"text":{"60":{}},"component":{}}],["host",{"_index":1910,"title":{},"name":{},"text":{"27":{},"31":{},"69":{}},"component":{}}],["host1:11222;host2:11222",{"_index":1913,"title":{},"name":{},"text":{"27":{}},"component":{}}],["host:port",{"_index":1950,"title":{},"name":{},"text":{"27":{}},"component":{}}],["hot",{"_index":196,"title":{},"name":{},"text":{"2":{}},"component":{}}],["hour",{"_index":842,"title":{},"name":{},"text":{"9":{}},"component":{}}],["hover",{"_index":3331,"title":{},"name":{},"text":{"66":{}},"component":{}}],["html",{"_index":1829,"title":{},"name":{},"text":{"26":{}},"component":{}}],["http",{"_index":133,"title":{"42":{},"17-3":{},"32-2":{},"37-2":{}},"name":{"42":{}},"text":{"1":{},"2":{},"6":{},"7":{},"10":{},"11":{},"14":{},"16":{},"17":{},"20":{},"21":{},"25":{},"27":{},"28":{},"29":{},"32":{},"35":{},"36":{},"37":{},"38":{},"42":{},"47":{},"49":{},"53":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"74":{}},"component":{}}],["http1",{"_index":3200,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["http://0.0.0.0:8080",{"_index":1690,"title":{},"name":{},"text":{"21":{}},"component":{}}],["http://127.0.0.1:57053",{"_index":2948,"title":{},"name":{},"text":{"49":{}},"component":{}}],["http://127.0.0.1:57053/q/swagger",{"_index":2951,"title":{},"name":{},"text":{"49":{}},"component":{}}],["http://custom",{"_index":622,"title":{},"name":{},"text":{"6":{},"24":{}},"component":{}}],["http://hello",{"_index":3161,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["http://localhost:8080",{"_index":1401,"title":{},"name":{},"text":{"17":{},"21":{}},"component":{}}],["http://localhost:8080/callback",{"_index":2431,"title":{},"name":{},"text":{"37":{}},"component":{}}],["http://localhost:8080/currency_exchange_workflow",{"_index":2222,"title":{},"name":{},"text":{"33":{}},"component":{}}],["http://localhost:8080/hello_world",{"_index":1702,"title":{},"name":{},"text":{"21":{}},"component":{}}],["http://localhost:8080/jsongreet",{"_index":2358,"title":{},"name":{},"text":{"35":{},"55":{}},"component":{}}],["http://localhost:8080/jsongreetbidistream",{"_index":2382,"title":{},"name":{},"text":{"35":{}},"component":{}}],["http://localhost:8080/jsongreetclientstream",{"_index":2376,"title":{},"name":{},"text":{"35":{}},"component":{}}],["http://localhost:8080/jsongreetserverstream",{"_index":2365,"title":{},"name":{},"text":{"35":{}},"component":{}}],["http://localhost:8080/order_saga_error_workflow",{"_index":2705,"title":{},"name":{},"text":{"45":{}},"component":{}}],["http://localhost:8080/parallel",{"_index":1096,"title":{},"name":{},"text":{"13":{}},"component":{}}],["http://localhost:8080/q/dev",{"_index":1338,"title":{},"name":{},"text":{"16":{},"64":{}},"component":{}}],["http://localhost:8080/q/graphql",{"_index":1238,"title":{},"name":{},"text":{"14":{}},"component":{}}],["http://localhost:8080/q/metr",{"_index":1811,"title":{},"name":{},"text":{"26":{}},"component":{}}],["http://localhost:8080/q/openapi",{"_index":792,"title":{},"name":{},"text":{"7":{}},"component":{}}],["http://localhost:8080/q/swagg",{"_index":1591,"title":{},"name":{},"text":{"21":{}},"component":{}}],["http://localhost:8080/resum",{"_index":1567,"title":{},"name":{},"text":{"20":{}},"component":{}}],["http://localhost:8080/stockprofit",{"_index":2308,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http://localhost:8080/wait",{"_index":2432,"title":{},"name":{},"text":{"37":{}},"component":{}}],["http://localhost:8081",{"_index":2500,"title":{},"name":{},"text":{"38":{}},"component":{}}],["http://localhost:8180",{"_index":1843,"title":{},"name":{},"text":{"26":{}},"component":{}}],["http://localhost:8180/graphiql",{"_index":1235,"title":{},"name":{},"text":{"14":{},"26":{}},"component":{}}],["http://localhost:8180/graphql",{"_index":1337,"title":{},"name":{},"text":{"16":{}},"component":{}}],["http://localhost:8180/graphql/?query=%7bprocessinstances%7bprocessid%20processname%20state%20start%20end%20businesskey%20error%7bmessage%7d%7d%7d%0a",{"_index":1851,"title":{},"name":{},"text":{"26":{}},"component":{}}],["http://localhost:8181",{"_index":2307,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http://localhost:8280/v2/jobs/ev",{"_index":1971,"title":{},"name":{},"text":{"28":{}},"component":{}}],["http://localhost:8281/auth/realms/kogito/protocol/openid",{"_index":2185,"title":{},"name":{},"text":{"33":{}},"component":{}}],["http://localhost:8282",{"_index":2305,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http://localhost:8383",{"_index":2306,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http://localhost:8483/financi",{"_index":2201,"title":{},"name":{},"text":{"33":{}},"component":{}}],["http://localhost:9000",{"_index":1365,"title":{},"name":{},"text":{"17":{}},"component":{}}],["http://myserver.com",{"_index":2426,"title":{},"name":{},"text":{"36":{}},"component":{}}],["http://myservice.mynamespace.cluster.svc.loc",{"_index":2270,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http:400",{"_index":998,"title":{},"name":{},"text":{"11":{}},"component":{}}],["http_basic_exampl",{"_index":2067,"title":{},"name":{},"text":{"32":{}},"component":{}}],["httpget",{"_index":3194,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["https://docs.openshift.com/contain",{"_index":2913,"title":{},"name":{},"text":{"47":{}},"component":{}}],["https://example.com/oauth",{"_index":2095,"title":{},"name":{},"text":{"32":{}},"component":{}}],["https://example.com/oauth/token",{"_index":2097,"title":{},"name":{},"text":{"32":{}},"component":{}}],["https://github.com/cloudevents/spec/pul",{"_index":656,"title":{},"name":{},"text":{"6":{}},"component":{}}],["https://github.com/kiegroup/kogito",{"_index":2211,"title":{},"name":{},"text":{"33":{},"46":{},"55":{}},"component":{}}],["https://my.remote.host/apicatalog/apis/123/docu",{"_index":2259,"title":{},"name":{},"text":{"34":{}},"component":{}}],["https://raw.githubusercontent.com/kiegroup/kogito",{"_index":2939,"title":{},"name":{},"text":{"49":{},"50":{}},"component":{}}],["https://{url",{"_index":3416,"title":{},"name":{},"text":{"74":{}},"component":{}}],["huge",{"_index":1546,"title":{},"name":{},"text":{"20":{}},"component":{}}],["hybrid",{"_index":3418,"title":{},"name":{},"text":{"74":{}},"component":{}}],["i)error",{"_index":993,"title":{},"name":{},"text":{"11":{}},"component":{}}],["i.",{"_index":1234,"title":{"47-8":{}},"name":{},"text":{"14":{},"55":{}},"component":{}}],["icon",{"_index":333,"title":{},"name":{},"text":{"4":{},"65":{},"66":{},"67":{},"72":{}},"component":{}}],["id",{"_index":388,"title":{},"name":{},"text":{"4":{},"6":{},"9":{},"12":{},"13":{},"14":{},"17":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"29":{},"30":{},"33":{},"34":{},"36":{},"37":{},"38":{},"42":{},"49":{},"55":{},"57":{},"58":{},"59":{},"66":{},"71":{},"74":{}},"component":{}}],["id\":\"0f77abc",{"_index":3169,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["id\":\"217050a3",{"_index":2752,"title":{},"name":{},"text":{"45":{}},"component":{}}],["id\":\"358f97ba",{"_index":1099,"title":{},"name":{},"text":{"13":{}},"component":{}}],["id\":\"3da62df1",{"_index":1108,"title":{},"name":{},"text":{"13":{}},"component":{}}],["id\":\"4376cc50",{"_index":2359,"title":{},"name":{},"text":{"35":{}},"component":{}}],["id\":\"5ab5dcb8",{"_index":2310,"title":{},"name":{},"text":{"34":{}},"component":{}}],["id\":\"665911c5",{"_index":2366,"title":{},"name":{},"text":{"35":{}},"component":{}}],["id\":\"87cf8275",{"_index":1754,"title":{},"name":{},"text":{"24":{}},"component":{}}],["id\":\"a80c95d6",{"_index":2317,"title":{},"name":{},"text":{"34":{}},"component":{}}],["id\":\"b5c0bf16",{"_index":2713,"title":{},"name":{},"text":{"45":{}},"component":{}}],["id\":\"b5fbfaa3",{"_index":2921,"title":{},"name":{},"text":{"47":{}},"component":{}}],["id\":\"efb59bfa",{"_index":1703,"title":{},"name":{},"text":{"21":{}},"component":{}}],["id:\"23147fcc",{"_index":1195,"title":{},"name":{},"text":{"14":{}},"component":{}}],["id:\"66e05e9c",{"_index":1180,"title":{},"name":{},"text":{"14":{}},"component":{}}],["id=io.quarkus.platform",{"_index":1603,"title":{},"name":{},"text":{"21":{}},"component":{}}],["id=kogito",{"_index":2110,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["ideal",{"_index":30,"title":{},"name":{},"text":{"1":{}},"component":{}}],["ident",{"_index":254,"title":{},"name":{},"text":{"2":{}},"component":{}}],["identifi",{"_index":681,"title":{},"name":{},"text":{"6":{},"8":{},"11":{},"12":{},"19":{},"21":{},"23":{},"27":{},"28":{},"29":{},"32":{},"33":{},"36":{},"37":{},"42":{},"45":{},"49":{},"74":{}},"component":{}}],["ifnotpres",{"_index":3217,"title":{},"name":{},"text":{"58":{}},"component":{}}],["ignor",{"_index":370,"title":{},"name":{},"text":{"4":{}},"component":{}}],["illegalargumentexcept",{"_index":749,"title":{},"name":{},"text":{"6":{},"11":{},"23":{}},"component":{}}],["illegalargumentexception(",{"_index":1046,"title":{},"name":{},"text":{"12":{}},"component":{}}],["illegalargumentexception(\"odd",{"_index":555,"title":{},"name":{},"text":{"6":{}},"component":{}}],["illustr",{"_index":999,"title":{},"name":{},"text":{"11":{},"35":{},"37":{}},"component":{}}],["imag",{"_index":263,"title":{"55":{},"47-2":{},"47-10":{},"49-6":{},"55-3":{},"55-4":{}},"name":{"55":{},"56":{}},"text":{"2":{},"3":{},"5":{},"14":{},"16":{},"17":{},"21":{},"24":{},"27":{},"29":{},"36":{},"37":{},"41":{},"47":{},"49":{},"50":{},"51":{},"54":{},"55":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["image.build",{"_index":3078,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.build=tru",{"_index":3080,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.group",{"_index":3083,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.group=kiegroup",{"_index":3205,"title":{},"name":{},"text":{"57":{}},"component":{}}],["image.group=kogito",{"_index":3087,"title":{},"name":{},"text":{"55":{},"58":{},"59":{}},"component":{}}],["image.nam",{"_index":3086,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.name=serverless",{"_index":3088,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.push",{"_index":3092,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.push=fals",{"_index":3230,"title":{},"name":{},"text":{"58":{}},"component":{}}],["image.push=tru",{"_index":3093,"title":{},"name":{},"text":{"55":{},"57":{},"59":{}},"component":{}}],["image.registri",{"_index":3082,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.registry=dev.loc",{"_index":3231,"title":{},"name":{},"text":{"58":{}},"component":{}}],["image.registry=imag",{"_index":3254,"title":{},"name":{},"text":{"59":{}},"component":{}}],["image.registry=quay.io",{"_index":3090,"title":{},"name":{},"text":{"55":{},"57":{}},"component":{}}],["image.registry=some_of_the_values_abov",{"_index":3215,"title":{},"name":{},"text":{"58":{}},"component":{}}],["image.tag=1.0",{"_index":3089,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{}},"component":{}}],["image=[nam",{"_index":2546,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[name]:[tag",{"_index":2547,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[registry]/[repository]/[nam",{"_index":2550,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[registry]/[repository]/[name]:[tag",{"_index":2551,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[repository]/[nam",{"_index":2548,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[repository]/[name]:[tag",{"_index":2549,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=dev.local/kogito/serverless",{"_index":3228,"title":{},"name":{},"text":{"58":{}},"component":{}}],["image=imag",{"_index":3252,"title":{},"name":{},"text":{"59":{}},"component":{}}],["image=quay.io/kiegroup/serverless",{"_index":3148,"title":{},"name":{},"text":{"57":{}},"component":{}}],["imagepullpolici",{"_index":1316,"title":{},"name":{},"text":{"16":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["imagestream",{"_index":2894,"title":{},"name":{},"text":{"47":{}},"component":{}}],["imaginari",{"_index":952,"title":{},"name":{},"text":{"10":{}},"component":{}}],["immedi",{"_index":1019,"title":{},"name":{},"text":{"12":{},"14":{},"16":{},"29":{},"37":{}},"component":{}}],["immut",{"_index":2806,"title":{"48-2":{}},"name":{},"text":{"47":{},"48":{},"49":{},"54":{}},"component":{}}],["implement",{"_index":76,"title":{"60-6":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"7":{},"9":{},"11":{},"17":{},"27":{},"33":{},"34":{},"35":{},"37":{},"43":{},"45":{},"47":{},"49":{},"51":{},"54":{},"67":{},"68":{}},"component":{}}],["import",{"_index":727,"title":{"68-3":{}},"name":{},"text":{"6":{},"7":{},"16":{},"27":{},"28":{},"33":{},"38":{},"43":{},"47":{},"48":{},"54":{},"59":{},"68":{}},"component":{}}],["improv",{"_index":236,"title":{},"name":{},"text":{"2":{}},"component":{}}],["inact",{"_index":1065,"title":{},"name":{},"text":{"13":{},"27":{}},"component":{}}],["includ",{"_index":260,"title":{},"name":{},"text":{"2":{},"3":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"21":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"45":{},"49":{},"51":{},"66":{},"67":{},"70":{},"74":{}},"component":{}}],["include=tru",{"_index":1276,"title":{},"name":{},"text":{"15":{}},"component":{}}],["incom",{"_index":444,"title":{},"name":{},"text":{"5":{},"17":{},"18":{},"19":{},"27":{},"37":{},"42":{},"46":{}},"component":{}}],["incoming(\"in",{"_index":1049,"title":{},"name":{},"text":{"12":{}},"component":{}}],["incoming/outgo",{"_index":3027,"title":{},"name":{},"text":{"51":{}},"component":{}}],["incomplet",{"_index":1661,"title":{},"name":{},"text":{"21":{}},"component":{}}],["incorpor",{"_index":1175,"title":{},"name":{},"text":{"14":{},"15":{},"16":{}},"component":{}}],["increas",{"_index":2994,"title":{},"name":{},"text":{"50":{}},"component":{}}],["independ",{"_index":903,"title":{},"name":{},"text":{"9":{},"19":{},"27":{},"43":{},"46":{}},"component":{}}],["index",{"_index":17,"title":{"14":{},"15":{},"16":{},"1-12":{},"14-1":{},"14-2":{},"14-3":{},"14-4":{},"14-5":{},"14-6":{},"14-7":{},"14-9":{},"14-10":{},"14-11":{},"14-14":{},"15-2":{},"16-1":{},"16-2":{},"16-3":{},"16-4":{},"16-5":{},"16-6":{},"16-7":{},"26-3":{}},"name":{"1":{},"3":{},"14":{},"15":{},"16":{}},"text":{"1":{},"5":{},"9":{},"14":{},"15":{},"16":{},"21":{},"26":{},"27":{},"46":{}},"component":{}}],["index.graphql.ui.alway",{"_index":1237,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{}}],["index.html",{"_index":3350,"title":{},"name":{},"text":{"67":{}},"component":{}}],["index.proto",{"_index":1681,"title":{},"name":{},"text":{"21":{}},"component":{}}],["indic",{"_index":467,"title":{},"name":{},"text":{"5":{},"6":{},"7":{},"8":{},"10":{},"12":{},"13":{},"16":{},"17":{},"18":{},"23":{},"24":{},"33":{},"34":{},"37":{},"45":{},"63":{},"66":{},"67":{}},"component":{}}],["individu",{"_index":1901,"title":{},"name":{},"text":{"27":{},"32":{}},"component":{}}],["inf/resources/persistence/protobuf:/home/kogito/data/protobuf",{"_index":1292,"title":{},"name":{},"text":{"16":{}},"component":{}}],["infinispan",{"_index":421,"title":{"27-11":{}},"name":{},"text":{"5":{},"14":{},"15":{},"27":{}},"component":{}}],["info",{"_index":522,"title":{},"name":{},"text":{"6":{},"21":{},"32":{},"33":{},"34":{},"36":{},"38":{},"45":{},"54":{},"55":{}},"component":{}}],["info.titl",{"_index":2264,"title":{},"name":{},"text":{"34":{}},"component":{}}],["inform",{"_index":323,"title":{"62-1":{}},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["ingress",{"_index":2949,"title":{},"name":{},"text":{"49":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["ingresses.v1.networking.k8s.io",{"_index":3279,"title":{},"name":{},"text":{"60":{}},"component":{}}],["inherit",{"_index":691,"title":{},"name":{},"text":{"6":{}},"component":{}}],["init",{"_index":769,"title":{},"name":{},"text":{"6":{},"38":{}},"component":{}}],["initi",{"_index":911,"title":{},"name":{},"text":{"10":{},"12":{},"16":{},"27":{},"31":{},"37":{},"45":{},"47":{},"57":{},"58":{},"59":{}},"component":{}}],["initialdelaysecond",{"_index":3196,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["inject",{"_index":219,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"10":{},"11":{},"17":{},"21":{},"33":{},"36":{},"47":{},"49":{}},"component":{}}],["inmemori",{"_index":1270,"title":{},"name":{},"text":{"15":{},"21":{}},"component":{}}],["input",{"_index":88,"title":{"7":{},"7-1":{}},"name":{"7":{}},"text":{"1":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"18":{},"21":{},"33":{},"46":{},"53":{},"65":{}},"component":{}}],["insecur",{"_index":2991,"title":{},"name":{},"text":{"50":{}},"component":{}}],["insecureskipverifi",{"_index":3376,"title":{},"name":{},"text":{"69":{}},"component":{}}],["insensit",{"_index":989,"title":{},"name":{},"text":{"11":{}},"component":{}}],["insid",{"_index":582,"title":{},"name":{},"text":{"6":{},"10":{},"14":{},"49":{},"51":{}},"component":{}}],["insight",{"_index":1123,"title":{},"name":{},"text":{"14":{}},"component":{}}],["inspect",{"_index":3054,"title":{},"name":{},"text":{"54":{}},"component":{}}],["inspector",{"_index":2398,"title":{},"name":{},"text":{"36":{}},"component":{}}],["instal",{"_index":100,"title":{"50":{},"41-1":{},"50-1":{},"50-3":{},"50-5":{},"50-7":{},"58-1":{},"59-1":{},"64-1":{},"72-1":{},"74-1":{}},"name":{"50":{}},"text":{"1":{},"2":{},"3":{},"17":{},"21":{},"24":{},"25":{},"27":{},"28":{},"29":{},"30":{},"33":{},"36":{},"38":{},"41":{},"43":{},"47":{},"49":{},"50":{},"55":{},"57":{},"58":{},"59":{},"64":{},"69":{},"72":{},"74":{}},"component":{}}],["instanc",{"_index":65,"title":{"66":{},"14-8":{},"50-6":{},"62-1":{},"65-2":{},"65-3":{},"65-6":{},"66-1":{},"66-2":{},"69-2":{}},"name":{"66":{}},"text":{"1":{},"2":{},"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"14":{},"15":{},"16":{},"19":{},"22":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"33":{},"35":{},"37":{},"42":{},"43":{},"46":{},"47":{},"49":{},"50":{},"52":{},"53":{},"54":{},"62":{},"64":{},"65":{},"66":{},"67":{},"69":{},"71":{}},"component":{}}],["instead",{"_index":393,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"11":{},"13":{},"27":{},"28":{},"32":{},"33":{},"36":{},"41":{},"47":{},"50":{},"55":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["instruct",{"_index":1712,"title":{},"name":{},"text":{"21":{},"30":{},"41":{},"43":{},"55":{},"59":{},"60":{}},"component":{}}],["int",{"_index":476,"title":{},"name":{},"text":{"5":{},"6":{},"16":{}},"component":{}}],["int32",{"_index":795,"title":{},"name":{},"text":{"7":{}},"component":{}}],["int64",{"_index":2415,"title":{},"name":{},"text":{"36":{}},"component":{}}],["integ",{"_index":548,"title":{},"name":{},"text":{"6":{},"7":{},"11":{},"14":{},"23":{},"36":{}},"component":{}}],["integer)iter.next",{"_index":754,"title":{},"name":{},"text":{"6":{}},"component":{}}],["integr",{"_index":14,"title":{"23":{},"29":{},"68":{},"69":{},"71":{},"1-10":{},"27-1":{},"51-4":{}},"name":{"23":{},"29":{},"38":{},"68":{},"69":{},"71":{}},"text":{"1":{},"3":{},"6":{},"23":{},"26":{},"27":{},"29":{},"30":{},"31":{},"35":{},"38":{},"42":{},"43":{},"46":{},"51":{},"54":{},"64":{},"67":{},"68":{},"69":{},"70":{},"71":{}},"component":{}}],["intend",{"_index":709,"title":{},"name":{},"text":{"6":{},"46":{}},"component":{}}],["interact",{"_index":165,"title":{"28-1":{},"28-2":{},"28-3":{}},"name":{},"text":{"1":{},"6":{},"10":{},"11":{},"14":{},"15":{},"17":{},"18":{},"27":{},"28":{},"29":{},"33":{},"42":{},"45":{}},"component":{}}],["interceptor",{"_index":3301,"title":{},"name":{},"text":{"60":{}},"component":{}}],["interfac",{"_index":542,"title":{},"name":{},"text":{"6":{},"16":{},"24":{},"26":{},"36":{},"43":{},"49":{},"54":{},"55":{},"57":{},"58":{},"59":{},"64":{},"69":{},"70":{}},"component":{}}],["intermedi",{"_index":2243,"title":{},"name":{},"text":{"33":{}},"component":{}}],["intern",{"_index":55,"title":{},"name":{},"text":{"1":{},"14":{},"19":{},"25":{},"26":{},"35":{},"36":{},"42":{},"45":{},"47":{},"51":{},"54":{},"59":{}},"component":{}}],["internalexecut",{"_index":704,"title":{},"name":{},"text":{"6":{}},"component":{}}],["internalexecute(kogitoworkitem",{"_index":742,"title":{},"name":{},"text":{"6":{}},"component":{}}],["interpol",{"_index":530,"title":{},"name":{},"text":{"6":{}},"component":{}}],["interpret",{"_index":302,"title":{},"name":{},"text":{"3":{}},"component":{}}],["interrupt",{"_index":852,"title":{},"name":{},"text":{"9":{}},"component":{}}],["interruptedexcept",{"_index":2577,"title":{},"name":{},"text":{"42":{}},"component":{}}],["interv",{"_index":1770,"title":{},"name":{},"text":{"25":{},"27":{}},"component":{}}],["introduc",{"_index":1442,"title":{},"name":{},"text":{"18":{},"45":{},"53":{}},"component":{}}],["introduct",{"_index":161,"title":{"27":{},"49-1":{}},"name":{},"text":{"1":{}},"component":{}}],["invalid",{"_index":2237,"title":{},"name":{},"text":{"33":{},"49":{}},"component":{}}],["invoc",{"_index":42,"title":{},"name":{},"text":{"1":{},"4":{},"10":{},"11":{},"12":{},"20":{},"32":{},"33":{},"36":{},"53":{}},"component":{}}],["invok",{"_index":155,"title":{"24":{}},"name":{},"text":{"1":{},"6":{},"10":{},"11":{},"20":{},"21":{},"24":{},"32":{},"34":{},"35":{},"36":{},"37":{},"45":{},"55":{}},"component":{}}],["invokefunct",{"_index":642,"title":{},"name":{},"text":{"6":{}},"component":{}}],["io",{"_index":757,"title":{},"name":{},"text":{"6":{}},"component":{}}],["io.qua.run.con.configrecord",{"_index":1676,"title":{},"name":{},"text":{"21":{}},"component":{}}],["io.quarku",{"_index":1414,"title":{},"name":{},"text":{"17":{},"18":{},"21":{},"28":{},"29":{},"30":{},"32":{},"38":{},"42":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["io.quarkus.deployment.quarkusaugmentor",{"_index":2511,"title":{},"name":{},"text":{"38":{}},"component":{}}],["io.quarkus.platform:quarku",{"_index":1592,"title":{},"name":{},"text":{"21":{}},"component":{}}],["io.quarkus.test.common.quarkustestresourc",{"_index":2653,"title":{},"name":{},"text":{"43":{}},"component":{}}],["io.quarkus.test.common.quarkustestresourcelifecyclemanag",{"_index":2636,"title":{},"name":{},"text":{"43":{}},"component":{}}],["io.quarkus.test.junit.quarkustest",{"_index":2456,"title":{},"name":{},"text":{"38":{},"43":{}},"component":{}}],["io.quarkus:quarku",{"_index":3176,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["io.rest",{"_index":1978,"title":{},"name":{},"text":{"29":{},"38":{},"42":{}},"component":{}}],["io.restassured.http.contenttyp",{"_index":2458,"title":{},"name":{},"text":{"38":{}},"component":{}}],["io.restassured.restassur",{"_index":2457,"title":{},"name":{},"text":{"38":{}},"component":{}}],["io.restassured.restassured.given",{"_index":2461,"title":{},"name":{},"text":{"38":{}},"component":{}}],["io.zon.tes.db.pos.emb.defaultpostgresbinaryresolv",{"_index":1653,"title":{},"name":{},"text":{"21":{}},"component":{}}],["io.zon.tes.db.pos.emb.embeddedpostgr",{"_index":1647,"title":{},"name":{},"text":{"21":{}},"component":{}}],["ioexcept",{"_index":756,"title":{},"name":{},"text":{"6":{},"43":{}},"component":{}}],["ip",{"_index":3115,"title":{},"name":{},"text":{"57":{}},"component":{}}],["iseven",{"_index":1000,"title":{},"name":{},"text":{"11":{}},"component":{}}],["isnul",{"_index":1157,"title":{},"name":{},"text":{"14":{}},"component":{}}],["iso",{"_index":835,"title":{},"name":{},"text":{"9":{}},"component":{}}],["isol",{"_index":2612,"title":{},"name":{},"text":{"43":{}},"component":{}}],["issu",{"_index":304,"title":{"51":{},"4-13":{},"5-1":{},"6-22":{},"7-6":{},"8-3":{},"9-11":{},"10-5":{},"11-4":{},"12-3":{},"13-5":{},"14-16":{},"15-4":{},"16-9":{},"17-7":{},"18-5":{},"19-3":{},"20-3":{},"21-7":{},"22-1":{},"23-6":{},"24-3":{},"25-6":{},"26-5":{},"27-17":{},"28-5":{},"29-4":{},"30-3":{},"31-9":{},"32-8":{},"33-5":{},"34-10":{},"35-7":{},"36-7":{},"37-4":{},"38-2":{},"41-7":{},"42-5":{},"43-5":{},"45-5":{},"46-11":{},"47-14":{},"48-4":{},"49-14":{},"50-10":{},"53-4":{},"54-5":{},"55-6":{},"57-6":{},"58-6":{},"59-7":{},"60-8":{},"62-2":{},"63-6":{},"64-2":{},"65-8":{},"66-3":{},"67-3":{},"68-4":{},"69-3":{},"70-3":{},"71-3":{},"72-3":{},"73-3":{},"74-7":{}},"name":{"51":{}},"text":{"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["istio",{"_index":3236,"title":{},"name":{},"text":{"59":{}},"component":{}}],["iswinn",{"_index":3039,"title":{},"name":{},"text":{"53":{}},"component":{}}],["item",{"_index":688,"title":{},"name":{},"text":{"6":{},"8":{},"45":{},"74":{}},"component":{}}],["iter",{"_index":296,"title":{},"name":{},"text":{"3":{},"6":{}},"component":{}}],["itself",{"_index":1121,"title":{},"name":{},"text":{"14":{}},"component":{}}],["it’",{"_index":286,"title":{},"name":{},"text":{"3":{},"6":{},"14":{},"48":{},"49":{}},"component":{}}],["it’ll",{"_index":1933,"title":{},"name":{},"text":{"27":{}},"component":{}}],["jackson",{"_index":453,"title":{},"name":{},"text":{"5":{},"21":{},"38":{}},"component":{}}],["jackson,quarku",{"_index":1597,"title":{},"name":{},"text":{"21":{}},"component":{}}],["jackson’",{"_index":558,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["jan",{"_index":2374,"title":{},"name":{},"text":{"35":{}},"component":{}}],["jane",{"_index":2953,"title":{},"name":{},"text":{"49":{}},"component":{}}],["jar",{"_index":1613,"title":{},"name":{},"text":{"21":{},"29":{},"33":{},"34":{},"38":{},"60":{}},"component":{}}],["java",{"_index":306,"title":{"6-2":{},"27-6":{}},"name":{},"text":{"3":{},"4":{},"6":{},"11":{},"12":{},"21":{},"23":{},"27":{},"30":{},"33":{},"34":{},"36":{},"37":{},"38":{},"41":{},"45":{},"49":{},"60":{}},"component":{}}],["java.io.ioexcept",{"_index":2637,"title":{},"name":{},"text":{"43":{}},"component":{}}],["java.io.uncheckedioexcept",{"_index":2638,"title":{},"name":{},"text":{"43":{}},"component":{}}],["java.lang.except",{"_index":2150,"title":{},"name":{},"text":{"33":{}},"component":{}}],["java.lang.illegalstateexcept",{"_index":983,"title":{},"name":{},"text":{"11":{}},"component":{}}],["java.lang.runtimeexcept",{"_index":982,"title":{},"name":{},"text":{"11":{}},"component":{}}],["java.util.map",{"_index":2639,"title":{},"name":{},"text":{"43":{}},"component":{}}],["java_app_jar=\\\"/deployments/quarku",{"_index":2861,"title":{},"name":{},"text":{"47":{}},"component":{}}],["java_hom",{"_index":1576,"title":{},"name":{},"text":{"21":{}},"component":{}}],["java_opt",{"_index":1882,"title":{},"name":{},"text":{"27":{},"47":{}},"component":{}}],["javax.enterprise.context.applicationscop",{"_index":2167,"title":{},"name":{},"text":{"33":{}},"component":{}}],["javi",{"_index":2364,"title":{},"name":{},"text":{"35":{}},"component":{}}],["javierito",{"_index":1566,"title":{},"name":{},"text":{"20":{},"35":{}},"component":{}}],["javierito\\nhello",{"_index":2378,"title":{},"name":{},"text":{"35":{}},"component":{}}],["jboss",{"_index":2480,"title":{},"name":{},"text":{"38":{}},"component":{}}],["jdbc",{"_index":418,"title":{},"name":{},"text":{"5":{},"19":{},"21":{},"27":{},"29":{},"30":{},"31":{}},"component":{}}],["jdbc:postgresql://newslett",{"_index":1326,"title":{},"name":{},"text":{"16":{}},"component":{}}],["jdbc:postgresql://postgres:5432/kogito",{"_index":1294,"title":{},"name":{},"text":{"16":{}},"component":{}}],["jdbc:postgresql://timeout",{"_index":1877,"title":{},"name":{},"text":{"27":{}},"component":{}}],["jib",{"_index":1413,"title":{},"name":{},"text":{"17":{},"41":{},"55":{}},"component":{}}],["job",{"_index":15,"title":{"28":{},"1-11":{},"14-8":{},"14-14":{},"27-2":{},"28-4":{}},"name":{},"text":{"1":{},"2":{},"9":{},"14":{},"16":{},"27":{},"28":{},"46":{}},"component":{}}],["job.creat",{"_index":1942,"title":{},"name":{},"text":{"27":{}},"component":{}}],["job.delet",{"_index":1944,"title":{},"name":{},"text":{"27":{}},"component":{}}],["job_nam",{"_index":1775,"title":{},"name":{},"text":{"25":{}},"component":{}}],["jobcancel",{"_index":1232,"title":{},"name":{},"text":{"14":{}},"component":{}}],["jobev",{"_index":1254,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["jobreschedul",{"_index":1227,"title":{},"name":{},"text":{"14":{}},"component":{}}],["jobs_service_persist",{"_index":1872,"title":{},"name":{},"text":{"27":{}},"component":{}}],["jobs_service_persistence=postgresql",{"_index":1873,"title":{},"name":{},"text":{"27":{}},"component":{}}],["john",{"_index":2357,"title":{},"name":{},"text":{"35":{},"38":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["john\"},{\"message\":\"saludo",{"_index":2371,"title":{},"name":{},"text":{"35":{}},"component":{}}],["john\\nhello",{"_index":2379,"title":{},"name":{},"text":{"35":{}},"component":{}}],["jpi",{"_index":2238,"title":{},"name":{},"text":{"33":{}},"component":{}}],["jq",{"_index":79,"title":{"10":{},"10-1":{},"10-2":{},"10-3":{}},"name":{"10":{}},"text":{"1":{},"4":{},"6":{},"10":{},"21":{},"23":{},"36":{},"38":{},"49":{}},"component":{}}],["jre8",{"_index":2565,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["json",{"_index":95,"title":{"6-15":{}},"name":{},"text":{"1":{},"6":{},"7":{},"10":{},"11":{},"21":{},"23":{},"26":{},"33":{},"35":{},"38":{},"43":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{},"65":{},"66":{},"70":{},"73":{},"74":{}},"component":{}}],["jsonata",{"_index":1807,"title":{},"name":{},"text":{"26":{}},"component":{}}],["jsoncloudeventdata",{"_index":1055,"title":{},"name":{},"text":{"12":{}},"component":{}}],["jsongreet",{"_index":1788,"title":{},"name":{},"text":{"25":{}},"component":{}}],["jsonnod",{"_index":559,"title":{},"name":{},"text":{"6":{},"23":{},"43":{}},"component":{}}],["jsonp",{"_index":2539,"title":{},"name":{},"text":{"41":{}},"component":{}}],["jsonp,quarku",{"_index":1602,"title":{},"name":{},"text":{"21":{},"41":{}},"component":{}}],["jsonpath",{"_index":377,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{}}],["jsonpath=\"{.spec.template.spec.containers[?(@.name=='manager')].imag",{"_index":3009,"title":{},"name":{},"text":{"50":{}},"component":{}}],["jsonpath='{..namespac",{"_index":3143,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["jsonpath={.statu",{"_index":3055,"title":{},"name":{},"text":{"54":{}},"component":{}}],["jsonpath={.status.condit",{"_index":2965,"title":{},"name":{},"text":{"49":{}},"component":{}}],["jsonprocessingexcept",{"_index":1044,"title":{},"name":{},"text":{"12":{},"37":{},"42":{}},"component":{}}],["jta",{"_index":1699,"title":{},"name":{},"text":{"21":{}},"component":{}}],["junit5",{"_index":1977,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["jvm",{"_index":1632,"title":{},"name":{},"text":{"21":{},"29":{},"38":{},"42":{},"55":{}},"component":{}}],["k8",{"_index":1769,"title":{},"name":{},"text":{"25":{},"47":{},"49":{}},"component":{}}],["k_sink",{"_index":1255,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"28":{}},"component":{}}],["k_sink:http://localhost:9090",{"_index":1363,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kafka",{"_index":119,"title":{"18":{},"14-13":{},"16-4":{},"27-15":{},"28-2":{}},"name":{"18":{}},"text":{"1":{},"2":{},"5":{},"8":{},"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"27":{},"28":{}},"component":{}}],["kafka,kogito",{"_index":1972,"title":{},"name":{},"text":{"28":{}},"component":{}}],["kafka.bootstrap.serv",{"_index":1956,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kafka_bootstrap_serv",{"_index":1948,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kaniko",{"_index":2809,"title":{},"name":{},"text":{"47":{}},"component":{}}],["kanikobuildcacheen",{"_index":2884,"title":{},"name":{},"text":{"47":{}},"component":{}}],["kaoto",{"_index":1720,"title":{},"name":{},"text":{"23":{}},"component":{}}],["kebab",{"_index":3338,"title":{},"name":{},"text":{"66":{}},"component":{}}],["keep",{"_index":1867,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["key",{"_index":456,"title":{"32-4":{},"65-5":{}},"name":{},"text":{"5":{},"6":{},"14":{},"26":{},"32":{},"34":{},"35":{},"36":{},"48":{},"65":{},"66":{},"74":{}},"component":{}}],["key/valu",{"_index":607,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["key1",{"_index":603,"title":{},"name":{},"text":{"6":{}},"component":{}}],["key2",{"_index":605,"title":{},"name":{},"text":{"6":{}},"component":{}}],["key=my_key",{"_index":2089,"title":{},"name":{},"text":{"32":{}},"component":{}}],["keycloak",{"_index":2136,"title":{},"name":{},"text":{"33":{}},"component":{}}],["keyword",{"_index":537,"title":{},"name":{},"text":{"6":{},"50":{}},"component":{}}],["kgto",{"_index":2309,"title":{},"name":{},"text":{"34":{}},"component":{}}],["kie",{"_index":2518,"title":{},"name":{},"text":{"41":{},"72":{},"74":{}},"component":{}}],["kind",{"_index":1248,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"17":{},"25":{},"27":{},"31":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["kind=postgresql",{"_index":2009,"title":{},"name":{},"text":{"30":{},"31":{}},"component":{}}],["kn",{"_index":618,"title":{},"name":{"41":{}},"text":{"6":{},"17":{},"21":{},"24":{},"41":{},"57":{},"58":{},"59":{}},"component":{}}],["knativ",{"_index":120,"title":{"17":{},"24":{},"41":{},"6-11":{},"14-12":{},"16-5":{},"17-1":{},"17-2":{},"17-4":{},"17-5":{},"27-13":{},"27-14":{},"28-1":{},"41-1":{},"41-2":{},"41-3":{},"41-5":{},"51-4":{},"57-1":{},"57-3":{},"58-1":{},"58-3":{},"59-4":{}},"name":{"17":{},"24":{},"61":{}},"text":{"1":{},"2":{},"6":{},"8":{},"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"21":{},"22":{},"24":{},"27":{},"28":{},"36":{},"37":{},"41":{},"42":{},"46":{},"51":{},"54":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["knative.json",{"_index":3182,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["knative.yml",{"_index":1419,"title":{},"name":{},"text":{"17":{},"28":{},"41":{},"57":{},"58":{},"59":{}},"component":{}}],["knative/kubernet",{"_index":3026,"title":{},"name":{},"text":{"51":{}},"component":{}}],["knative:services.v1.serving.knative.dev/custom",{"_index":628,"title":{},"name":{},"text":{"6":{},"24":{}},"component":{}}],["knative:services.v1.serving.knative.dev/my_different_namespace/custom",{"_index":637,"title":{},"name":{},"text":{"6":{}},"component":{}}],["know",{"_index":720,"title":{},"name":{},"text":{"6":{},"49":{}},"component":{}}],["known",{"_index":303,"title":{"51":{}},"name":{"51":{}},"text":{"3":{},"14":{},"35":{},"45":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"60":{},"69":{}},"component":{}}],["ko.loc",{"_index":3214,"title":{},"name":{},"text":{"58":{}},"component":{}}],["kogito",{"_index":127,"title":{"6-6":{}},"name":{},"text":{"1":{},"2":{},"5":{},"6":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"38":{},"41":{},"46":{},"47":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"65":{},"66":{}},"component":{}}],["kogito.addon.messaging.emitter..buff",{"_index":1475,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.emitter..overflow",{"_index":1470,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.emitter.overflow",{"_index":1484,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.emitter.wait.buff",{"_index":1480,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.emitter.wait.overflow",{"_index":1478,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.incoming.defaultnam",{"_index":443,"title":{},"name":{},"text":{"5":{},"18":{}},"component":{}}],["kogito.addon.messaging.outgoing.defaultnam",{"_index":447,"title":{},"name":{},"text":{"5":{},"18":{}},"component":{}}],["kogito.grpc.enum.includedefault",{"_index":466,"title":{},"name":{},"text":{"5":{},"35":{}},"component":{}}],["kogito.grpc.stream.timeout",{"_index":470,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.jackson.fail",{"_index":450,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.job",{"_index":1893,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{}}],["kogito.loanbroker.aggregated.quotes.respons",{"_index":1430,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kogito.messaging.a",{"_index":442,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.persistence.optimistic.lock",{"_index":428,"title":{},"name":{},"text":{"5":{},"30":{}},"component":{}}],["kogito.persistence.optimistic.lock=tru",{"_index":2016,"title":{},"name":{},"text":{"30":{}},"component":{}}],["kogito.persistence.query.timeout.milli",{"_index":424,"title":{},"name":{},"text":{"5":{},"16":{},"30":{}},"component":{}}],["kogito.persistence.typ",{"_index":416,"title":{},"name":{},"text":{"5":{},"30":{}},"component":{}}],["kogito.persistence.type=jdbc",{"_index":2007,"title":{},"name":{},"text":{"30":{}},"component":{}}],["kogito.quarkus.events.threads.pools",{"_index":478,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.quarkus.events.threads.queues",{"_index":483,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.serverless.loanbroker.aggregated.quotes.respons",{"_index":1406,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kogito.service.url",{"_index":437,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.sw.functions..timeout",{"_index":674,"title":{},"name":{},"text":{"6":{}},"component":{}}],["kogito.sw.functions.greet.timeout=5000",{"_index":677,"title":{},"name":{},"text":{"6":{}},"component":{}}],["kogito.sw.operationidstrategi",{"_index":455,"title":{},"name":{},"text":{"5":{},"34":{}},"component":{}}],["kogito.sw.request.quot",{"_index":1428,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kogito.sw.states.foreach.outputvarnam",{"_index":462,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.swf.serviceregistri",{"_index":3409,"title":{},"name":{},"text":{"74":{}},"component":{}}],["kogito.workflow.vers",{"_index":434,"title":{},"name":{},"text":{"5":{},"30":{}},"component":{}}],["kogito.yml",{"_index":1420,"title":{},"name":{},"text":{"17":{},"28":{},"41":{}},"component":{}}],["kogito/serverless/loanbroker/aggreg",{"_index":1431,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kogito_data_index_quarkus_profil",{"_index":1244,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["kogito_incoming_stream",{"_index":446,"title":{},"name":{},"text":{"5":{},"18":{}},"component":{}}],["kogito_jobs_service_backoffretrymilli",{"_index":1888,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kogito_jobs_service_http_job_status_change_ev",{"_index":1937,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kogito_jobs_service_kafka_job_status_change_ev",{"_index":1947,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kogito_jobs_service_maxintervallimittoretrymilli",{"_index":1891,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kogito_jobs_service_url",{"_index":1974,"title":{},"name":{},"text":{"28":{}},"component":{}}],["kogito_outgoing_stream",{"_index":449,"title":{},"name":{},"text":{"5":{},"18":{}},"component":{}}],["kogito_process_instance_completed_tot",{"_index":1782,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["kogito_process_instance_completed_total{app_id=\"default",{"_index":1791,"title":{},"name":{},"text":{"25":{}},"component":{}}],["kogito_process_instance_duration_seconds_sum",{"_index":1785,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["kogito_process_instance_running_tot",{"_index":1784,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["kogito_process_instance_started_tot",{"_index":1783,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["kogitobusinesskey",{"_index":3330,"title":{},"name":{},"text":{"65":{}},"component":{}}],["kogitoprocesscontext",{"_index":583,"title":{},"name":{},"text":{"6":{}},"component":{}}],["kogitoprocid",{"_index":1532,"title":{},"name":{},"text":{"19":{}},"component":{}}],["kogitoprocinstanceid",{"_index":1048,"title":{},"name":{},"text":{"12":{},"19":{},"37":{}},"component":{}}],["kogitoprocrefid",{"_index":823,"title":{},"name":{},"text":{"8":{},"12":{},"37":{},"66":{}},"component":{}}],["kogitoproctyp",{"_index":1535,"title":{},"name":{},"text":{"19":{}},"component":{}}],["kogitoprocvers",{"_index":1533,"title":{},"name":{},"text":{"19":{}},"component":{}}],["kogitousertaskist",{"_index":1534,"title":{},"name":{},"text":{"19":{}},"component":{}}],["kogitoworkitemhandl",{"_index":738,"title":{},"name":{},"text":{"6":{}},"component":{}}],["kourier",{"_index":3136,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["ksw",{"_index":265,"title":{},"name":{},"text":{"2":{}},"component":{}}],["kubectl",{"_index":1423,"title":{},"name":{},"text":{"17":{},"24":{},"28":{},"41":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"57":{},"58":{}},"component":{}}],["kubectl=\"minikub",{"_index":3209,"title":{},"name":{},"text":{"58":{}},"component":{}}],["kubernet",{"_index":152,"title":{"57":{},"60":{},"3-1":{},"3-2":{},"47-5":{},"50-3":{},"57-1":{},"57-2":{},"57-4":{},"58-4":{},"60-1":{},"60-2":{},"60-3":{},"60-4":{},"60-5":{}},"name":{"57":{},"60":{}},"text":{"1":{},"3":{},"16":{},"17":{},"24":{},"25":{},"27":{},"28":{},"34":{},"36":{},"41":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"69":{}},"component":{}}],["kubernetes,quarku",{"_index":1412,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kubernetes/kn",{"_index":2800,"title":{},"name":{},"text":{"46":{}},"component":{}}],["kubernetes:2.16.9.fin",{"_index":3177,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["kubernetes:pods.v1//?labels=label",{"_index":3283,"title":{},"name":{},"text":{"60":{}},"component":{}}],["kubernetes_namespac",{"_index":1321,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["kubernetesservicecatalog",{"_index":225,"title":{},"name":{},"text":{"2":{}},"component":{}}],["l",{"_index":2704,"title":{},"name":{},"text":{"45":{}},"component":{}}],["l[0",{"_index":1813,"title":{},"name":{},"text":{"26":{}},"component":{}}],["l[1",{"_index":1818,"title":{},"name":{},"text":{"26":{}},"component":{}}],["l[2",{"_index":1819,"title":{},"name":{},"text":{"26":{}},"component":{}}],["label",{"_index":507,"title":{},"name":{},"text":{"5":{},"16":{},"25":{},"26":{},"48":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["label=anoth",{"_index":3282,"title":{},"name":{},"text":{"60":{}},"component":{}}],["label=oth",{"_index":3271,"title":{},"name":{},"text":{"60":{}},"component":{}}],["labels=label",{"_index":3268,"title":{},"name":{},"text":{"60":{}},"component":{}}],["lack",{"_index":2972,"title":{},"name":{},"text":{"49":{}},"component":{}}],["lang='en_us.utf",{"_index":2840,"title":{},"name":{},"text":{"47":{}},"component":{}}],["languag",{"_index":382,"title":{},"name":{},"text":{"4":{},"10":{},"11":{},"35":{},"42":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["language\":\"czech",{"_index":2375,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language\":\"english",{"_index":2373,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language\":\"english\"},{\"nam",{"_index":2381,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language\":\"spanish",{"_index":2372,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language\":\"spanish\"},{\"nam",{"_index":2380,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language='en_us:en'\\n",{"_index":2841,"title":{},"name":{},"text":{"47":{}},"component":{}}],["language=2",{"_index":2340,"title":{},"name":{},"text":{"35":{}},"component":{}}],["larg",{"_index":1488,"title":{},"name":{},"text":{"19":{}},"component":{}}],["last",{"_index":584,"title":{},"name":{},"text":{"6":{},"11":{},"27":{},"54":{},"63":{},"66":{}},"component":{}}],["later",{"_index":2207,"title":{},"name":{},"text":{"33":{},"41":{},"57":{},"58":{},"59":{},"67":{},"74":{}},"component":{}}],["latest",{"_index":619,"title":{},"name":{},"text":{"6":{},"24":{},"31":{},"41":{},"49":{},"55":{},"57":{},"58":{},"59":{},"69":{},"74":{}},"component":{}}],["latter",{"_index":790,"title":{},"name":{},"text":{"7":{},"13":{}},"component":{}}],["launch",{"_index":1178,"title":{},"name":{},"text":{"14":{},"29":{},"33":{}},"component":{}}],["layer",{"_index":1278,"title":{},"name":{},"text":{"16":{},"47":{}},"component":{}}],["lead",{"_index":3328,"title":{},"name":{},"text":{"65":{},"66":{}},"component":{}}],["leader",{"_index":1855,"title":{"27-16":{}},"name":{},"text":{"27":{}},"component":{}}],["learn",{"_index":66,"title":{},"name":{},"text":{"1":{},"3":{}},"component":{}}],["leav",{"_index":2667,"title":{},"name":{},"text":{"45":{}},"component":{}}],["left",{"_index":939,"title":{},"name":{},"text":{"10":{},"69":{}},"component":{}}],["leftel",{"_index":936,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["legaci",{"_index":710,"title":{},"name":{},"text":{"6":{}},"component":{}}],["lessthan",{"_index":1164,"title":{},"name":{},"text":{"14":{}},"component":{}}],["lessthanequ",{"_index":1165,"title":{},"name":{},"text":{"14":{}},"component":{}}],["letsgetloud",{"_index":816,"title":{},"name":{},"text":{"8":{}},"component":{}}],["letter",{"_index":1114,"title":{},"name":{},"text":{"13":{}},"component":{}}],["let’",{"_index":1548,"title":{},"name":{},"text":{"20":{},"59":{}},"component":{}}],["level",{"_index":239,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"27":{},"46":{}},"component":{}}],["leverag",{"_index":1335,"title":{},"name":{},"text":{"16":{},"21":{},"34":{},"36":{},"57":{},"58":{},"59":{}},"component":{}}],["librari",{"_index":2446,"title":{},"name":{},"text":{"38":{},"47":{}},"component":{}}],["life",{"_index":1854,"title":{"27-2":{}},"name":{},"text":{},"component":{}}],["lifetim",{"_index":2597,"title":{},"name":{},"text":{"42":{}},"component":{}}],["lightweight",{"_index":62,"title":{},"name":{},"text":{"1":{}},"component":{}}],["limit",{"_index":305,"title":{"51":{}},"name":{},"text":{"3":{},"4":{},"14":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"54":{}},"component":{}}],["line",{"_index":1422,"title":{},"name":{},"text":{"17":{},"22":{},"24":{},"31":{},"41":{},"47":{},"50":{},"55":{},"57":{},"58":{},"59":{},"64":{}},"component":{}}],["link",{"_index":1806,"title":{},"name":{},"text":{"26":{},"29":{},"31":{},"57":{},"58":{},"59":{},"63":{},"65":{},"66":{},"69":{}},"component":{}}],["link:{spec_doc_url}#ev",{"_index":349,"title":{},"name":{},"text":{"4":{}},"component":{}}],["linux",{"_index":1649,"title":{},"name":{},"text":{"21":{},"55":{}},"component":{}}],["list",{"_index":278,"title":{},"name":{},"text":{"3":{},"6":{},"14":{},"17":{},"18":{},"24":{},"26":{},"27":{},"32":{},"34":{},"41":{},"48":{},"49":{},"54":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"65":{},"66":{},"67":{},"71":{},"74":{}},"component":{}}],["listen",{"_index":499,"title":{},"name":{},"text":{"5":{},"8":{},"12":{},"16":{},"17":{},"21":{},"37":{},"38":{},"42":{}},"component":{}}],["listener\",artifactid=\"kogito",{"_index":1792,"title":{},"name":{},"text":{"25":{}},"component":{}}],["liter",{"_index":917,"title":{},"name":{},"text":{"10":{}},"component":{}}],["live",{"_index":241,"title":{},"name":{},"text":{"2":{},"21":{},"67":{}},"component":{}}],["livenessprob",{"_index":3192,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["load",{"_index":3158,"title":{"74-5":{}},"name":{},"text":{"57":{},"58":{},"59":{},"68":{},"72":{},"74":{}},"component":{}}],["loadbalanc",{"_index":3225,"title":{},"name":{},"text":{"58":{}},"component":{}}],["loanbrok",{"_index":1434,"title":{},"name":{},"text":{"17":{}},"component":{}}],["local",{"_index":315,"title":{"59-1":{}},"name":{},"text":{"3":{},"17":{},"21":{},"22":{},"27":{},"41":{},"47":{},"50":{},"58":{},"59":{},"68":{},"74":{}},"component":{}}],["local/curl",{"_index":1405,"title":{},"name":{},"text":{"17":{}},"component":{}}],["local/quarku",{"_index":3329,"title":{},"name":{},"text":{"65":{},"66":{}},"component":{}}],["localhost:5000",{"_index":2993,"title":{},"name":{},"text":{"50":{}},"component":{}}],["localhost:8080",{"_index":1562,"title":{},"name":{},"text":{"20":{},"25":{}},"component":{}}],["localhost:9092",{"_index":1551,"title":{},"name":{},"text":{"20":{},"27":{}},"component":{}}],["locat",{"_index":1550,"title":{},"name":{},"text":{"20":{},"25":{},"28":{},"31":{},"33":{},"35":{},"36":{},"53":{}},"component":{}}],["lock",{"_index":432,"title":{},"name":{},"text":{"5":{},"30":{},"33":{}},"component":{}}],["log",{"_index":237,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"21":{},"23":{},"38":{},"41":{},"45":{},"47":{},"49":{},"50":{},"54":{},"59":{},"60":{},"69":{},"74":{}},"component":{}}],["logger",{"_index":491,"title":{},"name":{},"text":{"5":{}},"component":{}}],["logger.info(\"about",{"_index":2437,"title":{},"name":{},"text":{"37":{}},"component":{}}],["logic",{"_index":104,"title":{"67":{},"68":{},"69":{},"70":{},"68-1":{},"69-2":{},"70-1":{}},"name":{"67":{},"68":{},"69":{},"70":{},"71":{}},"text":{"1":{},"6":{},"13":{},"22":{},"43":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{}},"component":{}}],["login",{"_index":2558,"title":{},"name":{},"text":{"41":{},"47":{},"59":{},"69":{},"74":{}},"component":{}}],["loginfo",{"_index":519,"title":{},"name":{},"text":{"6":{}},"component":{}}],["logist",{"_index":2674,"title":{},"name":{},"text":{"45":{}},"component":{}}],["logrout",{"_index":1734,"title":{},"name":{},"text":{"23":{}},"component":{}}],["logroutereplacehead",{"_index":1738,"title":{},"name":{},"text":{"23":{}},"component":{}}],["long",{"_index":426,"title":{},"name":{},"text":{"5":{},"6":{},"9":{},"16":{},"27":{},"30":{},"49":{},"62":{}},"component":{}}],["look",{"_index":291,"title":{},"name":{},"text":{"3":{},"6":{},"49":{},"57":{},"60":{},"65":{}},"component":{}}],["lookup",{"_index":1822,"title":{},"name":{},"text":{"26":{}},"component":{}}],["loop",{"_index":464,"title":{},"name":{},"text":{"5":{},"58":{}},"component":{}}],["lost",{"_index":1542,"title":{},"name":{},"text":{"19":{},"27":{}},"component":{}}],["low",{"_index":2801,"title":{},"name":{},"text":{"46":{}},"component":{}}],["m1",{"_index":3234,"title":{},"name":{},"text":{"59":{}},"component":{}}],["mac",{"_index":2520,"title":{},"name":{},"text":{"41":{},"58":{},"59":{}},"component":{}}],["machin",{"_index":2988,"title":{},"name":{},"text":{"50":{},"58":{}},"component":{}}],["maco",{"_index":3363,"title":{},"name":{},"text":{"69":{}},"component":{}}],["made",{"_index":1869,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["magic",{"_index":3145,"title":{},"name":{},"text":{"57":{}},"component":{}}],["main",{"_index":1332,"title":{},"name":{},"text":{"16":{},"21":{},"27":{},"38":{},"55":{},"73":{},"74":{}},"component":{}}],["mainten",{"_index":1269,"title":{},"name":{},"text":{"15":{}},"component":{}}],["major",{"_index":3012,"title":{},"name":{},"text":{"50":{}},"component":{}}],["make",{"_index":881,"title":{},"name":{},"text":{"9":{},"14":{},"20":{},"27":{},"30":{},"37":{},"47":{},"49":{},"53":{},"54":{},"57":{},"59":{},"60":{},"66":{},"72":{},"73":{},"74":{}},"component":{}}],["manag",{"_index":67,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"5":{},"12":{},"14":{},"15":{},"16":{},"18":{},"22":{},"27":{},"28":{},"32":{},"33":{},"41":{},"45":{},"50":{},"51":{},"54":{},"58":{},"64":{},"66":{},"71":{}},"component":{}}],["mandatori",{"_index":647,"title":{},"name":{},"text":{"6":{},"11":{},"18":{},"31":{}},"component":{}}],["mani",{"_index":1476,"title":{},"name":{},"text":{"18":{},"34":{},"53":{},"54":{}},"component":{}}],["manipul",{"_index":81,"title":{},"name":{},"text":{"1":{},"4":{}},"component":{}}],["manner",{"_index":988,"title":{},"name":{},"text":{"11":{}},"component":{}}],["mantra",{"_index":1574,"title":{},"name":{},"text":{"21":{}},"component":{}}],["manual",{"_index":283,"title":{"17-3":{},"31-4":{},"50-5":{}},"name":{},"text":{"3":{},"17":{},"25":{},"27":{},"28":{},"30":{},"31":{},"35":{},"57":{},"58":{},"59":{},"65":{}},"component":{}}],["map",{"_index":705,"title":{"18-2":{}},"name":{},"text":{"6":{},"11":{},"12":{},"18":{},"26":{},"32":{},"34":{},"35":{},"36":{},"42":{},"43":{},"47":{},"53":{}},"component":{}}],["map.of(\"quarkus.rest",{"_index":2646,"title":{},"name":{},"text":{"43":{}},"component":{}}],["mappingbuild",{"_index":2600,"title":{},"name":{},"text":{"42":{}},"component":{}}],["marketplac",{"_index":3398,"title":{},"name":{},"text":{"74":{}},"component":{}}],["marshal",{"_index":1448,"title":{},"name":{},"text":{"18":{}},"component":{}}],["match",{"_index":373,"title":{"8-1":{}},"name":{},"text":{"4":{},"6":{},"7":{},"8":{},"9":{},"11":{},"12":{},"15":{},"16":{},"18":{},"19":{},"25":{},"32":{},"42":{},"65":{},"74":{}},"component":{}}],["matcher",{"_index":985,"title":{},"name":{},"text":{"11":{}},"component":{}}],["matchlabel",{"_index":1314,"title":{},"name":{},"text":{"16":{},"25":{},"27":{}},"component":{}}],["matter",{"_index":2315,"title":{},"name":{},"text":{"34":{},"60":{}},"component":{}}],["maven",{"_index":532,"title":{},"name":{},"text":{"6":{},"17":{},"18":{},"21":{},"23":{},"28":{},"29":{},"30":{},"33":{},"35":{},"38":{},"41":{},"42":{},"46":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["maven.hom",{"_index":1985,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["max",{"_index":945,"title":{},"name":{},"text":{"10":{}},"component":{}}],["max.x",{"_index":958,"title":{},"name":{},"text":{"10":{}},"component":{}}],["max_by(.x",{"_index":946,"title":{},"name":{},"text":{"10":{}},"component":{}}],["maxact",{"_index":956,"title":{},"name":{},"text":{"10":{}},"component":{}}],["maximum",{"_index":480,"title":{},"name":{},"text":{"5":{},"9":{},"10":{},"27":{},"46":{}},"component":{}}],["md5",{"_index":1918,"title":{},"name":{},"text":{"27":{}},"component":{}}],["mean",{"_index":340,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"11":{},"13":{},"18":{},"19":{},"27":{},"30":{},"31":{},"32":{},"35":{},"38":{},"48":{},"49":{},"53":{},"59":{}},"component":{}}],["mechan",{"_index":679,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"15":{},"19":{},"26":{},"27":{},"31":{},"37":{},"45":{},"65":{}},"component":{}}],["memori",{"_index":1333,"title":{},"name":{},"text":{"16":{},"17":{},"19":{},"27":{},"47":{},"50":{},"52":{}},"component":{}}],["mention",{"_index":1454,"title":{},"name":{},"text":{"18":{},"25":{},"26":{},"30":{},"37":{},"58":{},"59":{}},"component":{}}],["menu",{"_index":3342,"title":{},"name":{},"text":{"67":{},"71":{},"74":{}},"component":{}}],["merg",{"_index":570,"title":{},"name":{},"text":{"6":{},"10":{},"23":{},"33":{},"35":{},"46":{},"68":{}},"component":{}}],["messag",{"_index":257,"title":{"27-15":{},"28-2":{}},"name":{},"text":{"2":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"21":{},"23":{},"24":{},"26":{},"27":{},"28":{},"35":{},"37":{},"38":{},"46":{},"47":{},"49":{},"54":{},"59":{},"65":{},"66":{},"67":{},"69":{},"71":{},"72":{}},"component":{}}],["message\":\"hello",{"_index":2383,"title":{},"name":{},"text":{"35":{}},"component":{}}],["message\":\"saludo",{"_index":2377,"title":{},"name":{},"text":{"35":{}},"component":{}}],["met",{"_index":1861,"title":{},"name":{},"text":{"27":{}},"component":{}}],["metadata",{"_index":668,"title":{},"name":{},"text":{"6":{},"14":{},"16":{},"17":{},"25":{},"27":{},"30":{},"47":{},"48":{},"49":{},"52":{},"53":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["metadata.get(oper",{"_index":747,"title":{},"name":{},"text":{"6":{}},"component":{}}],["metadata.getordefault(port",{"_index":751,"title":{},"name":{},"text":{"6":{}},"component":{}}],["metadata.namespac",{"_index":1325,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["metdata",{"_index":1847,"title":{},"name":{},"text":{"26":{}},"component":{}}],["method",{"_index":51,"title":{},"name":{},"text":{"1":{},"6":{},"11":{},"12":{},"26":{},"33":{},"35":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"48":{},"50":{},"51":{},"65":{},"66":{},"72":{},"74":{}},"component":{}}],["metric",{"_index":157,"title":{"25":{},"25-1":{},"25-2":{},"25-3":{},"25-4":{},"25-5":{},"26-2":{}},"name":{"25":{}},"text":{"1":{},"21":{},"23":{},"25":{},"26":{},"50":{},"67":{}},"component":{}}],["metrics_path",{"_index":1778,"title":{},"name":{},"text":{"25":{}},"component":{}}],["micoprofil",{"_index":2280,"title":{},"name":{},"text":{"34":{}},"component":{}}],["micromet",{"_index":1773,"title":{},"name":{},"text":{"25":{}},"component":{}}],["microprofil",{"_index":2070,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{}}],["microservic",{"_index":2665,"title":{},"name":{},"text":{"45":{}},"component":{}}],["migrat",{"_index":146,"title":{"31":{},"52":{},"31-1":{},"31-2":{},"31-3":{},"31-5":{},"31-8":{}},"name":{"31":{},"52":{}},"text":{"1":{},"3":{},"14":{},"16":{},"30":{},"31":{},"52":{}},"component":{}}],["migrate=tru",{"_index":2046,"title":{},"name":{},"text":{"31":{}},"component":{}}],["migrations,s3:migrationsbucket,gcs:migrationsbucket",{"_index":2039,"title":{},"name":{},"text":{"31":{}},"component":{}}],["millisecond",{"_index":678,"title":{},"name":{},"text":{"6":{},"27":{}},"component":{}}],["min",{"_index":947,"title":{},"name":{},"text":{"10":{}},"component":{}}],["min_by(.i",{"_index":948,"title":{},"name":{},"text":{"10":{}},"component":{}}],["mind",{"_index":285,"title":{},"name":{},"text":{"3":{}},"component":{}}],["minifi",{"_index":3142,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["minikub",{"_index":314,"title":{"58":{},"50-6":{},"58-1":{},"58-2":{}},"name":{"58":{}},"text":{"3":{},"16":{},"21":{},"24":{},"47":{},"49":{},"50":{},"51":{},"55":{},"58":{}},"component":{}}],["minikube’",{"_index":3227,"title":{},"name":{},"text":{"58":{}},"component":{}}],["minim",{"_index":2538,"title":{},"name":{},"text":{"41":{}},"component":{}}],["minimum",{"_index":954,"title":{},"name":{},"text":{"10":{},"13":{},"54":{}},"component":{}}],["minor",{"_index":3013,"title":{},"name":{},"text":{"50":{}},"component":{}}],["minu",{"_index":714,"title":{},"name":{},"text":{"6":{}},"component":{}}],["minut",{"_index":845,"title":{},"name":{},"text":{"9":{},"67":{}},"component":{}}],["mislead",{"_index":402,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["miss",{"_index":238,"title":{},"name":{},"text":{"2":{},"31":{},"49":{}},"component":{}}],["mistak",{"_index":2052,"title":{},"name":{},"text":{"31":{}},"component":{}}],["mock",{"_index":132,"title":{"42":{},"43":{},"43-1":{}},"name":{"42":{},"43":{}},"text":{"1":{},"17":{},"38":{},"42":{},"43":{}},"component":{}}],["modal",{"_index":3343,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{}}],["mode",{"_index":493,"title":{"34-6":{},"34-7":{}},"name":{},"text":{"5":{},"9":{},"13":{},"14":{},"15":{},"16":{},"21":{},"26":{},"27":{},"28":{},"29":{},"34":{},"42":{},"47":{},"49":{},"51":{},"66":{},"70":{},"72":{}},"component":{}}],["model",{"_index":293,"title":{"70-1":{}},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"10":{},"11":{},"12":{},"35":{},"70":{}},"component":{}}],["modif",{"_index":2973,"title":{},"name":{},"text":{"49":{}},"component":{}}],["modifi",{"_index":567,"title":{},"name":{},"text":{"6":{},"12":{},"14":{},"26":{},"63":{}},"component":{}}],["modul",{"_index":246,"title":{},"name":{},"text":{"2":{},"4":{},"6":{}},"component":{}}],["modular",{"_index":258,"title":{},"name":{},"text":{"2":{}},"component":{}}],["moment",{"_index":1494,"title":{},"name":{},"text":{"19":{},"20":{},"23":{},"49":{}},"component":{}}],["mongodb",{"_index":419,"title":{},"name":{},"text":{"5":{},"14":{},"15":{}},"component":{}}],["monitor",{"_index":1763,"title":{"62":{}},"name":{"62":{}},"text":{"25":{},"26":{},"62":{},"64":{},"66":{},"69":{}},"component":{}}],["monitor.yaml",{"_index":1766,"title":{},"name":{},"text":{"25":{}},"component":{}}],["monitoring.coreos.com/v1",{"_index":1767,"title":{},"name":{},"text":{"25":{}},"component":{}}],["more",{"_index":36,"title":{"31-8":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"49":{},"50":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"72":{},"74":{}},"component":{}}],["move",{"_index":244,"title":{},"name":{},"text":{"2":{},"9":{},"10":{},"12":{},"37":{},"46":{},"68":{},"69":{}},"component":{}}],["mp.messaging.[incoming|outgo",{"_index":1446,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.emitter.default",{"_index":1483,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming..path",{"_index":1381,"title":{},"name":{},"text":{"17":{}},"component":{}}],["mp.messaging.incoming.kogito",{"_index":1957,"title":{},"name":{},"text":{"27":{}},"component":{}}],["mp.messaging.incoming.kogito_incoming_stream.connector=smallry",{"_index":1461,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming.kogito_incoming_stream.path",{"_index":1380,"title":{},"name":{},"text":{"17":{}},"component":{}}],["mp.messaging.incoming.kogito_incoming_stream.topic=applic",{"_index":1462,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming.kogito_incoming_stream.value.deserializer=org.apache.kafka.common.serialization.stringdeseri",{"_index":1463,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming.wait.connector=quarku",{"_index":2444,"title":{},"name":{},"text":{"37":{}},"component":{}}],["mp.messaging.incoming.wait.connector=smallry",{"_index":1456,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming.wait.path=/wait",{"_index":2445,"title":{},"name":{},"text":{"37":{}},"component":{}}],["mp.messaging.incoming.wait.value.deserializer=org.apache.kafka.common.serialization.stringdeseri",{"_index":1457,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.kogito",{"_index":1256,"title":{},"name":{},"text":{"14":{},"16":{},"27":{},"28":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.connector",{"_index":1364,"title":{},"name":{},"text":{"17":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.connector=smallry",{"_index":1464,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.topic=decis",{"_index":1465,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.url",{"_index":1362,"title":{},"name":{},"text":{"17":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.url=http://0.0.0.0:8181",{"_index":2603,"title":{},"name":{},"text":{"42":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.value.serializer=org.apache.kafka.common.serialization.stringseri",{"_index":1466,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.resume.connector=smallry",{"_index":1458,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.resume.value.serializer=org.apache.kafka.common.serialization.stringseri",{"_index":1459,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp_messaging_incoming_kogito_job_service_job_request_events_v2_top",{"_index":1951,"title":{},"name":{},"text":{"27":{}},"component":{}}],["mp_messaging_outgoing_kogito_job_service_job_status_events_top",{"_index":1953,"title":{},"name":{},"text":{"27":{}},"component":{}}],["much",{"_index":3310,"title":{},"name":{},"text":{"62":{}},"component":{}}],["multipl",{"_index":814,"title":{},"name":{},"text":{"8":{},"14":{},"16":{},"17":{},"19":{},"36":{},"41":{},"60":{}},"component":{}}],["multipli",{"_index":715,"title":{},"name":{},"text":{"6":{},"36":{}},"component":{}}],["multiplicationoper",{"_index":2405,"title":{},"name":{},"text":{"36":{}},"component":{}}],["multiplyvalu",{"_index":2408,"title":{},"name":{},"text":{"36":{}},"component":{}}],["mutat",{"_index":1118,"title":{},"name":{},"text":{"14":{}},"component":{}}],["mvn",{"_index":1093,"title":{},"name":{},"text":{"13":{},"17":{},"21":{},"28":{},"29":{},"33":{},"34":{},"35":{},"38":{},"42":{}},"component":{}}],["mxn",{"_index":2231,"title":{},"name":{},"text":{"33":{}},"component":{}}],["my.body.data",{"_index":602,"title":{},"name":{},"text":{"6":{}},"component":{}}],["my.other.valu",{"_index":606,"title":{},"name":{},"text":{"6":{}},"component":{}}],["my.properties.key",{"_index":2929,"title":{},"name":{},"text":{"48":{}},"component":{}}],["my.valu",{"_index":604,"title":{},"name":{},"text":{"6":{}},"component":{}}],["my_different_namespac",{"_index":638,"title":{},"name":{},"text":{"6":{}},"component":{}}],["my_key",{"_index":2091,"title":{},"name":{},"text":{"32":{}},"component":{}}],["mycamelendpoint",{"_index":590,"title":{},"name":{},"text":{"6":{}},"component":{}}],["myendpoint",{"_index":594,"title":{},"name":{},"text":{"6":{}},"component":{}}],["myfunct",{"_index":534,"title":{},"name":{},"text":{"6":{},"34":{}},"component":{}}],["myheadernam",{"_index":2124,"title":{},"name":{},"text":{"32":{}},"component":{}}],["myinterfaceorclass",{"_index":550,"title":{},"name":{},"text":{"6":{}},"component":{}}],["mymethod",{"_index":543,"title":{},"name":{},"text":{"6":{}},"component":{}}],["mymethod(int",{"_index":552,"title":{},"name":{},"text":{"6":{}},"component":{}}],["mymethod(jsonnod",{"_index":564,"title":{},"name":{},"text":{"6":{}},"component":{}}],["myopenapifile.yaml",{"_index":2389,"title":{},"name":{},"text":{"36":{}},"component":{}}],["mystat",{"_index":525,"title":{},"name":{},"text":{"6":{}},"component":{}}],["myworkflow",{"_index":389,"title":{},"name":{},"text":{"4":{},"34":{}},"component":{}}],["myworkflow_myfunct",{"_index":2263,"title":{},"name":{},"text":{"34":{}},"component":{}}],["n",{"_index":375,"title":{},"name":{},"text":{"4":{},"41":{},"47":{},"49":{},"50":{},"53":{},"54":{},"57":{},"59":{}},"component":{}}],["name",{"_index":391,"title":{"27-6":{}},"name":{},"text":{"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["name\":\"javierito",{"_index":1568,"title":{},"name":{},"text":{"20":{}},"component":{}}],["name\":\"myfunction1",{"_index":2384,"title":{},"name":{},"text":{"36":{}},"component":{}}],["name\":\"process",{"_index":2695,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"processpay",{"_index":2678,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"processpaymentact",{"_index":2680,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"reserv",{"_index":2693,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"reservestock",{"_index":2699,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"ship",{"_index":2696,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name/port",{"_index":1911,"title":{},"name":{},"text":{"27":{}},"component":{}}],["name=[http_header_nam",{"_index":2121,"title":{},"name":{},"text":{"32":{}},"component":{}}],["name=label",{"_index":3269,"title":{},"name":{},"text":{"60":{}},"component":{}}],["name=myheadernam",{"_index":2123,"title":{},"name":{},"text":{"32":{}},"component":{}}],["name=namevalue;anoth",{"_index":3281,"title":{},"name":{},"text":{"60":{}},"component":{}}],["name=test",{"_index":3284,"title":{},"name":{},"text":{"60":{}},"component":{}}],["name={port_nam",{"_index":3267,"title":{},"name":{},"text":{"60":{}},"component":{}}],["name_oper",{"_index":3421,"title":{},"name":{},"text":{"74":{}},"component":{}}],["name_vers",{"_index":3422,"title":{},"name":{},"text":{"74":{}},"component":{}}],["namespac",{"_index":513,"title":{"6-13":{},"47-6":{}},"name":{},"text":{"6":{},"17":{},"25":{},"47":{},"48":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"69":{}},"component":{}}],["namespace/project",{"_index":3085,"title":{},"name":{},"text":{"55":{}},"component":{}}],["namespace=serverless",{"_index":3141,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["namespace=workflow",{"_index":2875,"title":{},"name":{},"text":{"47":{}},"component":{}}],["nan",{"_index":1820,"title":{},"name":{},"text":{"26":{}},"component":{}}],["narayana",{"_index":1698,"title":{},"name":{},"text":{"21":{}},"component":{}}],["nativ",{"_index":23,"title":{"55-3":{}},"name":{},"text":{"1":{},"3":{},"4":{},"6":{},"29":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["natur",{"_index":975,"title":{},"name":{},"text":{"11":{}},"component":{}}],["navig",{"_index":2210,"title":{},"name":{},"text":{"33":{},"35":{},"46":{},"55":{},"63":{},"65":{},"66":{},"74":{}},"component":{}}],["necess",{"_index":2540,"title":{},"name":{},"text":{"41":{}},"component":{}}],["necessari",{"_index":901,"title":{},"name":{},"text":{"9":{},"14":{},"31":{},"36":{}},"component":{}}],["need",{"_index":439,"title":{},"name":{},"text":{"5":{},"6":{},"9":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"21":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"50":{},"51":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"68":{},"69":{},"70":{},"74":{}},"component":{}}],["nest",{"_index":2740,"title":{},"name":{},"text":{"45":{}},"component":{}}],["net",{"_index":2051,"title":{},"name":{},"text":{"31":{},"36":{},"57":{}},"component":{}}],["network",{"_index":2348,"title":{},"name":{},"text":{"35":{},"60":{}},"component":{}}],["networking.k8s.io",{"_index":3289,"title":{},"name":{},"text":{"60":{}},"component":{}}],["never",{"_index":3216,"title":{},"name":{},"text":{"58":{}},"component":{}}],["new",{"_index":183,"title":{"2":{},"49-2":{},"65-2":{},"65-3":{},"65-6":{}},"name":{},"text":{"2":{},"3":{},"6":{},"8":{},"9":{},"12":{},"14":{},"15":{},"19":{},"21":{},"23":{},"27":{},"30":{},"31":{},"33":{},"37":{},"41":{},"42":{},"43":{},"45":{},"47":{},"49":{},"50":{},"53":{},"54":{},"59":{},"65":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["newaccountev",{"_index":1495,"title":{},"name":{},"text":{"19":{}},"component":{}}],["newaccounteventtyp",{"_index":1496,"title":{},"name":{},"text":{"19":{}},"component":{}}],["newli",{"_index":3076,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{},"65":{},"66":{}},"component":{}}],["next",{"_index":861,"title":{},"name":{},"text":{"9":{},"12":{},"21":{},"24":{},"27":{},"33":{},"37":{},"45":{},"46":{},"54":{},"57":{},"58":{},"59":{},"65":{},"66":{},"74":{}},"component":{}}],["nfrom",{"_index":2837,"title":{},"name":{},"text":{"47":{}},"component":{}}],["nightli",{"_index":2815,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["nightly:1.41.0",{"_index":3010,"title":{},"name":{},"text":{"50":{}},"component":{}}],["nightly:latest",{"_index":1876,"title":{},"name":{},"text":{"27":{},"47":{}},"component":{}}],["node",{"_index":569,"title":{},"name":{},"text":{"6":{},"14":{},"35":{},"66":{}},"component":{}}],["node.workname(name).metadata(oper",{"_index":736,"title":{},"name":{},"text":{"6":{}},"component":{}}],["nodedefinit",{"_index":1187,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeid",{"_index":1201,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeid:\"_b8c4f63c",{"_index":1209,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinst",{"_index":1202,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstancecancel",{"_index":1222,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstanceid",{"_index":1215,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstanceid:\"01756ba2",{"_index":1217,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstanceretrigg",{"_index":1216,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstancetrigg",{"_index":1203,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeport",{"_index":2909,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["noisi",{"_index":807,"title":{},"name":{},"text":{"8":{}},"component":{}}],["noisyev",{"_index":809,"title":{},"name":{},"text":{"8":{}},"component":{}}],["non",{"_index":686,"title":{},"name":{},"text":{"6":{},"18":{},"19":{},"32":{}},"component":{}}],["none",{"_index":1472,"title":{},"name":{},"text":{"18":{},"46":{},"74":{}},"component":{}}],["normal",{"_index":1739,"title":{},"name":{},"text":{"23":{},"34":{},"35":{},"53":{},"54":{}},"component":{}}],["notabl",{"_index":180,"title":{"2-1":{}},"name":{},"text":{},"component":{}}],["notat",{"_index":1177,"title":{},"name":{},"text":{"14":{}},"component":{}}],["notcareaboutnois",{"_index":818,"title":{},"name":{},"text":{"8":{}},"component":{}}],["note",{"_index":636,"title":{},"name":{},"text":{"6":{},"11":{},"12":{},"13":{},"17":{},"18":{},"21":{},"26":{},"32":{},"34":{},"36":{},"37":{},"48":{},"53":{},"55":{},"59":{}},"component":{}}],["notic",{"_index":3248,"title":{},"name":{},"text":{"59":{}},"component":{}}],["notif",{"_index":3326,"title":{},"name":{},"text":{"65":{},"66":{},"74":{}},"component":{}}],["notifi",{"_index":1862,"title":{},"name":{},"text":{"27":{},"37":{},"46":{}},"component":{}}],["notus",{"_index":2402,"title":{},"name":{},"text":{"36":{}},"component":{}}],["now",{"_index":282,"title":{},"name":{},"text":{"3":{},"31":{},"47":{},"49":{},"53":{},"59":{}},"component":{}}],["npm",{"_index":1804,"title":{},"name":{},"text":{"26":{}},"component":{}}],["null",{"_index":748,"title":{},"name":{},"text":{"6":{},"19":{},"26":{},"33":{},"42":{},"43":{},"57":{},"58":{},"59":{}},"component":{}}],["number",{"_index":471,"title":{},"name":{},"text":{"5":{},"6":{},"10":{},"11":{},"13":{},"17":{},"26":{},"33":{},"36":{},"43":{},"46":{},"64":{}},"component":{}}],["numbertyp",{"_index":1010,"title":{},"name":{},"text":{"11":{}},"component":{}}],["numcomplet",{"_index":1107,"title":{},"name":{},"text":{"13":{}},"component":{}}],["numer",{"_index":1161,"title":{},"name":{},"text":{"14":{}},"component":{}}],["o",{"_index":2964,"title":{},"name":{},"text":{"49":{},"50":{},"54":{},"57":{},"58":{}},"component":{}}],["oauth",{"_index":124,"title":{"33":{},"32-5":{},"33-1":{}},"name":{},"text":{"1":{},"32":{},"33":{}},"component":{}}],["oauth2",{"_index":126,"title":{"33-2":{}},"name":{"33":{}},"text":{"1":{},"32":{},"33":{}},"component":{}}],["oauth_exampl",{"_index":2101,"title":{},"name":{},"text":{"32":{}},"component":{}}],["object",{"_index":310,"title":{"6-15":{},"17-4":{}},"name":{},"text":{"3":{},"6":{},"7":{},"10":{},"11":{},"17":{},"23":{},"32":{},"33":{},"35":{},"36":{},"47":{},"48":{},"54":{},"57":{},"58":{},"59":{},"60":{},"74":{}},"component":{}}],["objectmapp",{"_index":2578,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["objectmapper.readtree(countryserviceworkflowtest.class.getresourceasstream(\"/country_mock_feature_a.json",{"_index":2661,"title":{},"name":{},"text":{"43":{}},"component":{}}],["objectmapper.readtree(getclass().getresourceasstream(\"/country_mock.json",{"_index":2622,"title":{},"name":{},"text":{"43":{}},"component":{}}],["objectmapper.writevalueasstring(cloudeventbuilder.v1",{"_index":1037,"title":{},"name":{},"text":{"12":{}},"component":{}}],["observ",{"_index":3053,"title":{},"name":{},"text":{"54":{}},"component":{}}],["observedgener",{"_index":3056,"title":{},"name":{},"text":{"54":{}},"component":{}}],["obtain",{"_index":760,"title":{},"name":{},"text":{"6":{},"35":{},"69":{}},"component":{}}],["oc",{"_index":1772,"title":{},"name":{},"text":{"25":{},"47":{},"59":{},"69":{}},"component":{}}],["occur",{"_index":571,"title":{},"name":{},"text":{"6":{},"8":{},"10":{},"11":{},"45":{},"49":{}},"component":{}}],["occurr",{"_index":2244,"title":{},"name":{},"text":{"33":{}},"component":{}}],["odata",{"_index":363,"title":{},"name":{},"text":{"4":{}},"component":{}}],["odd",{"_index":1001,"title":{},"name":{},"text":{"11":{}},"component":{}}],["oer",{"_index":2443,"title":{},"name":{},"text":{"37":{}},"component":{}}],["offer",{"_index":3210,"title":{},"name":{},"text":{"58":{}},"component":{}}],["offset",{"_index":1173,"title":{},"name":{},"text":{"14":{}},"component":{}}],["oidc",{"_index":1700,"title":{},"name":{},"text":{"21":{},"32":{},"33":{}},"component":{}}],["oidcclient",{"_index":2100,"title":{},"name":{},"text":{"32":{}},"component":{}}],["ok",{"_index":626,"title":{},"name":{},"text":{"6":{},"24":{},"32":{},"33":{},"36":{},"57":{},"58":{},"59":{}},"component":{}}],["okhttp",{"_index":3300,"title":{},"name":{},"text":{"60":{}},"component":{}}],["olm",{"_index":2986,"title":{},"name":{},"text":{"50":{}},"component":{}}],["olm’",{"_index":2984,"title":{},"name":{},"text":{"50":{}},"component":{}}],["omit",{"_index":2387,"title":{},"name":{},"text":{"36":{}},"component":{}}],["on",{"_index":224,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"8":{},"9":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"24":{},"26":{},"27":{},"30":{},"31":{},"32":{},"35":{},"36":{},"41":{},"43":{},"46":{},"47":{},"48":{},"49":{},"53":{},"57":{},"58":{},"59":{},"60":{},"67":{},"70":{},"72":{},"74":{}},"component":{}}],["onc",{"_index":849,"title":{},"name":{},"text":{"9":{},"10":{},"12":{},"15":{},"16":{},"19":{},"20":{},"21":{},"23":{},"29":{},"30":{},"33":{},"35":{},"36":{},"37":{},"42":{},"43":{},"45":{},"49":{},"50":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"74":{}},"component":{}}],["onerror",{"_index":872,"title":{},"name":{},"text":{"9":{},"11":{},"33":{},"45":{},"46":{}},"component":{}}],["onev",{"_index":802,"title":{},"name":{},"text":{"8":{},"9":{},"19":{},"46":{}},"component":{}}],["onevent(messag",{"_index":1052,"title":{},"name":{},"text":{"12":{}},"component":{}}],["onlin",{"_index":1716,"title":{},"name":{},"text":{"22":{},"63":{},"69":{}},"component":{}}],["onoverflow",{"_index":1439,"title":{"18-3":{}},"name":{},"text":{"18":{}},"component":{}}],["open",{"_index":457,"title":{"66-1":{}},"name":{},"text":{"5":{},"32":{},"41":{},"43":{},"49":{},"58":{},"67":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["openapi",{"_index":112,"title":{"32":{},"34":{},"36":{},"37":{},"43":{},"32-1":{},"34-3":{},"36-1":{},"36-2":{},"36-3":{},"36-5":{},"37-1":{},"43-1":{},"74-5":{}},"name":{"32":{},"34":{},"36":{},"37":{},"43":{}},"text":{"1":{},"2":{},"7":{},"10":{},"11":{},"21":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"53":{},"60":{},"67":{},"71":{},"74":{}},"component":{}}],["openapi.json",{"_index":3047,"title":{},"name":{},"text":{"53":{}},"component":{}}],["openapi.json#iswinn",{"_index":3040,"title":{},"name":{},"text":{"53":{}},"component":{}}],["openapi/async",{"_index":44,"title":{},"name":{},"text":{"1":{}},"component":{}}],["openapi/stock",{"_index":2289,"title":{},"name":{},"text":{"34":{}},"component":{}}],["openid",{"_index":2099,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["openshift",{"_index":313,"title":{"59":{},"69":{},"71":{},"25-3":{},"47-9":{},"50-1":{},"59-1":{},"59-2":{},"59-5":{},"69-2":{},"71-1":{},"71-2":{}},"name":{"59":{},"69":{}},"text":{"3":{},"25":{},"47":{},"49":{},"50":{},"51":{},"55":{},"59":{},"60":{},"67":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["openshift1.43.0.fin",{"_index":3180,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["openshift:2.16.9.fin",{"_index":3253,"title":{},"name":{},"text":{"59":{}},"component":{}}],["openshift_registry_url",{"_index":3238,"title":{},"name":{},"text":{"59":{}},"component":{}}],["openshift_registry_url/kogito",{"_index":3245,"title":{},"name":{},"text":{"59":{}},"component":{}}],["openshift_registry_url=$(oc",{"_index":3240,"title":{},"name":{},"text":{"59":{}},"component":{}}],["openshift’",{"_index":2980,"title":{"59-3":{}},"name":{},"text":{"50":{},"59":{}},"component":{}}],["oper",{"_index":188,"title":{"47":{},"49":{},"50":{},"51":{},"3-1":{},"9-7":{},"46-5":{},"47-8":{},"50-1":{},"50-3":{},"50-5":{}},"name":{"50":{}},"text":{"2":{},"3":{},"4":{},"6":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"20":{},"23":{},"24":{},"25":{},"27":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"59":{},"67":{},"69":{},"74":{}},"component":{}}],["operation\":\"classpath:/myopenapi",{"_index":2385,"title":{},"name":{},"text":{"36":{}},"component":{}}],["operation\":\"service:org.kie.kogito.paymentservice::processpay",{"_index":2701,"title":{},"name":{},"text":{"45":{}},"component":{}}],["operation1",{"_index":2273,"title":{},"name":{},"text":{"34":{}},"component":{}}],["operation2",{"_index":2275,"title":{},"name":{},"text":{"34":{}},"component":{}}],["operationid",{"_index":746,"title":{},"name":{},"text":{"6":{},"20":{},"32":{},"33":{},"36":{}},"component":{}}],["operationid.valueof(operationid.touppercas",{"_index":753,"title":{},"name":{},"text":{"6":{}},"component":{}}],["operator/.x/operator.yaml",{"_index":3017,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operator/main/operator.yaml",{"_index":3018,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operator/v1.43.0/config/samples/sw.kogito_v1alpha08_sonataflow_devmode.yaml",{"_index":2946,"title":{},"name":{},"text":{"49":{}},"component":{}}],["operator/v1.43.0/operator.yaml",{"_index":2997,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operator/v1.43.0/test/testdata/sw.kogito_v1alpha08_sonataflow_devmode.yaml",{"_index":2940,"title":{},"name":{},"text":{"49":{}},"component":{}}],["operatorhub",{"_index":216,"title":{},"name":{},"text":{"2":{},"50":{}},"component":{}}],["operatorhub.io",{"_index":2982,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operatorhub’",{"_index":2983,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operator’",{"_index":2823,"title":{},"name":{},"text":{"47":{},"50":{}},"component":{}}],["opt",{"_index":281,"title":{},"name":{},"text":{"3":{},"31":{}},"component":{}}],["optim",{"_index":2134,"title":{},"name":{},"text":{"33":{},"41":{}},"component":{}}],["optimist",{"_index":431,"title":{},"name":{},"text":{"5":{},"30":{}},"component":{}}],["option",{"_index":46,"title":{},"name":{},"text":{"1":{},"3":{},"5":{},"6":{},"7":{},"11":{},"12":{},"14":{},"16":{},"18":{},"19":{},"21":{},"24":{},"27":{},"30":{},"31":{},"33":{},"35":{},"41":{},"43":{},"45":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"67":{},"68":{},"74":{}},"component":{}}],["orchestr",{"_index":6,"title":{"20":{},"33":{},"35":{},"36":{},"45":{},"1-4":{},"1-5":{},"33-1":{},"33-2":{}},"name":{"20":{},"33":{},"35":{},"36":{},"45":{}},"text":{"1":{},"4":{},"6":{},"7":{},"10":{},"21":{},"32":{},"33":{},"34":{},"36":{},"43":{},"45":{},"53":{}},"component":{}}],["order",{"_index":271,"title":{},"name":{},"text":{"2":{},"13":{},"14":{},"31":{},"33":{},"35":{},"42":{},"45":{},"46":{},"47":{},"49":{},"54":{}},"component":{}}],["order.getid",{"_index":2585,"title":{},"name":{},"text":{"42":{}},"component":{}}],["order.setcountry(\"u",{"_index":2583,"title":{},"name":{},"text":{"42":{}},"component":{}}],["order.setdescription(\"iphon",{"_index":2580,"title":{},"name":{},"text":{"42":{}},"component":{}}],["order.setid(uuid.randomuuid().tostr",{"_index":2579,"title":{},"name":{},"text":{"42":{}},"component":{}}],["order.settotal(1001",{"_index":2582,"title":{},"name":{},"text":{"42":{}},"component":{}}],["orderbi",{"_index":1169,"title":{},"name":{},"text":{"14":{}},"component":{}}],["orderev",{"_index":2587,"title":{},"name":{},"text":{"42":{}},"component":{}}],["orderid",{"_index":2707,"title":{},"name":{},"text":{"45":{}},"component":{}}],["orderid\":\".orderid",{"_index":2682,"title":{},"name":{},"text":{"45":{}},"component":{}}],["orderid\":\"03e6cf79",{"_index":2718,"title":{},"name":{},"text":{"45":{}},"component":{}}],["orderrespons",{"_index":2738,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.acm",{"_index":1600,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.acme:serverless",{"_index":1587,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.apache.kafka.common.serialization.bytearraydeseri",{"_index":1449,"title":{},"name":{},"text":{"18":{}},"component":{}}],["org.apache.kafka.common.serialization.bytearrayseri",{"_index":1452,"title":{},"name":{},"text":{"18":{}},"component":{}}],["org.apache.kafka.common.serialization.stringdeseri",{"_index":1450,"title":{},"name":{},"text":{"18":{}},"component":{}}],["org.apache.kafka.common.serialization.stringseri",{"_index":1453,"title":{},"name":{},"text":{"18":{}},"component":{}}],["org.apache.maven.plugins:maven",{"_index":1615,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.awaitil",{"_index":1980,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["org.hamcrest.matchers.equalto",{"_index":2462,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.jbo.thread",{"_index":2479,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.jboss.logmanager.logmanag",{"_index":1984,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["org.junit.jupiter.api.beforeal",{"_index":2459,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.junit.jupiter.api.test",{"_index":2460,"title":{},"name":{},"text":{"38":{},"43":{}},"component":{}}],["org.kie.kog.add.qua.mes.com.quarkuskogitoextensioniniti",{"_index":1630,"title":{},"name":{},"text":{"21":{},"38":{}},"component":{}}],["org.kie.kog.cod.api.uti.addonsconfigdiscoveri",{"_index":2483,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.kie.kog.cod.cor.uti.applicationgeneratordiscoveri",{"_index":2495,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.kie.kog.mockservic",{"_index":2774,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kog.orderservic",{"_index":2748,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kog.paymentservic",{"_index":2744,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kog.per.inm.pos.run.inmemorypostgresqlrecord",{"_index":1673,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.kie.kog.per.pro.protobufservic",{"_index":1679,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.kie.kog.qua.pro.dev.dataindexinmemorycontain",{"_index":1641,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.kie.kog.shippingservic",{"_index":2746,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kog.stockservic",{"_index":2742,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kogito",{"_index":1225,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"17":{},"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"57":{},"58":{},"59":{},"60":{},"64":{},"66":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.auto_generate_brok",{"_index":1370,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.brok",{"_index":1378,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.health",{"_index":2933,"title":{},"name":{},"text":{"48":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.health_en",{"_index":1369,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink",{"_index":1372,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink.api_vers",{"_index":1375,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink.kind",{"_index":1377,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink.nam",{"_index":1376,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink.namespac",{"_index":1374,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.exampl",{"_index":2166,"title":{},"name":{},"text":{"33":{},"38":{}},"component":{}}],["org.kie.kogito.examples.evenservic",{"_index":1004,"title":{},"name":{},"text":{"11":{}},"component":{}}],["org.kie.kogito.examples.exchangeworkflowhelp",{"_index":2163,"title":{},"name":{},"text":{"33":{}},"component":{}}],["org.kie.kogito.examples.hellotest",{"_index":2476,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.kie.kogito.examples.sw.custom.rpccustomworkitemhandler.nam",{"_index":728,"title":{},"name":{},"text":{"6":{}},"component":{}}],["org.kie.kogito.examples.sw.custom.rpccustomworkitemhandler.oper",{"_index":729,"title":{},"name":{},"text":{"6":{}},"component":{}}],["org.kie.kogito.serviceexcept",{"_index":2697,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kogito.sw.knative.service=knative:services.v1/serverless",{"_index":3304,"title":{},"name":{},"text":{"60":{}},"component":{}}],["org.kie.kogito:kogito",{"_index":1719,"title":{},"name":{},"text":{"23":{},"25":{},"26":{},"57":{},"58":{},"59":{},"60":{},"64":{}},"component":{}}],["organ",{"_index":3051,"title":{},"name":{},"text":{"53":{}},"component":{}}],["origin",{"_index":960,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{}}],["orm",{"_index":1696,"title":{},"name":{},"text":{"21":{}},"component":{}}],["otherwis",{"_index":806,"title":{},"name":{},"text":{"8":{},"10":{},"11":{},"16":{},"23":{},"24":{},"45":{},"48":{},"50":{},"57":{},"58":{}},"component":{}}],["ought",{"_index":1356,"title":{},"name":{},"text":{"17":{}},"component":{}}],["out",{"_index":858,"title":{},"name":{},"text":{"9":{},"10":{},"37":{},"49":{},"54":{},"57":{},"65":{},"66":{},"69":{}},"component":{}}],["outcom",{"_index":3008,"title":{},"name":{},"text":{"50":{}},"component":{}}],["outgo",{"_index":448,"title":{},"name":{},"text":{"5":{},"14":{},"17":{},"18":{},"27":{},"37":{}},"component":{}}],["outgoing(\"out",{"_index":1050,"title":{},"name":{},"text":{"12":{}},"component":{}}],["output",{"_index":89,"title":{"7":{},"7-2":{}},"name":{},"text":{"1":{},"7":{},"10":{},"11":{},"18":{},"21":{},"24":{},"38":{},"41":{},"45":{},"49":{},"50":{},"53":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["outputschema",{"_index":772,"title":{"7-3":{}},"name":{},"text":{"7":{}},"component":{}}],["outsid",{"_index":441,"title":{},"name":{},"text":{"5":{}},"component":{}}],["over",{"_index":1267,"title":{},"name":{},"text":{"15":{},"17":{},"20":{},"28":{},"37":{}},"component":{}}],["overdu",{"_index":857,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["overeag",{"_index":3366,"title":{},"name":{},"text":{"69":{}},"component":{}}],["overflow",{"_index":1468,"title":{},"name":{},"text":{"18":{}},"component":{}}],["overrid",{"_index":415,"title":{},"name":{},"text":{"5":{},"6":{},"10":{},"16":{},"17":{},"41":{},"43":{},"48":{},"55":{},"60":{}},"component":{}}],["overview",{"_index":1265,"title":{"15-1":{},"29-1":{},"32-1":{},"34-1":{},"42-1":{},"45-1":{}},"name":{"41":{},"64":{},"70":{},"73":{}},"text":{},"component":{}}],["overwrit",{"_index":2321,"title":{},"name":{},"text":{"34":{},"41":{}},"component":{}}],["overwrot",{"_index":2325,"title":{},"name":{},"text":{"34":{}},"component":{}}],["p",{"_index":2911,"title":{},"name":{},"text":{"47":{},"55":{},"58":{},"59":{}},"component":{}}],["p2dt3h4m",{"_index":846,"title":{},"name":{},"text":{"9":{}},"component":{}}],["packag",{"_index":1608,"title":{},"name":{},"text":{"21":{},"26":{},"27":{},"33":{},"34":{},"38":{}},"component":{}}],["package=com.acm",{"_index":2190,"title":{},"name":{},"text":{"33":{}},"component":{}}],["packet",{"_index":1663,"title":{},"name":{},"text":{"21":{}},"component":{}}],["page",{"_index":1821,"title":{},"name":{"62":{},"63":{},"65":{},"66":{}},"text":{"26":{},"38":{},"41":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"72":{},"74":{}},"component":{}}],["pagin",{"_index":1174,"title":{},"name":{},"text":{"14":{}},"component":{}}],["pair",{"_index":608,"title":{},"name":{},"text":{"6":{},"23":{},"35":{}},"component":{}}],["palett",{"_index":3403,"title":{},"name":{},"text":{"74":{}},"component":{}}],["panach",{"_index":1697,"title":{},"name":{},"text":{"21":{}},"component":{}}],["panel",{"_index":3333,"title":{},"name":{},"text":{"66":{}},"component":{}}],["parallel",{"_index":98,"title":{"13":{},"13-1":{},"13-2":{},"13-3":{}},"name":{"13":{}},"text":{"1":{},"4":{},"13":{},"42":{}},"component":{}}],["parallel.sw.json",{"_index":1072,"title":{},"name":{},"text":{"13":{}},"component":{}}],["paramet",{"_index":560,"title":{},"name":{},"text":{"6":{},"7":{},"11":{},"14":{},"25":{},"27":{},"32":{},"33":{},"35":{},"36":{},"38":{},"42":{},"47":{},"60":{}},"component":{}}],["parameters.values().iter",{"_index":744,"title":{},"name":{},"text":{"6":{}},"component":{}}],["parentprocessinstanceid",{"_index":1144,"title":{},"name":{},"text":{"14":{}},"component":{}}],["pars",{"_index":2560,"title":{},"name":{},"text":{"42":{},"60":{},"74":{}},"component":{}}],["parsercontext",{"_index":733,"title":{},"name":{},"text":{"6":{}},"component":{}}],["part",{"_index":697,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"14":{},"16":{},"19":{},"20":{},"27":{},"33":{},"35":{},"36":{}},"component":{}}],["parti",{"_index":123,"title":{"33":{}},"name":{"33":{}},"text":{"1":{},"32":{},"43":{},"45":{}},"component":{}}],["partial",{"_index":337,"title":{},"name":{},"text":{"4":{},"11":{}},"component":{}}],["particip",{"_index":2663,"title":{},"name":{},"text":{"45":{}},"component":{}}],["particular",{"_index":557,"title":{},"name":{},"text":{"6":{},"18":{},"19":{},"32":{},"33":{},"47":{},"53":{}},"component":{}}],["pass",{"_index":546,"title":{},"name":{},"text":{"6":{},"10":{},"14":{},"16":{},"27":{},"28":{},"32":{},"33":{},"42":{},"55":{}},"component":{}}],["password",{"_index":1347,"title":{},"name":{},"text":{"16":{},"21":{},"27":{},"29":{},"31":{},"32":{},"47":{},"58":{}},"component":{}}],["password=bar",{"_index":2033,"title":{},"name":{},"text":{"31":{}},"component":{}}],["past",{"_index":3357,"title":{},"name":{},"text":{"68":{}},"component":{}}],["patch",{"_index":2818,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["path",{"_index":634,"title":{"63-3":{}},"name":{},"text":{"6":{},"7":{},"10":{},"14":{},"17":{},"25":{},"26":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"46":{},"53":{},"57":{},"58":{},"59":{},"60":{},"63":{},"65":{},"66":{},"74":{}},"component":{}}],["path(\"id",{"_index":1993,"title":{},"name":{},"text":{"29":{}},"component":{}}],["path=/token",{"_index":2106,"title":{},"name":{},"text":{"32":{}},"component":{}}],["path=http://localhost:8281/auth/realms/kogito/protocol/openid",{"_index":2197,"title":{},"name":{},"text":{"33":{}},"component":{}}],["pattern",{"_index":177,"title":{"45-1":{},"45-2":{},"45-3":{}},"name":{"45":{}},"text":{"1":{},"11":{},"45":{},"49":{},"60":{},"74":{}},"component":{}}],["paus",{"_index":799,"title":{},"name":{},"text":{"8":{},"30":{}},"component":{}}],["pay",{"_index":3164,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["payload",{"_index":639,"title":{},"name":{},"text":{"6":{},"11":{},"17":{},"19":{},"20":{},"23":{},"24":{},"35":{},"36":{},"43":{},"46":{}},"component":{}}],["payment",{"_index":2671,"title":{},"name":{},"text":{"45":{}},"component":{}}],["paymentrespons",{"_index":2726,"title":{},"name":{},"text":{"45":{}},"component":{}}],["paymentservice.java",{"_index":2698,"title":{},"name":{},"text":{"45":{}},"component":{}}],["pbuild",{"_index":3096,"title":{},"name":{},"text":{"55":{}},"component":{}}],["peform",{"_index":1015,"title":{},"name":{},"text":{"12":{}},"component":{}}],["pencil",{"_index":3394,"title":{},"name":{},"text":{"72":{}},"component":{}}],["per",{"_index":341,"title":{},"name":{},"text":{"4":{},"13":{},"18":{},"27":{},"47":{}},"component":{}}],["percentag",{"_index":2299,"title":{},"name":{},"text":{"34":{}},"component":{}}],["perform",{"_index":563,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"25":{},"29":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"47":{},"49":{},"60":{},"71":{},"73":{},"74":{}},"component":{}}],["period",{"_index":1859,"title":{},"name":{},"text":{"27":{},"34":{}},"component":{}}],["periodsecond",{"_index":3197,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["perman",{"_index":1868,"title":{},"name":{},"text":{"27":{}},"component":{}}],["permiss",{"_index":2521,"title":{},"name":{},"text":{"41":{},"53":{},"60":{},"68":{},"69":{}},"component":{}}],["persist",{"_index":12,"title":{"1-8":{},"27-8":{},"29-2":{},"30-1":{}},"name":{"30":{}},"text":{"1":{},"2":{},"5":{},"14":{},"15":{},"16":{},"19":{},"27":{},"29":{},"30":{},"31":{},"45":{},"70":{}},"component":{}}],["person",{"_index":2969,"title":{},"name":{},"text":{"49":{},"67":{}},"component":{}}],["perspect",{"_index":1017,"title":{},"name":{},"text":{"12":{},"37":{},"53":{}},"component":{}}],["pet",{"_index":2412,"title":{},"name":{},"text":{"36":{}},"component":{}}],["pet/{petid",{"_index":2411,"title":{},"name":{},"text":{"36":{}},"component":{}}],["petid",{"_index":2414,"title":{},"name":{},"text":{"36":{}},"component":{}}],["petstor",{"_index":2390,"title":{},"name":{},"text":{"36":{}},"component":{}}],["phase",{"_index":701,"title":{"47-6":{}},"name":{},"text":{"6":{},"47":{},"54":{}},"component":{}}],["php",{"_index":2397,"title":{},"name":{},"text":{"36":{}},"component":{}}],["pick",{"_index":2023,"title":{},"name":{},"text":{"31":{}},"component":{}}],["pid",{"_index":3220,"title":{},"name":{},"text":{"58":{}},"component":{}}],["place",{"_index":779,"title":{},"name":{},"text":{"7":{},"15":{},"23":{},"67":{}},"component":{}}],["placehold",{"_index":3016,"title":{},"name":{},"text":{"50":{}},"component":{}}],["plain",{"_index":3174,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["plainjsonknativefunct",{"_index":1753,"title":{},"name":{},"text":{"24":{}},"component":{}}],["plan",{"_index":1409,"title":{},"name":{},"text":{"17":{}},"component":{}}],["platform",{"_index":230,"title":{},"name":{},"text":{"2":{},"3":{},"14":{},"17":{},"21":{},"47":{},"52":{},"57":{},"58":{},"69":{}},"component":{}}],["platform/4.13/networking/routes/rout",{"_index":2914,"title":{},"name":{},"text":{"47":{}},"component":{}}],["play",{"_index":1486,"title":{},"name":{},"text":{"19":{},"45":{},"49":{}},"component":{}}],["pleas",{"_index":403,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["plug",{"_index":130,"title":{"41":{},"41-1":{}},"name":{},"text":{"1":{},"17":{},"21":{},"22":{},"24":{},"29":{},"41":{},"42":{},"57":{},"58":{},"64":{}},"component":{}}],["plugin",{"_index":1982,"title":{},"name":{"41":{}},"text":{"29":{},"41":{},"42":{},"59":{}},"component":{}}],["plugin:2.16.9.final:cr",{"_index":1593,"title":{},"name":{},"text":{"21":{}},"component":{}}],["plugin:2.16.9.final:dev",{"_index":1614,"title":{},"name":{},"text":{"21":{}},"component":{}}],["plugin:2.4:jar",{"_index":2506,"title":{},"name":{},"text":{"38":{}},"component":{}}],["plugin:2.6:resourc",{"_index":1616,"title":{},"name":{},"text":{"21":{}},"component":{}}],["plugin:2.9.2.final:build",{"_index":2510,"title":{},"name":{},"text":{"38":{}},"component":{}}],["pndtnhnmn.n",{"_index":838,"title":{},"name":{},"text":{"9":{}},"component":{}}],["pod",{"_index":1368,"title":{},"name":{},"text":{"17":{},"36":{},"47":{},"49":{},"50":{},"54":{},"60":{}},"component":{}}],["podman",{"_index":2517,"title":{},"name":{},"text":{"41":{},"50":{},"59":{}},"component":{}}],["pods.v1",{"_index":3274,"title":{},"name":{},"text":{"60":{}},"component":{}}],["point",{"_index":1281,"title":{},"name":{},"text":{"16":{},"20":{},"27":{},"34":{},"36":{},"49":{}},"component":{}}],["pojo",{"_index":2172,"title":{},"name":{},"text":{"33":{}},"component":{}}],["polici",{"_index":2527,"title":{},"name":{},"text":{"41":{},"47":{},"49":{}},"component":{}}],["policy=ifnotpres",{"_index":3149,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["pom",{"_index":2344,"title":{},"name":{},"text":{"35":{}},"component":{}}],["pom.xml",{"_index":1224,"title":{},"name":{},"text":{"14":{},"15":{},"17":{},"18":{},"23":{},"25":{},"26":{},"29":{},"30":{},"35":{},"38":{},"42":{},"43":{},"55":{},"57":{},"58":{},"59":{},"64":{},"66":{},"67":{}},"component":{}}],["pool",{"_index":481,"title":{},"name":{},"text":{"5":{}},"component":{}}],["pop",{"_index":3348,"title":{},"name":{},"text":{"67":{}},"component":{}}],["popul",{"_index":1008,"title":{},"name":{},"text":{"11":{}},"component":{}}],["port",{"_index":498,"title":{},"name":{},"text":{"5":{},"16":{},"21":{},"27":{},"35":{},"42":{},"43":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["port(",{"_index":3116,"title":{},"name":{},"text":{"57":{}},"component":{}}],["portabl",{"_index":518,"title":{},"name":{},"text":{"6":{},"10":{}},"component":{}}],["portfolio",{"_index":2257,"title":{},"name":{},"text":{"34":{}},"component":{}}],["possibl",{"_index":417,"title":{"49-9":{}},"name":{},"text":{"5":{},"6":{},"16":{},"18":{},"19":{},"33":{},"34":{},"35":{},"45":{},"46":{},"54":{}},"component":{}}],["post",{"_index":631,"title":{},"name":{},"text":{"6":{},"10":{},"13":{},"17":{},"21":{},"24":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"45":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{},"65":{}},"component":{}}],["post(\"/callback",{"_index":1991,"title":{},"name":{},"text":{"29":{}},"component":{}}],["post(\"/hello",{"_index":2468,"title":{},"name":{},"text":{"38":{}},"component":{}}],["postconstruct",{"_index":768,"title":{},"name":{},"text":{"6":{}},"component":{}}],["postgr",{"_index":1288,"title":{},"name":{},"text":{"16":{},"21":{},"27":{}},"component":{}}],["postgres:5432/postgres?currentschema=data",{"_index":1327,"title":{},"name":{},"text":{"16":{}},"component":{}}],["postgres:pid(90",{"_index":1657,"title":{},"name":{},"text":{"21":{}},"component":{}}],["postgresql",{"_index":143,"title":{"29":{},"30":{},"31":{},"27-9":{},"29-2":{}},"name":{"29":{},"30":{},"31":{}},"text":{"1":{},"2":{},"5":{},"14":{},"15":{},"16":{},"19":{},"21":{},"27":{},"29":{},"30":{},"31":{},"38":{},"46":{}},"component":{}}],["postgresql://timeout",{"_index":1880,"title":{},"name":{},"text":{"27":{}},"component":{}}],["postgresql:latest",{"_index":1285,"title":{},"name":{},"text":{"16":{}},"component":{}}],["postgressql",{"_index":144,"title":{},"name":{},"text":{"1":{},"27":{}},"component":{}}],["postmast",{"_index":1671,"title":{},"name":{},"text":{"21":{}},"component":{}}],["postrequestedfor(urlequalto(\"/\")).withrequestbody(containing(\"\\\"type\\\":\\\"domesticshipping\\\"\").and(containing(\"\\\"id",{"_index":2596,"title":{},"name":{},"text":{"42":{}},"component":{}}],["postrequestedfor(urlequalto(\"/\")).withrequestbody(containing(\"\\\"type\\\":\\\"fraudevaluation\\\"\").and(containing(\"\\\"id",{"_index":2595,"title":{},"name":{},"text":{"42":{}},"component":{}}],["postrequestedfor(urlequalto(\"/\")).withrequestbody(containing(order.getid",{"_index":2593,"title":{},"name":{},"text":{"42":{}},"component":{}}],["postresql",{"_index":2802,"title":{},"name":{},"text":{"46":{}},"component":{}}],["potenti",{"_index":969,"title":{},"name":{},"text":{"11":{},"33":{}},"component":{}}],["power",{"_index":1126,"title":{},"name":{},"text":{"14":{},"21":{},"38":{},"55":{}},"component":{}}],["practic",{"_index":1490,"title":{},"name":{},"text":{"19":{}},"component":{}}],["pre",{"_index":3345,"title":{},"name":{},"text":{"67":{}},"component":{}}],["preced",{"_index":3255,"title":{"60-3":{}},"name":{},"text":{},"component":{}}],["precis",{"_index":3280,"title":{},"name":{},"text":{"60":{}},"component":{}}],["predefin",{"_index":680,"title":{},"name":{},"text":{"6":{},"11":{}},"component":{}}],["prefer",{"_index":2328,"title":{},"name":{},"text":{"35":{},"41":{},"48":{},"57":{},"74":{}},"component":{}}],["prefix",{"_index":682,"title":{},"name":{},"text":{"6":{},"23":{},"34":{}},"component":{}}],["prepar",{"_index":1274,"title":{"50-6":{},"59-3":{}},"name":{},"text":{"15":{},"27":{},"58":{},"59":{}},"component":{}}],["prerequisit",{"_index":1071,"title":{},"name":{},"text":{"13":{},"15":{},"17":{},"21":{},"23":{},"24":{},"25":{},"26":{},"29":{},"30":{},"33":{},"34":{},"36":{},"38":{},"41":{},"42":{},"43":{},"47":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"64":{},"67":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["present",{"_index":496,"title":{},"name":{},"text":{"5":{},"6":{},"16":{},"17":{},"20":{},"28":{},"29":{},"66":{},"68":{}},"component":{}}],["preserv",{"_index":2934,"title":{},"name":{},"text":{"48":{}},"component":{}}],["press",{"_index":1710,"title":{},"name":{},"text":{"21":{},"74":{}},"component":{}}],["prevent",{"_index":1589,"title":{},"name":{},"text":{"21":{},"43":{},"49":{}},"component":{}}],["preview",{"_index":3384,"title":{},"name":{},"text":{"70":{}},"component":{}}],["previou",{"_index":586,"title":{},"name":{},"text":{"6":{},"7":{},"8":{},"10":{},"13":{},"17":{},"18":{},"21":{},"24":{},"25":{},"26":{},"32":{},"33":{},"34":{},"35":{},"36":{},"41":{},"42":{},"45":{},"55":{},"58":{},"59":{},"60":{},"64":{},"71":{}},"component":{}}],["previous",{"_index":1787,"title":{},"name":{},"text":{"25":{},"58":{},"59":{}},"component":{}}],["price",{"_index":2282,"title":{},"name":{},"text":{"34":{}},"component":{}}],["price/{symbol",{"_index":2266,"title":{},"name":{},"text":{"34":{}},"component":{}}],["primit",{"_index":573,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["print",{"_index":783,"title":{},"name":{},"text":{"7":{},"37":{},"41":{},"47":{}},"component":{}}],["printact",{"_index":527,"title":{},"name":{},"text":{"6":{},"11":{}},"component":{}}],["printafterevent1",{"_index":896,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["printafterevent2",{"_index":899,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["printexitmessag",{"_index":900,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["printmessag",{"_index":1012,"title":{},"name":{},"text":{"11":{}},"component":{}}],["printwaitmessag",{"_index":854,"title":{},"name":{},"text":{"9":{}},"component":{}}],["priorit",{"_index":2971,"title":{},"name":{},"text":{"49":{},"51":{}},"component":{}}],["prioriti",{"_index":1147,"title":{},"name":{},"text":{"14":{}},"component":{}}],["privaci",{"_index":2528,"title":{},"name":{},"text":{"41":{}},"component":{}}],["privat",{"_index":1031,"title":{},"name":{},"text":{"12":{},"33":{},"42":{},"43":{},"57":{},"68":{}},"component":{}}],["privileg",{"_index":2979,"title":{},"name":{},"text":{"50":{}},"component":{}}],["probe",{"_index":1367,"title":{},"name":{},"text":{"17":{},"49":{}},"component":{}}],["problem",{"_index":2133,"title":{},"name":{},"text":{"33":{},"41":{},"49":{},"54":{},"74":{}},"component":{}}],["proce",{"_index":3233,"title":{},"name":{},"text":{"59":{}},"component":{}}],["procedur",{"_index":1062,"title":{},"name":{},"text":{"13":{},"15":{},"17":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"33":{},"34":{},"36":{},"38":{},"41":{},"42":{},"43":{},"47":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"64":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["proceed",{"_index":3114,"title":{},"name":{},"text":{"57":{},"59":{}},"component":{}}],["process",{"_index":194,"title":{},"name":{},"text":{"2":{},"5":{},"6":{},"12":{},"14":{},"15":{},"16":{},"19":{},"21":{},"25":{},"26":{},"27":{},"29":{},"30":{},"33":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"54":{},"57":{},"58":{},"59":{},"66":{},"67":{},"68":{}},"component":{}}],["process/correl",{"_index":1525,"title":{},"name":{},"text":{"19":{}},"component":{}}],["process_id",{"_index":1815,"title":{},"name":{},"text":{"26":{}},"component":{}}],["process_id=\".*?\"/).match",{"_index":1817,"title":{},"name":{},"text":{"26":{}},"component":{}}],["processdomesticorderunderfraudev",{"_index":2576,"title":{},"name":{},"text":{"42":{}},"component":{}}],["processid",{"_index":1143,"title":{},"name":{},"text":{"14":{},"25":{},"26":{}},"component":{}}],["processinst",{"_index":1142,"title":{},"name":{},"text":{"14":{},"16":{},"26":{}},"component":{}}],["processinstanceabort",{"_index":1179,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processinstanceev",{"_index":1250,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["processinstanceid",{"_index":1148,"title":{},"name":{},"text":{"14":{},"19":{},"37":{}},"component":{}}],["processinstancelisten",{"_index":1801,"title":{},"name":{},"text":{"26":{}},"component":{}}],["processinstanceretri",{"_index":1185,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processinstances(wher",{"_index":1150,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processinstanceskip",{"_index":1186,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processinstanceupdatevari",{"_index":1194,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processnam",{"_index":1151,"title":{},"name":{},"text":{"14":{},"25":{},"26":{}},"component":{}}],["processor",{"_index":3235,"title":{},"name":{},"text":{"59":{}},"component":{}}],["processpay",{"_index":2689,"title":{},"name":{},"text":{"45":{}},"component":{}}],["processpaymentact",{"_index":2690,"title":{},"name":{},"text":{"45":{}},"component":{}}],["prod",{"_index":204,"title":{},"name":{},"text":{"2":{},"21":{},"34":{}},"component":{}}],["produc",{"_index":34,"title":{"17":{},"18":{}},"name":{"17":{},"18":{}},"text":{"1":{},"6":{},"8":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"23":{},"27":{},"28":{},"29":{},"33":{},"37":{},"41":{},"42":{}},"component":{}}],["product",{"_index":1863,"title":{"34-7":{},"51-3":{},"54-3":{}},"name":{},"text":{"27":{},"28":{},"34":{},"36":{},"46":{},"49":{},"51":{},"54":{},"67":{}},"component":{}}],["product_id",{"_index":640,"title":{},"name":{},"text":{"6":{}},"component":{}}],["profil",{"_index":205,"title":{"9-7":{},"46-5":{},"49-1":{},"51-3":{},"54-2":{},"54-3":{}},"name":{},"text":{"2":{},"9":{},"21":{},"27":{},"34":{},"38":{},"46":{},"47":{},"48":{},"49":{},"51":{},"54":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["profit",{"_index":2281,"title":{},"name":{},"text":{"34":{}},"component":{}}],["program",{"_index":2561,"title":{},"name":{},"text":{"42":{},"46":{}},"component":{}}],["progress",{"_index":3065,"title":{},"name":{},"text":{"54":{}},"component":{}}],["project",{"_index":71,"title":{"21":{},"67":{},"68":{},"69":{},"9-8":{},"21-1":{},"23-4":{},"41-2":{},"41-3":{},"41-4":{},"41-5":{},"46-6":{},"46-7":{},"67-1":{},"67-2":{}},"name":{"67":{}},"text":{"1":{},"3":{},"5":{},"6":{},"7":{},"9":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"43":{},"46":{},"55":{},"57":{},"58":{},"59":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"74":{}},"component":{}}],["project.basedir}/../serverless",{"_index":2345,"title":{},"name":{},"text":{"35":{}},"component":{}}],["project/namespac",{"_index":3247,"title":{},"name":{},"text":{"59":{}},"component":{}}],["project/target/quarku",{"_index":2848,"title":{},"name":{},"text":{"47":{}},"component":{}}],["project:1.0.0",{"_index":2556,"title":{},"name":{},"text":{"41":{}},"component":{}}],["project:1.0.1",{"_index":2555,"title":{},"name":{},"text":{"41":{}},"component":{}}],["project\\ncopi",{"_index":2831,"title":{},"name":{},"text":{"47":{}},"component":{}}],["project’",{"_index":287,"title":{},"name":{},"text":{"3":{},"6":{}},"component":{}}],["prometheu",{"_index":158,"title":{"25":{},"25-4":{}},"name":{"25":{}},"text":{"1":{},"25":{},"26":{}},"component":{}}],["prompt",{"_index":2030,"title":{},"name":{},"text":{"31":{}},"component":{}}],["promql",{"_index":1840,"title":{},"name":{},"text":{"26":{}},"component":{}}],["prop",{"_index":2926,"title":{},"name":{},"text":{"48":{},"49":{}},"component":{}}],["propag",{"_index":1638,"title":{"32-6":{}},"name":{},"text":{"21":{},"27":{},"32":{},"38":{},"46":{}},"component":{}}],["propagation=[true,fals",{"_index":2117,"title":{},"name":{},"text":{"32":{}},"component":{}}],["propagation=tru",{"_index":2119,"title":{},"name":{},"text":{"32":{}},"component":{}}],["proper",{"_index":703,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["properli",{"_index":1935,"title":{},"name":{},"text":{"27":{},"28":{},"33":{},"59":{}},"component":{}}],["properti",{"_index":85,"title":{"5":{},"16-7":{},"27-6":{},"48-2":{}},"name":{"5":{}},"text":{"1":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"42":{},"43":{},"46":{},"48":{},"49":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"74":{}},"component":{}}],["protect",{"_index":731,"title":{},"name":{},"text":{"6":{}},"component":{}}],["proto",{"_index":2329,"title":{},"name":{},"text":{"35":{}},"component":{}}],["protobuff",{"_index":1680,"title":{},"name":{},"text":{"21":{}},"component":{}}],["protocol",{"_index":717,"title":{},"name":{},"text":{"6":{},"16":{},"20":{},"24":{},"27":{},"53":{},"57":{},"58":{},"59":{}},"component":{}}],["protocolvers",{"_index":1552,"title":{},"name":{},"text":{"20":{}},"component":{}}],["prototyp",{"_index":2613,"title":{},"name":{},"text":{"43":{}},"component":{}}],["provid",{"_index":170,"title":{},"name":{},"text":{"1":{},"6":{},"7":{},"9":{},"11":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"21":{},"22":{},"27":{},"28":{},"29":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"41":{},"46":{},"50":{},"51":{},"54":{},"55":{},"57":{},"58":{},"60":{},"64":{},"65":{},"66":{},"67":{},"70":{},"73":{},"74":{}},"component":{}}],["provis",{"_index":904,"title":{},"name":{},"text":{"9":{},"14":{},"16":{},"46":{}},"component":{}}],["proxi",{"_index":3362,"title":{},"name":{},"text":{"69":{}},"component":{}}],["psql",{"_index":2040,"title":{},"name":{},"text":{"31":{}},"component":{}}],["pt15m",{"_index":843,"title":{},"name":{},"text":{"9":{}},"component":{}}],["pt1h",{"_index":855,"title":{},"name":{},"text":{"9":{}},"component":{}}],["pt30",{"_index":876,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["pt5",{"_index":890,"title":{},"name":{},"text":{"9":{}},"component":{}}],["public",{"_index":549,"title":{},"name":{},"text":{"6":{},"12":{},"33":{},"37":{},"42":{},"43":{},"45":{},"47":{},"68":{}},"component":{}}],["publish",{"_index":1020,"title":{"20-2":{}},"name":{},"text":{"12":{},"18":{},"19":{},"20":{},"37":{},"47":{},"57":{}},"component":{}}],["publishact",{"_index":1029,"title":{},"name":{},"text":{"12":{}},"component":{}}],["pull",{"_index":3140,"title":{},"name":{},"text":{"57":{},"58":{},"59":{},"68":{},"72":{}},"component":{}}],["purpos",{"_index":168,"title":{},"name":{},"text":{"1":{},"3":{},"7":{},"14":{},"15":{},"19":{},"23":{},"27":{},"33":{},"46":{},"67":{}},"component":{}}],["push",{"_index":2544,"title":{},"name":{},"text":{"41":{},"47":{},"55":{},"57":{},"58":{},"59":{},"68":{},"72":{}},"component":{}}],["put",{"_index":1825,"title":{},"name":{},"text":{"26":{}},"component":{}}],["python",{"_index":245,"title":{},"name":{},"text":{"2":{},"36":{}},"component":{}}],["q/health/liv",{"_index":3195,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["q/health/readi",{"_index":3202,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["q/metric",{"_index":1765,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["qualifi",{"_index":540,"title":{},"name":{},"text":{"6":{},"11":{},"45":{}},"component":{}}],["quarantin",{"_index":3368,"title":{},"name":{},"text":{"69":{}},"component":{}}],["quarkivers",{"_index":1545,"title":{},"name":{},"text":{"20":{}},"component":{}}],["quarku",{"_index":70,"title":{"15":{},"17":{},"18":{},"21":{},"28":{},"30":{},"38":{},"55":{},"64":{},"3-2":{},"9-8":{},"14-4":{},"14-5":{},"14-14":{},"16-6":{},"23-1":{},"31-6":{},"33-2":{},"46-6":{},"46-7":{},"57-5":{},"58-5":{},"59-6":{}},"name":{"15":{},"28":{},"55":{},"62":{},"63":{},"64":{},"65":{},"66":{}},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"48":{},"49":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"66":{},"67":{},"68":{}},"component":{}}],["quarkus.10.103.94.37.sslip.io",{"_index":3163,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["quarkus.10.103.94.37.sslip.io/jsongreet",{"_index":3168,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["quarkus.contain",{"_index":3077,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{}},"component":{}}],["quarkus.datasource.db",{"_index":2008,"title":{},"name":{},"text":{"30":{},"31":{}},"component":{}}],["quarkus.datasource.jdbc.url",{"_index":1886,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{}}],["quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/postgr",{"_index":2012,"title":{},"name":{},"text":{"30":{}},"component":{}}],["quarkus.datasource.password",{"_index":1906,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{}}],["quarkus.datasource.password=pass",{"_index":2011,"title":{},"name":{},"text":{"30":{}},"component":{}}],["quarkus.datasource.reactive.url",{"_index":1907,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{}}],["quarkus.datasource.usernam",{"_index":1905,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{}}],["quarkus.datasource.username=postgr",{"_index":2010,"title":{},"name":{},"text":{"30":{}},"component":{}}],["quarkus.flyway.baselin",{"_index":2045,"title":{},"name":{},"text":{"31":{}},"component":{}}],["quarkus.flyway.migr",{"_index":2013,"title":{},"name":{},"text":{"30":{},"31":{}},"component":{}}],["quarkus.grpc.clients.greeter.host=localhost",{"_index":2349,"title":{},"name":{},"text":{"35":{}},"component":{}}],["quarkus.grpc.clients.greeter.port=50051",{"_index":2350,"title":{},"name":{},"text":{"35":{}},"component":{}}],["quarkus.http.host",{"_index":2931,"title":{},"name":{},"text":{"48":{}},"component":{}}],["quarkus.http.non",{"_index":1240,"title":{},"name":{},"text":{"14":{}},"component":{}}],["quarkus.http.port",{"_index":2930,"title":{},"name":{},"text":{"48":{}},"component":{}}],["quarkus.http.root",{"_index":1239,"title":{},"name":{},"text":{"14":{}},"component":{}}],["quarkus.infinispan",{"_index":1923,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus.knative.name=hello",{"_index":3181,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["quarkus.kogito",{"_index":3312,"title":{},"name":{},"text":{"63":{}},"component":{}}],["quarkus.kogito.data",{"_index":1236,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{}}],["quarkus.kogito.devservices.en",{"_index":494,"title":{},"name":{},"text":{"5":{},"15":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.enabled=fals",{"_index":1275,"title":{},"name":{},"text":{"15":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.imag",{"_index":501,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.imagename=quay.io/kiegroup/kogito",{"_index":1342,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus.kogito.devservices.port",{"_index":497,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.port=8180",{"_index":1341,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus.kogito.devservices.servic",{"_index":506,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.shar",{"_index":504,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.shared=fals",{"_index":1344,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus.kogito.logger.alway",{"_index":489,"title":{},"name":{},"text":{"5":{}},"component":{}}],["quarkus.kubernetes.deploy",{"_index":1415,"title":{},"name":{},"text":{"17":{},"57":{},"58":{},"59":{}},"component":{}}],["quarkus.kubernetes.deploy=tru",{"_index":3204,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["quarkus.log.category.\"okhttp3.okhttpclient\".level=info",{"_index":3302,"title":{},"name":{},"text":{"60":{}},"component":{}}],["quarkus.oidc",{"_index":2102,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["quarkus.openapi",{"_index":2058,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["quarkus.profil",{"_index":1954,"title":{},"name":{},"text":{"27":{},"34":{}},"component":{}}],["quarkus.rest",{"_index":2191,"title":{},"name":{},"text":{"33":{},"34":{},"36":{},"43":{}},"component":{}}],["quarkus/acm",{"_index":2215,"title":{},"name":{},"text":{"33":{}},"component":{}}],["quarkus/curr",{"_index":2219,"title":{},"name":{},"text":{"33":{}},"component":{}}],["quarkus/dock",{"_index":2214,"title":{},"name":{},"text":{"33":{}},"component":{}}],["quarkus/greet",{"_index":3305,"title":{},"name":{},"text":{"60":{}},"component":{}}],["quarkus/script",{"_index":2212,"title":{},"name":{},"text":{"33":{}},"component":{}}],["quarkus/src/main/proto",{"_index":2346,"title":{},"name":{},"text":{"35":{}},"component":{}}],["quarkus:1.0",{"_index":3095,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{}},"component":{}}],["quarkus:add",{"_index":1351,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{}}],["quarkus:dev",{"_index":1094,"title":{},"name":{},"text":{"13":{},"21":{},"34":{},"35":{}},"component":{}}],["quarkus_datasource_db_kind",{"_index":1328,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_datasource_jdbc_url",{"_index":1293,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["quarkus_datasource_password",{"_index":1296,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["quarkus_datasource_reactive_url",{"_index":1879,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_datasource_usernam",{"_index":1295,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["quarkus_flyway_migrate_at_start",{"_index":1298,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_flyway_migrate_at_start=tru",{"_index":1282,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_hibernate_orm_database_gener",{"_index":1299,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_http_cor",{"_index":1330,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_http_cors_origin",{"_index":1297,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_http_port",{"_index":1331,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_infinispan_client_auth_realm",{"_index":1919,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_host",{"_index":1909,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_password",{"_index":1922,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_sasl_mechan",{"_index":1915,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_use_auth",{"_index":1914,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_usernam",{"_index":1921,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_kafka_health_en",{"_index":1329,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_profil",{"_index":1945,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkusintegrationtest",{"_index":1976,"title":{},"name":{},"text":{"29":{}},"component":{}}],["quarkustest",{"_index":2463,"title":{},"name":{},"text":{"38":{},"42":{},"43":{}},"component":{}}],["quarkustest(1",{"_index":2566,"title":{},"name":{},"text":{"42":{}},"component":{}}],["quarkustestresourc",{"_index":2611,"title":{"43-2":{}},"name":{},"text":{"43":{}},"component":{}}],["quarkustestresource(restcountriesmockserver.class",{"_index":2654,"title":{},"name":{},"text":{"43":{}},"component":{}}],["quarkustestresourcelifecyclemanag",{"_index":2644,"title":{},"name":{},"text":{"43":{}},"component":{}}],["quay.io",{"_index":2552,"title":{},"name":{},"text":{"41":{},"55":{},"57":{}},"component":{}}],["quay.io/johndoe/myworkflow:latest",{"_index":3036,"title":{},"name":{},"text":{"52":{}},"component":{}}],["quay.io/kiegroup",{"_index":1280,"title":{},"name":{},"text":{"16":{},"47":{},"52":{}},"component":{}}],["quay.io/kiegroup/kogito",{"_index":502,"title":{},"name":{},"text":{"5":{},"16":{},"27":{},"47":{},"50":{}},"component":{}}],["quay.io/kiegroup/serverless",{"_index":3191,"title":{},"name":{},"text":{"57":{}},"component":{}}],["quay.io/kogito/serverless",{"_index":3094,"title":{},"name":{},"text":{"55":{}},"component":{}}],["quay.io/oth",{"_index":2553,"title":{},"name":{},"text":{"41":{}},"component":{}}],["queri",{"_index":425,"title":{"14-8":{}},"name":{},"text":{"5":{},"6":{},"10":{},"14":{},"15":{},"16":{},"26":{},"27":{},"32":{},"33":{},"59":{},"60":{}},"component":{}}],["queue",{"_index":484,"title":{},"name":{},"text":{"5":{}},"component":{}}],["quick",{"_index":86,"title":{"30-1":{}},"name":{},"text":{"1":{},"5":{},"16":{},"30":{}},"component":{}}],["quickli",{"_index":2516,"title":{},"name":{},"text":{"41":{}},"component":{}}],["quickstart",{"_index":3211,"title":{},"name":{},"text":{"58":{}},"component":{}}],["quot",{"_index":1395,"title":{},"name":{},"text":{"17":{}},"component":{}}],["random",{"_index":2284,"title":{},"name":{},"text":{"34":{}},"component":{}}],["rang",{"_index":1166,"title":{},"name":{},"text":{"14":{}},"component":{}}],["rate",{"_index":1398,"title":{},"name":{},"text":{"17":{},"33":{}},"component":{}}],["raw",{"_index":2706,"title":{},"name":{},"text":{"45":{}},"component":{}}],["rbac.authorization.k8s.io",{"_index":3296,"title":{},"name":{},"text":{"60":{}},"component":{}}],["rbac.authorization.k8s.io/v1",{"_index":3285,"title":{},"name":{},"text":{"60":{}},"component":{}}],["re",{"_index":2843,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["re)build",{"_index":2805,"title":{},"name":{},"text":{"47":{}},"component":{}}],["reach",{"_index":821,"title":{},"name":{},"text":{"8":{},"19":{},"20":{},"21":{},"27":{},"30":{},"32":{},"46":{}},"component":{}}],["react",{"_index":2606,"title":{},"name":{},"text":{"42":{}},"component":{}}],["reactiv",{"_index":37,"title":{},"name":{},"text":{"1":{},"14":{},"18":{},"21":{},"27":{},"28":{},"29":{},"38":{}},"component":{}}],["read",{"_index":1931,"title":{},"name":{},"text":{"27":{},"28":{},"32":{},"42":{},"47":{},"57":{},"58":{},"59":{},"60":{},"66":{},"71":{},"72":{}},"component":{}}],["readi",{"_index":32,"title":{},"name":{},"text":{"1":{},"6":{},"14":{},"15":{},"16":{},"24":{},"49":{},"50":{},"54":{},"57":{},"58":{},"59":{},"67":{},"69":{}},"component":{}}],["readinessprob",{"_index":3201,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["readm",{"_index":2003,"title":{},"name":{},"text":{"30":{}},"component":{}}],["real",{"_index":950,"title":{},"name":{},"text":{"10":{},"34":{}},"component":{}}],["realli",{"_index":408,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["realm",{"_index":1920,"title":{},"name":{},"text":{"27":{}},"component":{}}],["reason",{"_index":621,"title":{},"name":{},"text":{"6":{},"24":{},"35":{},"49":{},"51":{},"54":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["rebuild",{"_index":1764,"title":{},"name":{},"text":{"25":{},"41":{},"55":{}},"component":{}}],["receiv",{"_index":800,"title":{},"name":{},"text":{"8":{},"9":{},"12":{},"14":{},"17":{},"18":{},"19":{},"20":{},"23":{},"27":{},"33":{},"37":{},"42":{},"45":{},"46":{},"47":{},"49":{},"66":{}},"component":{}}],["recent",{"_index":721,"title":{},"name":{},"text":{"6":{}},"component":{}}],["recept",{"_index":797,"title":{},"name":{},"text":{"8":{},"13":{}},"component":{}}],["recipi",{"_index":1860,"title":{},"name":{},"text":{"27":{}},"component":{}}],["recommend",{"_index":392,"title":{},"name":{},"text":{"4":{},"27":{},"28":{},"30":{},"46":{},"50":{}},"component":{}}],["reconcil",{"_index":3156,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["reconcili",{"_index":266,"title":{},"name":{},"text":{"2":{}},"component":{}}],["record",{"_index":2025,"title":{},"name":{},"text":{"31":{}},"component":{}}],["recov",{"_index":3058,"title":{},"name":{},"text":{"54":{}},"component":{}}],["recoverfailureattempt",{"_index":3057,"title":{},"name":{},"text":{"54":{}},"component":{}}],["recreat",{"_index":1908,"title":{},"name":{},"text":{"27":{},"50":{}},"component":{}}],["recurs",{"_index":575,"title":{},"name":{},"text":{"6":{},"11":{}},"component":{}}],["red",{"_index":1581,"title":{"71":{},"71-1":{},"71-2":{}},"name":{},"text":{"21":{},"47":{},"59":{},"67":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["redhat",{"_index":3385,"title":{},"name":{"71":{}},"text":{},"component":{}}],["redirect",{"_index":2425,"title":{},"name":{},"text":{"36":{},"65":{},"74":{}},"component":{}}],["reduc",{"_index":675,"title":{},"name":{},"text":{"6":{}},"component":{}}],["ref",{"_index":1252,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"20":{},"27":{},"33":{},"36":{}},"component":{}}],["refactor",{"_index":268,"title":{},"name":{},"text":{"2":{}},"component":{}}],["refer",{"_index":87,"title":{"30-1":{}},"name":{},"text":{"1":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"16":{},"17":{},"19":{},"23":{},"24":{},"25":{},"27":{},"30":{},"32":{},"33":{},"34":{},"36":{},"37":{},"42":{},"45":{},"49":{},"50":{},"53":{},"57":{},"59":{},"63":{},"66":{},"74":{}},"component":{}}],["referenc",{"_index":299,"title":{"53":{},"23-3":{},"49-5":{}},"name":{"53":{}},"text":{"3":{},"8":{},"14":{},"16":{},"23":{},"26":{},"32":{},"36":{},"49":{},"53":{}},"component":{}}],["reflect",{"_index":3011,"title":{},"name":{},"text":{"50":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["refnam",{"_index":529,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"11":{},"23":{},"24":{},"33":{},"34":{},"35":{},"36":{},"37":{},"46":{},"47":{},"49":{},"53":{}},"component":{}}],["refname\":\"divis",{"_index":763,"title":{},"name":{},"text":{"6":{}},"component":{}}],["refname\":\"processpay",{"_index":2681,"title":{},"name":{},"text":{"45":{}},"component":{}}],["refresh",{"_index":2205,"title":{},"name":{},"text":{"33":{},"65":{},"66":{},"74":{}},"component":{}}],["regard",{"_index":1272,"title":{},"name":{},"text":{"15":{},"30":{}},"component":{}}],["regardless",{"_index":829,"title":{},"name":{},"text":{"9":{},"10":{},"17":{},"42":{}},"component":{}}],["regcr",{"_index":2877,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["regex",{"_index":984,"title":{},"name":{},"text":{"11":{}},"component":{}}],["regist",{"_index":295,"title":{},"name":{},"text":{"3":{},"6":{},"21":{},"27":{},"38":{}},"component":{}}],["register(handler.getname(),handl",{"_index":770,"title":{},"name":{},"text":{"6":{}},"component":{}}],["registri",{"_index":2545,"title":{"47-7":{},"47-8":{},"53-2":{},"59-3":{},"71-2":{},"74-5":{},"74-6":{}},"name":{},"text":{"41":{},"47":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"67":{},"71":{},"74":{}},"component":{}}],["registry.access.redhat.com/ubi8/openjdk",{"_index":2838,"title":{},"name":{},"text":{"47":{}},"component":{}}],["registry.openshift",{"_index":3249,"title":{},"name":{},"text":{"59":{}},"component":{}}],["registry.svc:5000",{"_index":3250,"title":{},"name":{},"text":{"59":{}},"component":{}}],["registry.svc:5000/kogito",{"_index":3251,"title":{},"name":{},"text":{"59":{}},"component":{}}],["registry}/apis/registry/v2",{"_index":3417,"title":{},"name":{},"text":{"74":{}},"component":{}}],["regular",{"_index":515,"title":{"6-15":{}},"name":{},"text":{"6":{},"11":{},"20":{},"33":{}},"component":{}}],["rel",{"_index":2203,"title":{},"name":{},"text":{"33":{}},"component":{}}],["relat",{"_index":1014,"title":{},"name":{},"text":{"12":{},"14":{},"15":{},"16":{},"17":{},"26":{},"30":{},"32":{},"33":{},"36":{},"37":{},"41":{},"45":{},"58":{},"59":{},"66":{}},"component":{}}],["releas",{"_index":355,"title":{},"name":{},"text":{"4":{},"19":{},"30":{},"36":{},"41":{},"45":{},"72":{},"74":{}},"component":{}}],["release_not",{"_index":186,"title":{},"name":{"2":{}},"text":{},"component":{}}],["relev",{"_index":699,"title":{},"name":{},"text":{"6":{},"18":{},"35":{}},"component":{}}],["reli",{"_index":684,"title":{},"name":{},"text":{"6":{},"15":{},"30":{},"32":{}},"component":{}}],["reload",{"_index":197,"title":{},"name":{},"text":{"2":{},"73":{},"74":{}},"component":{}}],["remain",{"_index":2343,"title":{},"name":{},"text":{"35":{},"46":{},"54":{}},"component":{}}],["rememb",{"_index":1560,"title":{},"name":{},"text":{"20":{},"35":{},"60":{}},"component":{}}],["remot",{"_index":739,"title":{"74-5":{}},"name":{},"text":{"6":{},"14":{},"33":{},"35":{},"36":{},"53":{},"55":{},"58":{},"68":{},"74":{}},"component":{}}],["remotecatalog",{"_index":2272,"title":{},"name":{},"text":{"34":{}},"component":{}}],["remotecatalog#operation1",{"_index":2274,"title":{},"name":{},"text":{"34":{}},"component":{}}],["remotecatalog#operation2",{"_index":2276,"title":{},"name":{},"text":{"34":{}},"component":{}}],["remov",{"_index":819,"title":{"49-4":{}},"name":{},"text":{"8":{},"25":{},"27":{},"30":{},"31":{},"47":{},"49":{},"50":{},"53":{},"59":{}},"component":{}}],["renam",{"_index":3383,"title":{},"name":{},"text":{"70":{}},"component":{}}],["replac",{"_index":1732,"title":{},"name":{},"text":{"23":{},"24":{},"25":{},"32":{},"43":{},"47":{},"48":{},"49":{},"50":{},"53":{}},"component":{}}],["replace($match($l[1",{"_index":1816,"title":{},"name":{},"text":{"26":{}},"component":{}}],["replic",{"_index":1138,"title":{},"name":{},"text":{"14":{},"16":{},"42":{}},"component":{}}],["replica",{"_index":1313,"title":{},"name":{},"text":{"16":{}},"component":{}}],["replicaset",{"_index":213,"title":{},"name":{},"text":{"2":{}},"component":{}}],["repo",{"_index":3355,"title":{},"name":{},"text":{"68":{}},"component":{}}],["report",{"_index":406,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["repositori",{"_index":1024,"title":{},"name":{},"text":{"12":{},"13":{},"21":{},"27":{},"30":{},"33":{},"34":{},"35":{},"37":{},"38":{},"41":{},"45":{},"46":{},"49":{},"55":{},"68":{}},"component":{}}],["repres",{"_index":1421,"title":{},"name":{},"text":{"17":{},"27":{},"35":{},"45":{}},"component":{}}],["represent",{"_index":1724,"title":{},"name":{},"text":{"23":{}},"component":{}}],["request",{"_index":138,"title":{"6-18":{},"36-2":{}},"name":{},"text":{"1":{},"6":{},"9":{},"10":{},"13":{},"14":{},"17":{},"19":{},"21":{},"24":{},"25":{},"27":{},"28":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"45":{},"47":{},"49":{},"52":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"69":{},"72":{}},"component":{}}],["requestbodi",{"_index":2403,"title":{},"name":{},"text":{"36":{}},"component":{}}],["requestquot",{"_index":1427,"title":{},"name":{},"text":{"17":{}},"component":{}}],["requir",{"_index":54,"title":{"47-4":{},"60-1":{}},"name":{},"text":{"1":{},"6":{},"9":{},"10":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"21":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"35":{},"36":{},"41":{},"42":{},"43":{},"47":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["reschedul",{"_index":1226,"title":{},"name":{},"text":{"14":{}},"component":{}}],["reserv",{"_index":536,"title":{},"name":{},"text":{"6":{},"45":{}},"component":{}}],["reset",{"_index":2602,"title":{},"name":{},"text":{"42":{},"65":{},"66":{}},"component":{}}],["resiz",{"_index":1831,"title":{},"name":{},"text":{"26":{}},"component":{}}],["resolut",{"_index":3147,"title":{},"name":{},"text":{"57":{}},"component":{}}],["resolv",{"_index":436,"title":{},"name":{},"text":{"5":{},"10":{},"33":{},"46":{},"68":{}},"component":{}}],["resourc",{"_index":189,"title":{"4-12":{},"6-21":{},"7-5":{},"8-2":{},"9-10":{},"10-4":{},"11-3":{},"12-2":{},"13-4":{},"14-15":{},"15-3":{},"16-4":{},"16-5":{},"16-8":{},"17-6":{},"18-4":{},"19-2":{},"21-6":{},"23-5":{},"24-2":{},"26-4":{},"27-14":{},"29-3":{},"30-2":{},"32-7":{},"33-4":{},"34-9":{},"36-6":{},"37-3":{},"38-1":{},"41-6":{},"42-4":{},"43-4":{},"45-4":{},"46-10":{},"47-4":{},"47-13":{},"48-3":{},"49-5":{},"49-13":{},"50-9":{},"53-3":{},"54-4":{},"55-5":{},"60-7":{},"70-2":{},"73-2":{}},"name":{"53":{}},"text":{"2":{},"3":{},"7":{},"14":{},"16":{},"21":{},"27":{},"29":{},"33":{},"35":{},"42":{},"43":{},"47":{},"49":{},"50":{},"52":{},"53":{},"54":{},"60":{}},"component":{}}],["resourceid\":\"03e6cf79",{"_index":2739,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"2114cc5b",{"_index":2763,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"505259d9",{"_index":2727,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"6ab362c6",{"_index":2758,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"d6e2d538",{"_index":2733,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"dc32abe6",{"_index":2721,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourcenam",{"_index":3263,"title":{},"name":{},"text":{"60":{}},"component":{}}],["resources/\\n\\nrun",{"_index":2832,"title":{},"name":{},"text":{"47":{}},"component":{}}],["resources\\n",{"_index":2835,"title":{},"name":{},"text":{"47":{}},"component":{}}],["respect",{"_index":1009,"title":{},"name":{},"text":{"11":{},"19":{},"21":{},"25":{},"35":{},"41":{},"48":{},"71":{}},"component":{}}],["respond",{"_index":673,"title":{},"name":{},"text":{"6":{},"45":{},"49":{}},"component":{}}],["respons",{"_index":469,"title":{},"name":{},"text":{"5":{},"6":{},"9":{},"10":{},"11":{},"13":{},"15":{},"17":{},"21":{},"23":{},"26":{},"27":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["responsedefinitionbuilder#withbodi",{"_index":2628,"title":{},"name":{},"text":{"43":{}},"component":{}}],["rest",{"_index":41,"title":{"38":{},"28-3":{},"36-2":{},"65-3":{}},"name":{},"text":{"1":{},"4":{},"10":{},"11":{},"20":{},"21":{},"26":{},"28":{},"29":{},"33":{},"34":{},"35":{},"36":{},"38":{},"42":{},"43":{},"45":{},"46":{},"49":{},"53":{},"65":{},"74":{}},"component":{}}],["rest/v2/name/greec",{"_index":2630,"title":{},"name":{},"text":{"43":{}},"component":{}}],["restart",{"_index":1543,"title":{},"name":{},"text":{"19":{},"21":{},"27":{},"50":{}},"component":{}}],["restassur",{"_index":142,"title":{},"name":{"38":{}},"text":{"1":{}},"component":{}}],["restassured.enableloggingofrequestandresponseifvalidationfail",{"_index":2465,"title":{},"name":{},"text":{"38":{},"42":{}},"component":{}}],["restassured.enableloggingofrequestandresponseifvalidationfails();(3",{"_index":1987,"title":{},"name":{},"text":{"29":{}},"component":{}}],["restcountriesmockserv",{"_index":2643,"title":{},"name":{},"text":{"43":{}},"component":{}}],["resteasi",{"_index":1586,"title":{},"name":{},"text":{"21":{},"38":{}},"component":{}}],["restworkitemhandl",{"_index":233,"title":{},"name":{},"text":{"2":{}},"component":{}}],["result",{"_index":577,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"13":{},"14":{},"23":{},"26":{},"33":{},"34":{},"37":{},"38":{},"41":{},"45":{},"49":{},"55":{},"67":{}},"component":{}}],["result\":\"abc",{"_index":1104,"title":{},"name":{},"text":{"13":{}},"component":{}}],["result\":\"bc",{"_index":1113,"title":{},"name":{},"text":{"13":{}},"component":{}}],["resulteventref",{"_index":368,"title":{},"name":{},"text":{"4":{}},"component":{}}],["result|=.+\\\"a",{"_index":1077,"title":{},"name":{},"text":{"13":{}},"component":{}}],["result|=.+\\\"b",{"_index":1079,"title":{},"name":{},"text":{"13":{}},"component":{}}],["result|=.+\\\"c",{"_index":1081,"title":{},"name":{},"text":{"13":{}},"component":{}}],["resum",{"_index":822,"title":{},"name":{},"text":{"8":{},"12":{},"13":{},"18":{},"20":{},"30":{},"32":{},"37":{}},"component":{}}],["resumeev",{"_index":1028,"title":{},"name":{},"text":{"12":{}},"component":{}}],["retri",{"_index":316,"title":{"4-7":{}},"name":{},"text":{"4":{},"14":{},"27":{},"29":{},"42":{}},"component":{}}],["retriev",{"_index":228,"title":{},"name":{},"text":{"2":{},"14":{},"26":{},"33":{},"34":{},"59":{}},"component":{}}],["retrigg",{"_index":1214,"title":{},"name":{},"text":{"14":{}},"component":{}}],["return",{"_index":510,"title":{"6-5":{},"6-10":{}},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"13":{},"21":{},"23":{},"26":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"43":{},"58":{},"59":{}},"component":{}}],["reus",{"_index":2870,"title":{},"name":{},"text":{"47":{},"53":{}},"component":{}}],["revers",{"_index":2702,"title":{},"name":{},"text":{"45":{}},"component":{}}],["review",{"_index":215,"title":{},"name":{},"text":{"2":{},"51":{},"52":{}},"component":{}}],["revis",{"_index":3153,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["right",{"_index":941,"title":{},"name":{},"text":{"10":{},"14":{},"16":{},"66":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["rightel",{"_index":937,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["roadmap",{"_index":288,"title":{"51":{},"51-1":{}},"name":{},"text":{"3":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{}},"component":{}}],["role",{"_index":687,"title":{"60-1":{}},"name":{},"text":{"6":{},"19":{},"45":{},"60":{},"71":{}},"component":{}}],["rolebind",{"_index":3294,"title":{},"name":{},"text":{"60":{}},"component":{}}],["roleref",{"_index":3295,"title":{},"name":{},"text":{"60":{}},"component":{}}],["roll",{"_index":3071,"title":{},"name":{},"text":{"54":{}},"component":{}}],["rollout",{"_index":3063,"title":{},"name":{},"text":{"54":{}},"component":{}}],["root",{"_index":635,"title":{},"name":{},"text":{"6":{},"14":{},"17":{},"33":{}},"component":{}}],["rootprocessid",{"_index":1145,"title":{},"name":{},"text":{"14":{}},"component":{}}],["rootprocessinstanceid",{"_index":1146,"title":{},"name":{},"text":{"14":{}},"component":{}}],["rout",{"_index":154,"title":{"23":{},"23-2":{}},"name":{"23":{}},"text":{"1":{},"6":{},"21":{},"23":{},"38":{},"47":{},"49":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["route.openshift.io",{"_index":3291,"title":{},"name":{},"text":{"60":{}},"component":{}}],["route/greet",{"_index":2918,"title":{},"name":{},"text":{"47":{}},"component":{}}],["route_rout",{"_index":2916,"title":{},"name":{},"text":{"47":{}},"component":{}}],["router",{"_index":3224,"title":{},"name":{},"text":{"58":{}},"component":{}}],["routes.v1.route.openshift.io",{"_index":3278,"title":{},"name":{},"text":{"60":{}},"component":{}}],["row",{"_index":1827,"title":{},"name":{},"text":{"26":{}},"component":{}}],["rpc",{"_index":360,"title":{},"name":{},"text":{"4":{},"6":{},"20":{},"35":{}},"component":{}}],["rpc:divis",{"_index":724,"title":{},"name":{},"text":{"6":{}},"component":{}}],["rpccustomtypehandl",{"_index":730,"title":{},"name":{},"text":{"6":{}},"component":{}}],["rpccustomworkitemhandl",{"_index":741,"title":{},"name":{},"text":{"6":{}},"component":{}}],["rpccustomworkitemhandlerconfig",{"_index":766,"title":{},"name":{},"text":{"6":{}},"component":{}}],["rule",{"_index":372,"title":{},"name":{},"text":{"4":{},"7":{},"19":{},"32":{},"33":{},"34":{},"36":{},"60":{}},"component":{}}],["run",{"_index":61,"title":{"30":{},"13-2":{},"13-3":{},"21-4":{},"33-3":{},"34-5":{},"34-6":{},"34-7":{},"35-2":{},"45-3":{},"46-9":{},"47-12":{},"49-3":{}},"name":{},"text":{"1":{},"6":{},"9":{},"13":{},"14":{},"15":{},"16":{},"19":{},"21":{},"22":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"49":{},"50":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"64":{},"67":{},"69":{},"74":{}},"component":{}}],["run.jar",{"_index":2218,"title":{},"name":{},"text":{"33":{},"34":{},"60":{}},"component":{}}],["run.jar\\\"\\n",{"_index":2862,"title":{},"name":{},"text":{"47":{}},"component":{}}],["run\\n",{"_index":2836,"title":{},"name":{},"text":{"47":{}},"component":{}}],["runtim",{"_index":160,"title":{},"name":{"26":{},"39":{}},"text":{"1":{},"2":{},"5":{},"6":{},"11":{},"14":{},"16":{},"21":{},"23":{},"27":{},"28":{},"30":{},"36":{},"41":{},"47":{},"48":{},"53":{},"63":{}},"component":{}}],["runtimeexcept",{"_index":1007,"title":{},"name":{},"text":{"11":{}},"component":{}}],["s",{"_index":2475,"title":{},"name":{},"text":{"38":{},"49":{}},"component":{}}],["s2i",{"_index":3074,"title":{},"name":{},"text":{"55":{}},"component":{}}],["safe",{"_index":2987,"title":{},"name":{},"text":{"50":{}},"component":{}}],["safeti",{"_index":2050,"title":{},"name":{},"text":{"31":{}},"component":{}}],["saga",{"_index":175,"title":{"45":{},"45-1":{},"45-2":{},"45-3":{}},"name":{"45":{}},"text":{"1":{},"4":{},"45":{}},"component":{}}],["saludo",{"_index":919,"title":{},"name":{},"text":{"10":{},"47":{},"49":{}},"component":{}}],["same",{"_index":59,"title":{},"name":{},"text":{"1":{},"4":{},"6":{},"7":{},"8":{},"10":{},"11":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"23":{},"25":{},"27":{},"28":{},"30":{},"32":{},"34":{},"35":{},"36":{},"42":{},"46":{},"47":{},"49":{},"50":{},"53":{},"60":{},"71":{}},"component":{}}],["sampl",{"_index":1781,"title":{},"name":{},"text":{"25":{},"70":{}},"component":{}}],["sandbox",{"_index":3372,"title":{},"name":{},"text":{"69":{}},"component":{}}],["sanit",{"_index":2064,"title":{},"name":{},"text":{"32":{},"36":{}},"component":{}}],["sasl",{"_index":1916,"title":{},"name":{},"text":{"27":{}},"component":{}}],["save",{"_index":925,"title":{},"name":{},"text":{"10":{},"24":{},"41":{},"47":{},"49":{},"53":{},"70":{},"71":{},"73":{},"74":{}},"component":{}}],["sayhello",{"_index":2331,"title":{},"name":{},"text":{"35":{}},"component":{}}],["sayhelloalllanguag",{"_index":2332,"title":{},"name":{},"text":{"35":{}},"component":{}}],["sayhelloapikey",{"_index":2086,"title":{},"name":{},"text":{"32":{}},"component":{}}],["sayhellobas",{"_index":2073,"title":{},"name":{},"text":{"32":{}},"component":{}}],["sayhellobear",{"_index":2082,"title":{},"name":{},"text":{"32":{}},"component":{}}],["sayhellomultiplelanguag",{"_index":2336,"title":{},"name":{},"text":{"35":{}},"component":{}}],["sayhellomultiplelanguagesatonc",{"_index":2333,"title":{},"name":{},"text":{"35":{}},"component":{}}],["sayhellooauth2",{"_index":2092,"title":{},"name":{},"text":{"32":{}},"component":{}}],["sb",{"_index":1433,"title":{},"name":{},"text":{"17":{},"27":{}},"component":{}}],["scaffold",{"_index":2537,"title":{},"name":{},"text":{"41":{}},"component":{}}],["scale",{"_index":1865,"title":{},"name":{},"text":{"27":{}},"component":{}}],["scan",{"_index":3257,"title":{},"name":{},"text":{"60":{}},"component":{}}],["scenario",{"_index":378,"title":{"14-2":{},"49-9":{}},"name":{},"text":{"4":{},"8":{},"9":{},"14":{},"17":{},"27":{},"28":{},"29":{},"35":{},"45":{},"46":{},"47":{},"49":{},"54":{}},"component":{}}],["schedul",{"_index":1857,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["schema",{"_index":90,"title":{"7":{},"7-1":{},"7-2":{}},"name":{"7":{}},"text":{"1":{},"2":{},"7":{},"14":{},"16":{},"20":{},"27":{},"30":{},"31":{},"32":{},"33":{},"36":{},"53":{},"65":{},"73":{},"74":{}},"component":{}}],["schema.json",{"_index":2140,"title":{},"name":{},"text":{"33":{},"53":{}},"component":{}}],["scheme",{"_index":1771,"title":{},"name":{},"text":{"25":{},"32":{},"33":{},"35":{},"36":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["scope",{"_index":830,"title":{},"name":{},"text":{"9":{},"32":{},"33":{}},"component":{}}],["score",{"_index":1392,"title":{},"name":{},"text":{"17":{}},"component":{}}],["scrap_interv",{"_index":1780,"title":{},"name":{},"text":{"25":{}},"component":{}}],["scrape_interv",{"_index":1776,"title":{},"name":{},"text":{"25":{}},"component":{}}],["scratch",{"_index":3381,"title":{},"name":{},"text":{"70":{}},"component":{}}],["screen",{"_index":3325,"title":{},"name":{},"text":{"65":{},"66":{},"68":{},"71":{},"72":{}},"component":{}}],["script",{"_index":1904,"title":{"31-4":{}},"name":{},"text":{"27":{},"31":{},"41":{}},"component":{}}],["script_debug",{"_index":1871,"title":{},"name":{},"text":{"27":{}},"component":{}}],["search",{"_index":1122,"title":{},"name":{},"text":{"14":{},"18":{},"50":{},"60":{},"65":{},"74":{}},"component":{}}],["sec",{"_index":2675,"title":{},"name":{},"text":{"45":{}},"component":{}}],["second",{"_index":472,"title":{},"name":{},"text":{"5":{},"6":{},"25":{},"29":{},"42":{},"46":{},"49":{}},"component":{}}],["secret",{"_index":319,"title":{"4-11":{},"47-7":{},"47-8":{}},"name":{},"text":{"4":{},"32":{},"33":{},"47":{},"52":{},"57":{},"71":{}},"component":{}}],["secret.method=bas",{"_index":2113,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["secret.value=secret",{"_index":2114,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["section",{"_index":380,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"9":{},"14":{},"16":{},"17":{},"18":{},"19":{},"23":{},"24":{},"26":{},"27":{},"29":{},"33":{},"36":{},"41":{},"42":{},"43":{},"47":{},"49":{},"50":{},"54":{},"57":{},"58":{},"59":{},"65":{},"70":{},"74":{}},"component":{}}],["secur",{"_index":8,"title":{"1-6":{}},"name":{},"text":{"21":{},"32":{},"33":{},"41":{},"47":{},"49":{},"60":{},"69":{}},"component":{}}],["security_example_json",{"_index":2065,"title":{},"name":{},"text":{"32":{}},"component":{}}],["security_scheme_nam",{"_index":2066,"title":{},"name":{},"text":{"32":{}},"component":{}}],["securityschem",{"_index":2056,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["sed",{"_index":2890,"title":{},"name":{},"text":{"47":{}},"component":{}}],["see",{"_index":366,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"64":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["select",{"_index":914,"title":{},"name":{},"text":{"10":{},"18":{},"25":{},"27":{},"28":{},"33":{},"43":{},"45":{},"57":{},"58":{},"66":{},"68":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["selector",{"_index":1310,"title":{},"name":{},"text":{"16":{},"25":{},"27":{},"60":{}},"component":{}}],["self",{"_index":3374,"title":{},"name":{},"text":{"69":{}},"component":{}}],["semant",{"_index":2352,"title":{},"name":{},"text":{"35":{},"46":{}},"component":{}}],["semicolon",{"_index":1912,"title":{},"name":{},"text":{"27":{},"60":{}},"component":{}}],["send",{"_index":514,"title":{"6-15":{},"6-16":{},"17-3":{},"24-1":{},"36-2":{},"66-2":{}},"name":{},"text":{"6":{},"13":{},"14":{},"16":{},"17":{},"20":{},"21":{},"25":{},"28":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"45":{},"47":{},"57":{},"58":{},"59":{},"66":{},"67":{}},"component":{}}],["sendev",{"_index":1565,"title":{},"name":{},"text":{"20":{}},"component":{}}],["sendresum",{"_index":1563,"title":{},"name":{},"text":{"20":{}},"component":{}}],["sendtolog",{"_index":1740,"title":{},"name":{},"text":{"23":{}},"component":{}}],["sensit",{"_index":987,"title":{},"name":{},"text":{"11":{}},"component":{}}],["sent",{"_index":1300,"title":{},"name":{},"text":{"16":{},"24":{},"42":{},"46":{},"66":{}},"component":{}}],["separ",{"_index":812,"title":{},"name":{},"text":{"8":{},"11":{},"14":{},"15":{},"27":{},"33":{},"34":{},"35":{},"41":{},"53":{},"58":{}},"component":{}}],["sequenc",{"_index":968,"title":{},"name":{},"text":{"11":{},"45":{}},"component":{}}],["sequenti",{"_index":2294,"title":{},"name":{},"text":{"34":{},"36":{}},"component":{}}],["seri",{"_index":1070,"title":{},"name":{},"text":{"13":{},"50":{}},"component":{}}],["serial",{"_index":610,"title":{},"name":{},"text":{"6":{},"13":{},"23":{}},"component":{}}],["serv",{"_index":410,"title":{},"name":{},"text":{"5":{},"6":{},"16":{},"17":{},"21":{},"24":{},"30":{},"57":{},"58":{},"59":{}},"component":{}}],["server",{"_index":474,"title":{"35-4":{},"43-2":{},"43-3":{}},"name":{},"text":{"5":{},"6":{},"20":{},"25":{},"27":{},"32":{},"33":{},"35":{},"42":{},"43":{},"47":{},"50":{},"69":{}},"component":{}}],["serverless",{"_index":73,"title":{"4":{},"57":{},"67":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{},"4-4":{},"33-2":{},"68-1":{},"69-2":{},"70-1":{},"72-1":{},"72-2":{},"73-1":{},"74-1":{},"74-2":{},"74-3":{},"74-4":{}},"name":{"4":{},"26":{},"50":{},"67":{},"68":{},"69":{},"70":{},"71":{}},"text":{"1":{},"4":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"24":{},"25":{},"27":{},"29":{},"30":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"49":{},"50":{},"55":{},"57":{},"58":{},"59":{},"64":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["serverless/serverless",{"_index":3246,"title":{},"name":{},"text":{"59":{}},"component":{}}],["serverless_workflow_vscode_extension_version.vsix",{"_index":3400,"title":{},"name":{},"text":{"74":{}},"component":{}}],["serverlessworkflow",{"_index":179,"title":{},"name":{},"text":{},"component":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}}}],["servic",{"_index":5,"title":{"6":{},"16":{},"20":{},"24":{},"28":{},"32":{},"33":{},"34":{},"35":{},"36":{},"43":{},"48":{},"54":{},"60":{},"71":{},"1-4":{},"1-11":{},"1-12":{},"14-1":{},"14-3":{},"14-4":{},"14-5":{},"14-9":{},"14-11":{},"16-1":{},"16-3":{},"16-6":{},"16-7":{},"28-4":{},"32-1":{},"34-3":{},"34-4":{},"34-5":{},"34-8":{},"36-5":{},"43-1":{},"46-6":{},"46-7":{},"53-2":{},"60-2":{},"60-3":{},"60-4":{},"60-5":{},"60-6":{},"69-1":{},"71-1":{},"71-2":{},"74-5":{},"74-6":{}},"name":{"16":{},"20":{},"21":{},"32":{},"33":{},"34":{},"35":{},"36":{},"43":{},"60":{},"71":{}},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["service(",{"_index":2400,"title":{},"name":{},"text":{"36":{}},"component":{}}],["service.backoffretrymilli",{"_index":1894,"title":{},"name":{},"text":{"27":{}},"component":{}}],["service.default.10.109.169.193.sslip.io",{"_index":623,"title":{},"name":{},"text":{"6":{},"24":{}},"component":{}}],["service.default.10.109.169.193.sslip.io/plainjsonfunct",{"_index":632,"title":{},"name":{},"text":{"6":{}},"component":{}}],["service.http.job",{"_index":1939,"title":{},"name":{},"text":{"27":{}},"component":{}}],["service.kafka.job",{"_index":1955,"title":{},"name":{},"text":{"27":{}},"component":{}}],["service.maxintervallimittoretrymilli",{"_index":1895,"title":{},"name":{},"text":{"27":{}},"component":{}}],["service.url=http://localhost:8280",{"_index":1973,"title":{},"name":{},"text":{"28":{}},"component":{}}],["service.yml",{"_index":2177,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service.yml#exchanger",{"_index":2145,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service/exchang",{"_index":2181,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service:java:com.acme.myinterfaceorclass::mymethod",{"_index":535,"title":{},"name":{},"text":{"6":{}},"component":{}}],["service:java:org.kie.kogito.examples.evenservice::iseven",{"_index":1005,"title":{},"name":{},"text":{"11":{}},"component":{}}],["service:org.kie.kogito.examples.exchangeworkflowhelper::validateinput",{"_index":2142,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service?path=/funct",{"_index":1750,"title":{},"name":{},"text":{"24":{}},"component":{}}],["service?path=/plainjsonfunct",{"_index":629,"title":{},"name":{},"text":{"6":{}},"component":{}}],["service?path=/plainjsonfunction&ascloudevent=tru",{"_index":651,"title":{},"name":{},"text":{"6":{}},"component":{}}],["service_api",{"_index":2269,"title":{},"name":{},"text":{"34":{}},"component":{}}],["service_api.url=http://localhost:8282",{"_index":2268,"title":{},"name":{},"text":{"34":{}},"component":{}}],["service_error",{"_index":2149,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service_healthi",{"_index":1289,"title":{},"name":{},"text":{"16":{}},"component":{}}],["serviceaccount",{"_index":3297,"title":{},"name":{},"text":{"60":{}},"component":{}}],["servicemonitor",{"_index":1768,"title":{},"name":{},"text":{"25":{}},"component":{}}],["services.app",{"_index":3373,"title":{},"name":{},"text":{"69":{}},"component":{}}],["services.serving.knative.dev",{"_index":3166,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["services.v1",{"_index":3272,"title":{},"name":{},"text":{"60":{}},"component":{}}],["services.v1.serving.knative.dev",{"_index":3273,"title":{},"name":{},"text":{"60":{}},"component":{}}],["serving.knative.dev",{"_index":3290,"title":{},"name":{},"text":{"60":{}},"component":{}}],["serving.knative.dev/v1",{"_index":1435,"title":{},"name":{},"text":{"17":{},"57":{},"58":{},"59":{}},"component":{}}],["set",{"_index":347,"title":{"65-5":{},"68-1":{},"69-1":{},"74-4":{}},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"11":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"22":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"41":{},"43":{},"46":{},"47":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["setbodi",{"_index":1727,"title":{},"name":{},"text":{"23":{}},"component":{}}],["setconst",{"_index":942,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["setter",{"_index":2176,"title":{},"name":{},"text":{"33":{}},"component":{}}],["setting.json",{"_index":3406,"title":{},"name":{},"text":{"74":{}},"component":{}}],["settings.json",{"_index":3408,"title":{},"name":{},"text":{"74":{}},"component":{}}],["setup",{"_index":698,"title":{},"name":{},"text":{"6":{},"12":{},"19":{},"27":{},"30":{},"31":{},"41":{},"65":{},"69":{},"74":{}},"component":{}}],["setup.j",{"_index":1805,"title":{},"name":{},"text":{"26":{}},"component":{}}],["sever",{"_index":827,"title":{},"name":{},"text":{"9":{},"10":{},"16":{},"18":{},"41":{}},"component":{}}],["share",{"_index":505,"title":{},"name":{},"text":{"5":{},"10":{},"15":{},"16":{},"30":{},"35":{},"68":{}},"component":{}}],["shell",{"_index":2535,"title":{},"name":{},"text":{"41":{}},"component":{}}],["ship",{"_index":1898,"title":{},"name":{},"text":{"27":{},"42":{},"45":{}},"component":{}}],["shippingrespons",{"_index":2732,"title":{},"name":{},"text":{"45":{}},"component":{}}],["shippingservic",{"_index":2750,"title":{},"name":{},"text":{"45":{}},"component":{}}],["short",{"_index":974,"title":{},"name":{},"text":{"11":{},"71":{}},"component":{}}],["shortli",{"_index":3349,"title":{},"name":{},"text":{"67":{}},"component":{}}],["show",{"_index":329,"title":{},"name":{},"text":{"4":{},"6":{},"12":{},"13":{},"16":{},"17":{},"19":{},"26":{},"27":{},"32":{},"33":{},"37":{},"42":{},"45":{},"46":{},"65":{},"67":{}},"component":{}}],["showcas",{"_index":178,"title":{"46":{},"9-9":{}},"name":{"46":{}},"text":{"1":{},"2":{},"9":{},"14":{},"27":{},"46":{}},"component":{}}],["shown",{"_index":386,"title":{},"name":{},"text":{"4":{},"6":{},"8":{},"13":{},"17":{},"25":{},"26":{},"27":{},"29":{},"32":{},"33":{},"34":{},"36":{},"37":{},"41":{},"42":{},"43":{},"45":{},"60":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["shut",{"_index":1963,"title":{},"name":{},"text":{"27":{}},"component":{}}],["side",{"_index":1026,"title":{"35-4":{},"35-5":{}},"name":{},"text":{"12":{},"26":{},"35":{},"70":{},"74":{}},"component":{}}],["sign",{"_index":3358,"title":{},"name":{},"text":{"68":{},"69":{}},"component":{}}],["signal",{"_index":2598,"title":{},"name":{},"text":{"42":{},"51":{}},"component":{}}],["signatur",{"_index":544,"title":{},"name":{},"text":{"6":{}},"component":{}}],["signific",{"_index":1487,"title":{},"name":{},"text":{"19":{}},"component":{}}],["silent",{"_index":808,"title":{},"name":{},"text":{"8":{}},"component":{}}],["silentev",{"_index":811,"title":{},"name":{},"text":{"8":{}},"component":{}}],["similar",{"_index":788,"title":{},"name":{},"text":{"7":{},"8":{},"10":{},"14":{},"25":{},"32":{},"33":{},"36":{},"38":{},"46":{},"49":{},"53":{},"60":{}},"component":{}}],["simpl",{"_index":712,"title":{"35-3":{}},"name":{},"text":{"6":{},"15":{},"23":{},"32":{},"35":{},"37":{},"46":{},"53":{}},"component":{}}],["simpli",{"_index":1266,"title":{},"name":{},"text":{"15":{},"23":{},"28":{},"49":{}},"component":{}}],["simplif",{"_index":2803,"title":{},"name":{},"text":{"46":{}},"component":{}}],["simplifi",{"_index":609,"title":{},"name":{},"text":{"6":{},"14":{},"60":{}},"component":{}}],["simul",{"_index":343,"title":{},"name":{},"text":{"4":{},"12":{},"34":{}},"component":{}}],["simultan",{"_index":1064,"title":{},"name":{},"text":{"13":{},"42":{}},"component":{}}],["singl",{"_index":339,"title":{},"name":{},"text":{"4":{},"8":{},"14":{},"27":{},"35":{},"36":{},"45":{},"46":{},"67":{},"70":{}},"component":{}}],["singleton",{"_index":1960,"title":{},"name":{},"text":{"27":{}},"component":{}}],["sink",{"_index":134,"title":{"42":{},"17-2":{}},"name":{},"text":{"1":{},"16":{},"17":{},"27":{},"38":{},"42":{}},"component":{}}],["sink.start",{"_index":2571,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sink.stop",{"_index":2575,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sink.stubfor(post(\"/\").willreturn(aresponse().withbody(\"ok\").withstatus(200",{"_index":2572,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sink.verify(1",{"_index":2594,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sink.verify(2",{"_index":2592,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sinkbind",{"_index":1361,"title":{"42-2":{}},"name":{},"text":{"17":{},"27":{},"28":{},"42":{}},"component":{}}],["situat",{"_index":556,"title":{},"name":{},"text":{"6":{},"9":{},"45":{}},"component":{}}],["size",{"_index":485,"title":{},"name":{},"text":{"5":{},"18":{},"27":{},"55":{}},"component":{}}],["size=100",{"_index":1481,"title":{},"name":{},"text":{"18":{}},"component":{}}],["skeleton",{"_index":2830,"title":{},"name":{},"text":{"47":{}},"component":{}}],["skip",{"_index":927,"title":{},"name":{},"text":{"10":{},"14":{},"38":{},"46":{},"47":{},"50":{},"55":{},"59":{},"71":{}},"component":{}}],["sleep",{"_index":331,"title":{},"name":{},"text":{"4":{}},"component":{}}],["slider",{"_index":3335,"title":{},"name":{},"text":{"66":{}},"component":{}}],["slightli",{"_index":2863,"title":{},"name":{},"text":{"47":{}},"component":{}}],["small",{"_index":3097,"title":{},"name":{},"text":{"55":{}},"component":{}}],["smallry",{"_index":1260,"title":{"18-1":{},"18-2":{}},"name":{},"text":{"14":{},"16":{},"17":{},"18":{},"20":{},"21":{},"28":{},"38":{},"41":{}},"component":{}}],["snapshot",{"_index":1306,"title":{},"name":{},"text":{"16":{},"21":{},"25":{},"27":{},"30":{},"34":{},"50":{},"57":{},"58":{},"59":{}},"component":{}}],["snippet",{"_index":1940,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{}}],["solut",{"_index":2135,"title":{},"name":{},"text":{"33":{}},"component":{}}],["someon",{"_index":3360,"title":{},"name":{},"text":{"68":{}},"component":{}}],["someth",{"_index":1140,"title":{},"name":{},"text":{"14":{},"49":{},"54":{}},"component":{}}],["sometim",{"_index":1358,"title":{},"name":{},"text":{"17":{},"49":{}},"component":{}}],["sonataflow",{"_index":20,"title":{"1":{},"3":{},"5":{},"6":{},"7":{},"8":{},"9":{},"11":{},"12":{},"13":{},"19":{},"22":{},"24":{},"29":{},"32":{},"37":{},"41":{},"45":{},"46":{},"50":{},"51":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"9-7":{},"14-1":{},"23-1":{},"23-2":{},"25-1":{},"25-2":{},"25-5":{},"41-1":{},"46-5":{},"47-8":{},"50-1":{},"50-3":{},"50-5":{},"60-4":{},"64-1":{},"67-1":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"70":{},"74":{}},"component":{}}],["sonataflow.org/descript",{"_index":2899,"title":{},"name":{},"text":{"47":{},"49":{},"53":{}},"component":{}}],["sonataflow.org/profil",{"_index":2937,"title":{},"name":{},"text":{"49":{},"53":{}},"component":{}}],["sonataflow.org/v1alpha08",{"_index":2864,"title":{},"name":{},"text":{"47":{},"49":{},"52":{},"53":{}},"component":{}}],["sonataflow.org/vers",{"_index":2900,"title":{},"name":{},"text":{"47":{},"49":{},"53":{}},"component":{}}],["sonataflowbuild",{"_index":2874,"title":{},"name":{},"text":{"47":{},"50":{},"54":{}},"component":{}}],["sonataflowplatform",{"_index":2817,"title":{},"name":{},"text":{"47":{},"49":{},"50":{},"52":{},"54":{}},"component":{}}],["sonataflowplatform.yaml",{"_index":2887,"title":{},"name":{},"text":{"47":{}},"component":{}}],["soon",{"_index":2797,"title":{},"name":{},"text":{"46":{}},"component":{}}],["sort",{"_index":1168,"title":{},"name":{},"text":{"14":{},"26":{},"66":{}},"component":{}}],["sortord",{"_index":1834,"title":{},"name":{},"text":{"26":{}},"component":{}}],["sourc",{"_index":655,"title":{"17-1":{}},"name":{},"text":{"6":{},"8":{},"12":{},"14":{},"15":{},"17":{},"19":{},"26":{},"29":{},"30":{},"33":{},"35":{},"37":{},"42":{},"43":{},"46":{},"64":{},"65":{},"66":{},"72":{}},"component":{}}],["sources.knative.dev/v1",{"_index":1432,"title":{},"name":{},"text":{"17":{},"27":{}},"component":{}}],["space",{"_index":3046,"title":{},"name":{},"text":{"53":{}},"component":{}}],["span",{"_index":1828,"title":{"27-2":{}},"name":{},"text":{"26":{}},"component":{}}],["spanish",{"_index":916,"title":{},"name":{},"text":{"10":{},"35":{},"47":{},"49":{}},"component":{}}],["spec",{"_index":1249,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"25":{},"27":{},"47":{},"49":{},"52":{},"53":{},"57":{},"58":{},"59":{},"67":{},"74":{}},"component":{}}],["spec.build",{"_index":3031,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.build.config",{"_index":3030,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.build.config.strategyoptions.kanikobuildcacheen",{"_index":2885,"title":{},"name":{},"text":{"47":{}},"component":{}}],["spec.build.templ",{"_index":3032,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.devmode.baseimag",{"_index":3034,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.devmodebaseimag",{"_index":3033,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.host",{"_index":3237,"title":{},"name":{},"text":{"59":{}},"component":{}}],["spec.platform",{"_index":3029,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.resourc",{"_index":3049,"title":{},"name":{},"text":{"53":{}},"component":{}}],["spec:\\n",{"_index":2819,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["spec_titl",{"_index":460,"title":{},"name":{},"text":{"5":{},"34":{}},"component":{}}],["special",{"_index":1723,"title":{},"name":{},"text":{"23":{}},"component":{}}],["specif",{"_index":74,"title":{"4":{},"36-2":{},"43-3":{},"51-2":{}},"name":{"4":{}},"text":{"1":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"11":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"25":{},"26":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"41":{},"42":{},"43":{},"45":{},"47":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"65":{},"67":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["specifi",{"_index":351,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"9":{},"10":{},"11":{},"14":{},"15":{},"18":{},"29":{},"30":{},"31":{},"33":{},"37":{},"38":{},"41":{},"42":{},"47":{},"55":{},"74":{}},"component":{}}],["specs/acm",{"_index":2144,"title":{},"name":{},"text":{"33":{}},"component":{}}],["specs/multiplication.yaml#dooper",{"_index":2406,"title":{},"name":{},"text":{"36":{}},"component":{}}],["specs/subtraction.yaml#dooper",{"_index":935,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["specs/workflow",{"_index":3038,"title":{},"name":{},"text":{"53":{}},"component":{}}],["specvers",{"_index":653,"title":{},"name":{},"text":{"6":{},"13":{},"17":{},"19":{},"21":{},"34":{},"42":{}},"component":{}}],["specversion\":\"1.0\",\"id\":\"41495513",{"_index":1384,"title":{},"name":{},"text":{"17":{}},"component":{}}],["speed",{"_index":2886,"title":{},"name":{},"text":{"47":{},"50":{},"55":{}},"component":{}}],["spent",{"_index":3308,"title":{},"name":{},"text":{"62":{}},"component":{}}],["spring",{"_index":2391,"title":{},"name":{},"text":{"36":{}},"component":{}}],["sql",{"_index":2036,"title":{},"name":{},"text":{"31":{}},"component":{}}],["squarest",{"_index":955,"title":{},"name":{},"text":{"10":{}},"component":{}}],["sr2j2",{"_index":2999,"title":{},"name":{},"text":{"50":{}},"component":{}}],["src/main/resourc",{"_index":1073,"title":{},"name":{},"text":{"13":{},"21":{},"34":{},"35":{},"36":{},"41":{},"67":{},"68":{}},"component":{}}],["src/main/resources/application.properti",{"_index":412,"title":{},"name":{},"text":{"5":{}},"component":{}}],["src/main/resources/dashboard",{"_index":3311,"title":{},"name":{},"text":{"63":{}},"component":{}}],["src/main/resources/myopenapifile.yaml",{"_index":2388,"title":{},"name":{},"text":{"36":{}},"component":{}}],["src/main/resources/openapi/stock",{"_index":2256,"title":{},"name":{},"text":{"34":{}},"component":{}}],["src/main/resources/rout",{"_index":1722,"title":{},"name":{},"text":{"23":{}},"component":{}}],["src/main/resources/spec",{"_index":2178,"title":{},"name":{},"text":{"33":{},"36":{}},"component":{}}],["src/test/java/org/kie/kogito/exampl",{"_index":2454,"title":{},"name":{},"text":{"38":{}},"component":{}}],["sso",{"_index":3419,"title":{},"name":{},"text":{"74":{}},"component":{}}],["stage",{"_index":962,"title":{},"name":{},"text":{"10":{},"28":{},"50":{},"54":{}},"component":{}}],["standalon",{"_index":171,"title":{"16":{},"14-3":{},"16-3":{},"46-7":{}},"name":{},"text":{"1":{},"9":{},"14":{},"16":{},"27":{},"28":{},"46":{}},"component":{}}],["standard",{"_index":837,"title":{},"name":{},"text":{"9":{},"32":{},"42":{},"47":{}},"component":{}}],["start",{"_index":1,"title":{"1-1":{},"43-2":{},"43-3":{},"65-2":{},"65-3":{},"65-6":{},"65-7":{}},"name":{},"text":{"3":{},"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"19":{},"21":{},"22":{},"25":{},"26":{},"27":{},"29":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"47":{},"49":{},"50":{},"53":{},"54":{},"55":{},"58":{},"60":{},"62":{},"64":{},"65":{},"66":{},"67":{},"70":{}},"component":{}}],["start\":\"waitforev",{"_index":820,"title":{},"name":{},"text":{"8":{}},"component":{}}],["start=tru",{"_index":2014,"title":{},"name":{},"text":{"30":{},"31":{}},"component":{}}],["startkeycloak.sh",{"_index":2213,"title":{},"name":{},"text":{"33":{}},"component":{}}],["startsink",{"_index":2569,"title":{},"name":{},"text":{"42":{}},"component":{}}],["startup",{"_index":1662,"title":{},"name":{},"text":{"21":{},"27":{},"30":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["startwiremockserverforfeaturea",{"_index":2659,"title":{},"name":{},"text":{"43":{}},"component":{}}],["startwiremockserverforfeatureb",{"_index":2660,"title":{},"name":{},"text":{"43":{}},"component":{}}],["state",{"_index":77,"title":{"4-1":{},"9-3":{},"9-4":{},"9-5":{},"12-1":{},"36-4":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"26":{},"27":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"45":{},"46":{},"47":{},"49":{},"53":{},"54":{},"62":{},"66":{},"67":{}},"component":{}}],["state[ev",{"_index":350,"title":{},"name":{},"text":{"4":{}},"component":{}}],["statedatafilt",{"_index":961,"title":{},"name":{},"text":{"10":{},"35":{}},"component":{}}],["statefulset",{"_index":3288,"title":{},"name":{},"text":{"60":{}},"component":{}}],["statefulsets.v1.app",{"_index":3277,"title":{},"name":{},"text":{"60":{}},"component":{}}],["static",{"_index":615,"title":{"53-2":{}},"name":{},"text":{"6":{},"21":{},"29":{},"33":{},"38":{},"42":{},"43":{},"53":{},"60":{}},"component":{}}],["static_config",{"_index":1779,"title":{},"name":{},"text":{"25":{}},"component":{}}],["static_init",{"_index":3303,"title":{},"name":{},"text":{"60":{}},"component":{}}],["statu",{"_index":301,"title":{"54":{},"54-1":{},"67-2":{}},"name":{"54":{}},"text":{"3":{},"4":{},"11":{},"14":{},"27":{},"33":{},"38":{},"43":{},"46":{},"49":{},"50":{},"54":{},"58":{},"62":{},"66":{},"67":{}},"component":{}}],["statuscode(200",{"_index":2590,"title":{},"name":{},"text":{"42":{}},"component":{}}],["statuscode(201",{"_index":1992,"title":{},"name":{},"text":{"29":{},"38":{}},"component":{}}],["statuscode(404",{"_index":2000,"title":{},"name":{},"text":{"29":{}},"component":{}}],["stay",{"_index":1961,"title":{},"name":{},"text":{"27":{}},"component":{}}],["stdout",{"_index":1643,"title":{},"name":{},"text":{"21":{}},"component":{}}],["step",{"_index":1726,"title":{},"name":{},"text":{"23":{},"24":{},"26":{},"28":{},"41":{},"45":{},"46":{},"47":{},"55":{},"57":{},"58":{},"59":{},"71":{}},"component":{}}],["still",{"_index":1934,"title":{},"name":{},"text":{"27":{},"47":{},"57":{},"58":{},"59":{}},"component":{}}],["stock",{"_index":2265,"title":{},"name":{},"text":{"34":{},"45":{}},"component":{}}],["stock_portfolio_svc_yaml",{"_index":2255,"title":{},"name":{},"text":{"34":{}},"component":{}}],["stockprofit",{"_index":2286,"title":{},"name":{},"text":{"34":{}},"component":{}}],["stockrespons",{"_index":2719,"title":{},"name":{},"text":{"45":{}},"component":{}}],["stop",{"_index":1561,"title":{},"name":{},"text":{"20":{},"21":{},"33":{},"38":{},"42":{},"43":{},"49":{}},"component":{}}],["stopsink",{"_index":2574,"title":{},"name":{},"text":{"42":{}},"component":{}}],["storag",{"_index":151,"title":{"14-6":{},"63-3":{}},"name":{},"text":{"1":{},"63":{},"74":{}},"component":{}}],["store",{"_index":963,"title":{},"name":{},"text":{"10":{},"14":{},"15":{},"16":{},"18":{},"19":{},"27":{},"30":{},"35":{},"36":{},"46":{},"48":{},"58":{},"59":{},"72":{},"74":{}},"component":{}}],["straight",{"_index":2703,"title":{},"name":{},"text":{"45":{}},"component":{}}],["straightforward",{"_index":2559,"title":{},"name":{},"text":{"41":{}},"component":{}}],["strategi",{"_index":435,"title":{"41-4":{}},"name":{},"text":{"5":{},"11":{},"18":{},"30":{},"34":{},"41":{},"46":{}},"component":{}}],["strategy=buff",{"_index":1479,"title":{},"name":{},"text":{"18":{}},"component":{}}],["strategy=none|unbounded|fail|drop",{"_index":1485,"title":{},"name":{},"text":{"18":{}},"component":{}}],["strategy=project",{"_index":2018,"title":{},"name":{},"text":{"30":{}},"component":{}}],["strategyopt",{"_index":2883,"title":{},"name":{},"text":{"47":{}},"component":{}}],["stream",{"_index":475,"title":{"35-4":{},"35-5":{},"35-6":{}},"name":{},"text":{"5":{},"21":{},"35":{}},"component":{}}],["strict",{"_index":2813,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["string",{"_index":422,"title":{},"name":{},"text":{"5":{},"6":{},"7":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"23":{},"29":{},"30":{},"32":{},"33":{},"35":{},"36":{},"43":{},"60":{},"74":{}},"component":{}}],["structur",{"_index":596,"title":{},"name":{},"text":{"6":{},"14":{},"17":{},"31":{},"36":{},"54":{},"67":{},"73":{},"74":{}},"component":{}}],["stub",{"_index":2599,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["studio",{"_index":1580,"title":{},"name":{},"text":{"21":{},"22":{},"74":{}},"component":{}}],["stunner",{"_index":3337,"title":{},"name":{},"text":{"66":{}},"component":{}}],["sub",{"_index":862,"title":{},"name":{},"text":{"9":{},"27":{}},"component":{}}],["subcommand",{"_index":2533,"title":{},"name":{},"text":{"41":{}},"component":{}}],["subflow",{"_index":3037,"title":{},"name":{},"text":{"53":{}},"component":{}}],["subject",{"_index":657,"title":{},"name":{},"text":{"6":{},"17":{},"27":{},"60":{}},"component":{}}],["submit",{"_index":1752,"title":{},"name":{},"text":{"24":{}},"component":{}}],["subscrib",{"_index":1251,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"20":{},"27":{}},"component":{}}],["subscript",{"_index":1436,"title":{},"name":{},"text":{"17":{},"20":{},"50":{}},"component":{}}],["substitut",{"_index":2422,"title":{},"name":{},"text":{"36":{}},"component":{}}],["subtract",{"_index":934,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["subtraction.yaml",{"_index":2418,"title":{},"name":{},"text":{"36":{}},"component":{}}],["subtraction_url",{"_index":2424,"title":{},"name":{},"text":{"36":{}},"component":{}}],["subtraction_yaml",{"_index":2419,"title":{},"name":{},"text":{"36":{}},"component":{}}],["subtractvalu",{"_index":938,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["succeed",{"_index":3244,"title":{},"name":{},"text":{"59":{}},"component":{}}],["success",{"_index":986,"title":{},"name":{},"text":{"11":{},"33":{},"38":{},"45":{},"50":{},"65":{},"66":{},"67":{}},"component":{}}],["successfulli",{"_index":1027,"title":{},"name":{},"text":{"12":{},"37":{},"38":{},"41":{},"42":{},"54":{},"65":{},"66":{},"67":{},"72":{}},"component":{}}],["successthreshold",{"_index":3198,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["such",{"_index":208,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"10":{},"11":{},"12":{},"19":{},"21":{},"25":{},"26":{},"27":{},"28":{},"29":{},"32":{},"33":{},"34":{},"35":{},"36":{},"41":{},"42":{},"45":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{},"62":{},"64":{},"66":{},"70":{},"74":{}},"component":{}}],["suffix",{"_index":1737,"title":{},"name":{},"text":{"23":{},"32":{},"48":{}},"component":{}}],["suggest",{"_index":1455,"title":{},"name":{},"text":{"18":{}},"component":{}}],["suit",{"_index":1864,"title":{},"name":{},"text":{"27":{}},"component":{}}],["suitabl",{"_index":1016,"title":{},"name":{},"text":{"12":{},"18":{},"37":{},"43":{}},"component":{}}],["summari",{"_index":1555,"title":{},"name":{},"text":{"20":{},"36":{},"62":{}},"component":{}}],["support",{"_index":52,"title":{"27-14":{},"49-10":{},"74-3":{}},"name":{"4":{},"6":{},"9":{},"32":{}},"text":{"1":{},"2":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"41":{},"46":{},"47":{},"51":{},"59":{},"60":{},"74":{}},"component":{}}],["support.adoc#send",{"_index":1760,"title":{},"name":{},"text":{"24":{}},"component":{}}],["suppos",{"_index":2129,"title":{},"name":{},"text":{"33":{}},"component":{}}],["sure",{"_index":1223,"title":{},"name":{},"text":{"14":{},"27":{},"28":{},"49":{},"57":{},"59":{},"66":{}},"component":{}}],["suspend",{"_index":1066,"title":{},"name":{},"text":{"13":{},"66":{}},"component":{}}],["svc",{"_index":2910,"title":{},"name":{},"text":{"47":{}},"component":{}}],["svc.yaml",{"_index":2258,"title":{},"name":{},"text":{"34":{}},"component":{}}],["svc.yaml#getstockpric",{"_index":2290,"title":{},"name":{},"text":{"34":{}},"component":{}}],["svc.yaml#getstockprofit",{"_index":2292,"title":{},"name":{},"text":{"34":{}},"component":{}}],["svg",{"_index":3396,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{}}],["sw",{"_index":200,"title":{},"name":{},"text":{"2":{},"19":{},"33":{}},"component":{}}],["sw.json",{"_index":2828,"title":{},"name":{},"text":{"47":{},"70":{},"72":{}},"component":{}}],["sw.yaml",{"_index":3393,"title":{},"name":{},"text":{"72":{}},"component":{}}],["sw.yaml|yml",{"_index":3378,"title":{},"name":{},"text":{"70":{}},"component":{}}],["swagger",{"_index":773,"title":{"7-4":{}},"name":{},"text":{"7":{},"21":{},"36":{},"49":{},"67":{}},"component":{}}],["swagger/openapi",{"_index":2395,"title":{},"name":{},"text":{"36":{}},"component":{}}],["swaggerui",{"_index":1590,"title":{},"name":{},"text":{"21":{}},"component":{}}],["swf",{"_index":261,"title":{},"name":{"72":{},"73":{},"74":{}},"text":{"2":{},"47":{}},"component":{}}],["swf_metric",{"_index":1810,"title":{},"name":{},"text":{"26":{}},"component":{}}],["switch",{"_index":357,"title":{"9-4":{},"10-1":{}},"name":{},"text":{"4":{},"9":{},"10":{},"27":{},"33":{},"46":{},"47":{},"49":{},"72":{}},"component":{}}],["switch_state_timeout",{"_index":2788,"title":{"46-2":{}},"name":{},"text":{"46":{}},"component":{}}],["symbol",{"_index":2295,"title":{},"name":{},"text":{"34":{}},"component":{}}],["sync",{"_index":39,"title":{},"name":{},"text":{"1":{},"68":{}},"component":{}}],["synchron",{"_index":3351,"title":{"68-2":{}},"name":{},"text":{"68":{},"70":{}},"component":{}}],["syntax",{"_index":1127,"title":{},"name":{},"text":{"14":{},"34":{}},"component":{}}],["sysout",{"_index":365,"title":{"6-1":{}},"name":{},"text":{"4":{},"6":{},"47":{},"49":{}},"component":{}}],["sysout:info",{"_index":520,"title":{},"name":{},"text":{"6":{}},"component":{}}],["system",{"_index":967,"title":{"27-6":{},"47-1":{}},"name":{},"text":{"11":{},"14":{},"21":{},"27":{},"28":{},"29":{},"34":{},"35":{},"36":{},"41":{},"42":{},"45":{},"46":{},"47":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"69":{}},"component":{}}],["system_username}/{project_artifactid}:{project_vers",{"_index":3081,"title":{},"name":{},"text":{"55":{}},"component":{}}],["systemout",{"_index":897,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["s|address",{"_index":2891,"title":{},"name":{},"text":{"47":{}},"component":{}}],["t",{"_index":2474,"title":{},"name":{},"text":{"38":{},"59":{}},"component":{}}],["tab",{"_index":2529,"title":{},"name":{},"text":{"41":{},"62":{},"67":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["tabl",{"_index":328,"title":{"65-1":{}},"name":{},"text":{"4":{},"5":{},"11":{},"14":{},"15":{},"16":{},"17":{},"26":{},"27":{},"30":{},"31":{},"32":{},"48":{},"54":{},"63":{},"65":{},"66":{},"74":{}},"component":{}}],["tag",{"_index":2182,"title":{},"name":{},"text":{"33":{},"36":{},"41":{},"57":{},"58":{},"59":{}},"component":{}}],["tailor",{"_index":2811,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["take",{"_index":877,"title":{},"name":{},"text":{"9":{},"12":{},"16":{},"17":{},"30":{},"41":{},"57":{},"65":{},"67":{}},"component":{}}],["taken",{"_index":912,"title":{},"name":{},"text":{"10":{}},"component":{}}],["target",{"_index":959,"title":{},"name":{},"text":{"10":{},"17":{},"25":{},"34":{},"47":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["target/classes/meta",{"_index":1291,"title":{},"name":{},"text":{"16":{}},"component":{}}],["target/knative.yml",{"_index":1426,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{}}],["target/kogito.yml",{"_index":1425,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{}}],["target/kubernet",{"_index":1418,"title":{},"name":{},"text":{"17":{},"28":{},"41":{},"57":{},"58":{},"59":{}},"component":{}}],["target/kubernetes/knative.yml",{"_index":3203,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["target/lib",{"_index":3091,"title":{},"name":{},"text":{"55":{}},"component":{}}],["target/quarku",{"_index":2216,"title":{},"name":{},"text":{"33":{},"34":{},"60":{}},"component":{}}],["target=kn",{"_index":1416,"title":{},"name":{},"text":{"17":{},"57":{},"58":{},"59":{}},"component":{}}],["targetport",{"_index":1308,"title":{},"name":{},"text":{"16":{},"25":{}},"component":{}}],["task",{"_index":487,"title":{},"name":{},"text":{"5":{},"13":{},"25":{},"27":{}},"component":{}}],["tcp",{"_index":1319,"title":{},"name":{},"text":{"16":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["tekton",{"_index":3113,"title":{},"name":{"56":{}},"text":{},"component":{}}],["tell",{"_index":645,"title":{},"name":{},"text":{"6":{},"49":{},"53":{}},"component":{}}],["temperatur",{"_index":930,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["templat",{"_index":1315,"title":{},"name":{},"text":{"16":{},"47":{},"52":{},"57":{},"58":{},"59":{},"67":{},"74":{}},"component":{}}],["template='{{.spec.host",{"_index":2919,"title":{},"name":{},"text":{"47":{}},"component":{}}],["temporari",{"_index":1137,"title":{},"name":{},"text":{"14":{},"15":{},"16":{}},"component":{}}],["term",{"_index":1119,"title":{},"name":{},"text":{"14":{},"17":{},"31":{}},"component":{}}],["termin",{"_index":1013,"title":{},"name":{},"text":{"11":{},"13":{},"21":{},"24":{},"33":{},"34":{},"35":{},"36":{},"45":{},"46":{},"55":{},"57":{},"58":{},"59":{},"64":{}},"component":{}}],["test",{"_index":10,"title":{"29":{},"38":{},"1-7":{},"21-5":{},"29-2":{},"42-2":{},"42-3":{},"43-1":{},"43-3":{},"45-3":{},"55-4":{}},"name":{"29":{},"38":{}},"text":{"1":{},"2":{},"3":{},"5":{},"13":{},"17":{},"19":{},"21":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"38":{},"42":{},"43":{},"45":{},"47":{},"49":{},"50":{},"55":{},"67":{},"69":{},"70":{}},"component":{}}],["test@test.com",{"_index":1518,"title":{},"name":{},"text":{"19":{}},"component":{}}],["testcallbackrest",{"_index":1988,"title":{},"name":{},"text":{"29":{}},"component":{}}],["testcontain",{"_index":1336,"title":{},"name":{},"text":{"16":{}},"component":{}}],["testfeaturea",{"_index":2656,"title":{},"name":{},"text":{"43":{}},"component":{}}],["testfeatureb",{"_index":2657,"title":{},"name":{},"text":{"43":{}},"component":{}}],["testhello",{"_index":2466,"title":{},"name":{},"text":{"38":{}},"component":{}}],["text",{"_index":2335,"title":{},"name":{},"text":{"35":{},"65":{},"74":{}},"component":{}}],["text/plain",{"_index":2077,"title":{},"name":{},"text":{"32":{}},"component":{}}],["text/xml",{"_index":666,"title":{},"name":{},"text":{"6":{}},"component":{}}],["that’",{"_index":1382,"title":{},"name":{},"text":{"17":{},"23":{}},"component":{}}],["the*view",{"_index":3327,"title":{},"name":{},"text":{"65":{}},"component":{}}],["therefor",{"_index":397,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"16":{},"18":{},"19":{},"20":{},"25":{},"26":{},"30":{},"32":{},"34":{},"35":{},"36":{},"37":{},"45":{},"58":{},"60":{},"67":{},"68":{},"69":{}},"component":{}}],["there’",{"_index":3059,"title":{},"name":{},"text":{"54":{}},"component":{}}],["thing",{"_index":1279,"title":{},"name":{},"text":{"16":{}},"component":{}}],["third",{"_index":122,"title":{"33":{}},"name":{"33":{}},"text":{"1":{},"32":{},"43":{},"45":{}},"component":{}}],["those",{"_index":1242,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["though",{"_index":1445,"title":{},"name":{},"text":{"18":{},"30":{}},"component":{}}],["thought",{"_index":1131,"title":{},"name":{},"text":{"14":{}},"component":{}}],["thread",{"_index":60,"title":{},"name":{},"text":{"1":{},"4":{},"5":{},"21":{},"38":{},"45":{}},"component":{}}],["threadpoolexecutor",{"_index":479,"title":{},"name":{},"text":{"5":{}},"component":{}}],["three",{"_index":1068,"title":{},"name":{},"text":{"13":{},"35":{},"42":{},"54":{},"70":{}},"component":{}}],["through",{"_index":614,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"14":{},"15":{},"17":{},"18":{},"45":{},"66":{}},"component":{}}],["throughout",{"_index":3219,"title":{},"name":{},"text":{"58":{}},"component":{}}],["throw",{"_index":554,"title":{},"name":{},"text":{"6":{},"11":{},"12":{},"37":{},"42":{},"43":{},"45":{}},"component":{}}],["thrown",{"_index":782,"title":{},"name":{},"text":{"7":{},"23":{},"45":{}},"component":{}}],["thu",{"_index":908,"title":{},"name":{},"text":{"9":{},"27":{},"28":{},"46":{}},"component":{}}],["ti",{"_index":3050,"title":{},"name":{},"text":{"53":{}},"component":{}}],["till",{"_index":979,"title":{},"name":{},"text":{"11":{},"32":{}},"component":{}}],["time",{"_index":374,"title":{"9-6":{},"17-4":{}},"name":{},"text":{"4":{},"6":{},"9":{},"10":{},"14":{},"17":{},"19":{},"21":{},"27":{},"29":{},"30":{},"33":{},"34":{},"36":{},"38":{},"41":{},"42":{},"46":{},"47":{},"50":{},"53":{},"54":{},"60":{},"62":{},"63":{},"66":{},"74":{}},"component":{}}],["timelin",{"_index":3334,"title":{},"name":{},"text":{"66":{}},"component":{}}],["timeout",{"_index":97,"title":{"9":{},"46":{},"4-8":{},"6-18":{},"9-1":{},"9-2":{},"9-3":{},"9-4":{},"9-5":{},"9-9":{}},"name":{"9":{},"46":{}},"text":{"1":{},"2":{},"4":{},"5":{},"6":{},"9":{},"14":{},"16":{},"27":{},"28":{},"46":{}},"component":{}}],["timeouts_showcase_embed",{"_index":1268,"title":{},"name":{},"text":{"15":{}},"component":{}}],["timeoutsecond",{"_index":3199,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["timer",{"_index":164,"title":{},"name":{},"text":{"1":{},"9":{},"27":{},"28":{},"46":{}},"component":{}}],["timestamp",{"_index":3186,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["titl",{"_index":2075,"title":{},"name":{},"text":{"32":{},"33":{},"34":{},"36":{}},"component":{}}],["tl",{"_index":3242,"title":{},"name":{},"text":{"59":{}},"component":{}}],["togeth",{"_index":1519,"title":{},"name":{},"text":{"19":{},"46":{}},"component":{}}],["toggl",{"_index":3023,"title":{},"name":{},"text":{"51":{}},"component":{}}],["token",{"_index":2054,"title":{"32-3":{},"32-6":{},"68-1":{}},"name":{},"text":{"32":{},"33":{},"35":{},"59":{},"68":{},"69":{}},"component":{}}],["token=my_token",{"_index":2085,"title":{},"name":{},"text":{"32":{}},"component":{}}],["tokenurl",{"_index":2096,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["took",{"_index":3309,"title":{},"name":{},"text":{"62":{}},"component":{}}],["tool",{"_index":4,"title":{"22":{},"67":{},"68":{},"69":{},"70":{},"1-3":{},"68-1":{},"69-2":{},"70-1":{}},"name":{"22":{},"40":{},"44":{},"67":{},"68":{},"69":{},"70":{},"71":{}},"text":{"1":{},"4":{},"17":{},"21":{},"22":{},"24":{},"25":{},"29":{},"31":{},"36":{},"41":{},"43":{},"50":{},"55":{},"57":{},"58":{},"59":{},"64":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["toolbar",{"_index":3317,"title":{},"name":{},"text":{"65":{}},"component":{}}],["tools.custom.dashboard.fold",{"_index":3313,"title":{},"name":{},"text":{"63":{}},"component":{}}],["top",{"_index":3324,"title":{},"name":{},"text":{"65":{},"66":{},"68":{},"69":{},"71":{},"72":{}},"component":{}}],["topic",{"_index":1061,"title":{},"name":{},"text":{"12":{},"14":{},"16":{},"18":{},"20":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["topolog",{"_index":1133,"title":{},"name":{},"text":{"14":{},"69":{}},"component":{}}],["tostatedata",{"_index":894,"title":{},"name":{},"text":{"9":{},"10":{},"12":{},"46":{}},"component":{}}],["tostatedata\":\".paymentrespons",{"_index":2684,"title":{},"name":{},"text":{"45":{}},"component":{}}],["total",{"_index":1786,"title":{},"name":{},"text":{"25":{},"26":{},"38":{},"42":{},"53":{}},"component":{}}],["toward",{"_index":3367,"title":{},"name":{},"text":{"69":{}},"component":{}}],["trace",{"_index":521,"title":{},"name":{},"text":{"6":{}},"component":{}}],["track",{"_index":252,"title":{},"name":{},"text":{"2":{},"31":{},"45":{}},"component":{}}],["traffic",{"_index":2399,"title":{},"name":{},"text":{"36":{}},"component":{}}],["transact",{"_index":2664,"title":{},"name":{},"text":{"45":{}},"component":{}}],["transfer",{"_index":2562,"title":{},"name":{},"text":{"42":{}},"component":{}}],["transform",{"_index":1841,"title":{},"name":{},"text":{"26":{},"33":{}},"component":{}}],["transit",{"_index":860,"title":{},"name":{},"text":{"9":{},"10":{},"11":{},"12":{},"19":{},"21":{},"33":{},"34":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{},"54":{}},"component":{}}],["transition\":\"scheduleship",{"_index":2685,"title":{},"name":{},"text":{"45":{}},"component":{}}],["transition\":\"serviceerror",{"_index":2688,"title":{},"name":{},"text":{"45":{}},"component":{}}],["translat",{"_index":616,"title":{},"name":{},"text":{"6":{}},"component":{}}],["transmit",{"_index":1273,"title":{},"name":{},"text":{"15":{}},"component":{}}],["transpar",{"_index":1136,"title":{},"name":{},"text":{"14":{},"46":{}},"component":{}}],["transport",{"_index":1359,"title":{"37-2":{}},"name":{},"text":{"17":{},"27":{}},"component":{}}],["travel",{"_index":1158,"title":{},"name":{},"text":{"14":{}},"component":{}}],["tri",{"_index":743,"title":{},"name":{},"text":{"6":{},"11":{},"12":{},"22":{},"27":{},"35":{},"43":{},"47":{},"48":{},"49":{},"50":{},"54":{},"67":{},"73":{}},"component":{}}],["trigger",{"_index":116,"title":{},"name":{},"text":{"1":{},"8":{},"14":{},"16":{},"17":{},"19":{},"20":{},"27":{},"37":{},"42":{},"45":{},"55":{},"65":{},"66":{},"74":{}},"component":{}}],["triggereventref",{"_index":1030,"title":{},"name":{},"text":{"12":{},"19":{}},"component":{}}],["trimcustomoperation(functiondef",{"_index":737,"title":{},"name":{},"text":{"6":{}},"component":{}}],["troubleshoot",{"_index":11,"title":{"1-7":{},"49-7":{},"49-8":{}},"name":{"40":{}},"text":{"49":{},"54":{}},"component":{}}],["true",{"_index":353,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"21":{},"23":{},"24":{},"26":{},"27":{},"33":{},"34":{},"35":{},"36":{},"46":{},"47":{},"49":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["tune",{"_index":2873,"title":{},"name":{},"text":{"47":{}},"component":{}}],["tunnel",{"_index":3218,"title":{},"name":{},"text":{"58":{}},"component":{}}],["turn",{"_index":921,"title":{},"name":{},"text":{"10":{}},"component":{}}],["tutori",{"_index":3144,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["two",{"_index":274,"title":{},"name":{},"text":{"3":{},"6":{},"8":{},"10":{},"12":{},"13":{},"17":{},"18":{},"21":{},"35":{},"42":{},"46":{},"53":{},"60":{},"74":{}},"component":{}}],["type",{"_index":364,"title":{"6-19":{},"6-20":{}},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"53":{},"57":{},"58":{},"59":{},"65":{},"66":{},"70":{},"74":{}},"component":{}}],["type\":\"custom",{"_index":2700,"title":{},"name":{},"text":{"45":{}},"component":{}}],["type\":\"error",{"_index":2770,"title":{},"name":{},"text":{"45":{}},"component":{}}],["type\":\"oper",{"_index":2679,"title":{},"name":{},"text":{"45":{}},"component":{}}],["type\":\"success",{"_index":2720,"title":{},"name":{},"text":{"45":{}},"component":{}}],["type:application/json",{"_index":1701,"title":{},"name":{},"text":{"21":{},"35":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["type=kubernetes.io/dockerconfigjson",{"_index":2879,"title":{},"name":{},"text":{"47":{}},"component":{}}],["types.proto",{"_index":1684,"title":{},"name":{},"text":{"21":{}},"component":{}}],["typescript",{"_index":2396,"title":{},"name":{},"text":{"36":{}},"component":{}}],["tzdb.dat",{"_index":207,"title":{},"name":{},"text":{"2":{}},"component":{}}],["u",{"_index":2041,"title":{},"name":{},"text":{"31":{},"59":{}},"component":{}}],["ui",{"_index":129,"title":{"62":{},"63":{},"64":{},"65":{},"66":{},"14-10":{},"64-1":{}},"name":{"62":{},"63":{},"64":{},"65":{},"66":{}},"text":{"1":{},"2":{},"14":{},"15":{},"16":{},"21":{},"22":{},"36":{},"49":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{}},"component":{}}],["unbound",{"_index":1473,"title":{},"name":{},"text":{"18":{}},"component":{}}],["unchang",{"_index":2791,"title":{},"name":{},"text":{"46":{}},"component":{}}],["uncheck",{"_index":3347,"title":{},"name":{},"text":{"67":{}},"component":{}}],["uncheckedioexception(",{"_index":2650,"title":{},"name":{},"text":{"43":{}},"component":{}}],["uncheckedioexception(io",{"_index":758,"title":{},"name":{},"text":{"6":{}},"component":{}}],["uncommon",{"_index":718,"title":{},"name":{},"text":{"6":{}},"component":{}}],["uncompress",{"_index":1803,"title":{},"name":{},"text":{"26":{}},"component":{}}],["under",{"_index":247,"title":{},"name":{},"text":{"2":{},"13":{},"25":{},"35":{},"47":{},"49":{},"50":{},"51":{},"60":{}},"component":{}}],["underli",{"_index":996,"title":{},"name":{},"text":{"11":{},"27":{},"46":{},"48":{},"54":{}},"component":{}}],["underneath",{"_index":1544,"title":{},"name":{},"text":{"20":{}},"component":{}}],["underscor",{"_index":2072,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{}}],["understand",{"_index":167,"title":{"54":{}},"name":{"10":{},"11":{}},"text":{"1":{},"3":{},"6":{},"12":{},"23":{},"33":{},"37":{},"45":{},"46":{},"49":{},"54":{}},"component":{}}],["undo",{"_index":2666,"title":{},"name":{},"text":{"45":{}},"component":{}}],["unexpect",{"_index":2245,"title":{},"name":{},"text":{"33":{}},"component":{}}],["unidentifi",{"_index":2532,"title":{},"name":{},"text":{"41":{}},"component":{}}],["unidirect",{"_index":1444,"title":{},"name":{},"text":{"18":{}},"component":{}}],["uninstal",{"_index":2974,"title":{"50-2":{},"50-4":{},"50-8":{}},"name":{},"text":{"50":{}},"component":{}}],["uniqu",{"_index":671,"title":{},"name":{},"text":{"6":{},"12":{},"21":{},"37":{},"66":{}},"component":{}}],["unit",{"_index":141,"title":{},"name":{},"text":{"1":{},"14":{},"42":{},"43":{}},"component":{}}],["unknown",{"_index":991,"title":{},"name":{},"text":{"11":{},"35":{},"54":{}},"component":{}}],["unless",{"_index":495,"title":{},"name":{},"text":{"5":{},"16":{},"18":{}},"component":{}}],["unlik",{"_index":2098,"title":{},"name":{},"text":{"32":{},"46":{}},"component":{}}],["unpack",{"_index":3390,"title":{},"name":{},"text":{"72":{}},"component":{}}],["unpredict",{"_index":1105,"title":{},"name":{},"text":{"13":{}},"component":{}}],["unrespons",{"_index":1962,"title":{},"name":{},"text":{"27":{}},"component":{}}],["unselect",{"_index":3332,"title":{},"name":{},"text":{"66":{}},"component":{}}],["unsuccess",{"_index":2137,"title":{},"name":{},"text":{"33":{}},"component":{}}],["unsuccessfulli",{"_index":3339,"title":{},"name":{},"text":{"66":{}},"component":{}}],["unsupport",{"_index":2230,"title":{},"name":{},"text":{"33":{}},"component":{}}],["until",{"_index":784,"title":{},"name":{},"text":{"7":{},"8":{},"9":{},"20":{},"29":{},"42":{},"54":{},"67":{}},"component":{}}],["untilassert",{"_index":1998,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["untitl",{"_index":3382,"title":{},"name":{},"text":{"70":{}},"component":{}}],["up",{"_index":694,"title":{"65-4":{},"65-5":{}},"name":{},"text":{"6":{},"13":{},"14":{},"16":{},"18":{},"22":{},"27":{},"31":{},"33":{},"41":{},"47":{},"49":{},"50":{},"55":{},"67":{}},"component":{}}],["upcom",{"_index":943,"title":{},"name":{},"text":{"10":{}},"component":{}}],["updat",{"_index":585,"title":{},"name":{},"text":{"6":{},"10":{},"14":{},"16":{},"21":{},"27":{},"30":{},"31":{},"36":{},"47":{},"49":{},"53":{},"59":{},"63":{},"66":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{}},"component":{}}],["upgrad",{"_index":149,"title":{},"name":{},"text":{"1":{},"2":{},"30":{},"31":{}},"component":{}}],["upload",{"_index":3346,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{}}],["upon",{"_index":796,"title":{},"name":{},"text":{"8":{},"27":{},"42":{}},"component":{}}],["upper",{"_index":3391,"title":{},"name":{},"text":{"72":{}},"component":{}}],["upstream",{"_index":2816,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["uri",{"_index":595,"title":{"34-2":{}},"name":{},"text":{"6":{},"7":{},"14":{},"16":{},"20":{},"23":{},"27":{},"34":{},"35":{},"36":{},"37":{},"60":{},"74":{}},"component":{}}],["url",{"_index":438,"title":{"34-4":{},"34-8":{},"36-5":{}},"name":{},"text":{"5":{},"6":{},"7":{},"14":{},"16":{},"20":{},"24":{},"26":{},"27":{},"28":{},"33":{},"34":{},"36":{},"37":{},"38":{},"42":{},"43":{},"47":{},"49":{},"50":{},"57":{},"58":{},"59":{},"60":{},"65":{},"68":{},"74":{}},"component":{}}],["url=http://localhost:8281/auth/realms/kogito/protocol/openid",{"_index":2195,"title":{},"name":{},"text":{"33":{}},"component":{}}],["url=https://example.com/oauth",{"_index":2104,"title":{},"name":{},"text":{"32":{}},"component":{}}],["url=jdbc:postgresql://localhost:5432/foobardb",{"_index":2031,"title":{},"name":{},"text":{"31":{}},"component":{}}],["url_to_json_schema",{"_index":776,"title":{},"name":{},"text":{"7":{}},"component":{}}],["us",{"_index":18,"title":{"18":{},"29":{},"30":{},"33":{},"38":{},"42":{},"43":{},"55":{},"67":{},"68":{},"69":{},"1-13":{},"16-4":{},"16-5":{},"26-2":{},"26-3":{},"27-5":{},"27-6":{},"29-2":{},"31-2":{},"31-3":{},"31-6":{},"31-7":{},"34-2":{},"34-8":{},"41-2":{},"41-3":{},"41-5":{},"42-2":{},"47-2":{},"49-6":{},"55-1":{},"55-3":{},"57-3":{},"57-4":{},"57-5":{},"58-3":{},"58-4":{},"58-5":{},"59-4":{},"59-5":{},"59-6":{},"65-3":{},"65-7":{},"69-2":{},"72-2":{},"74-6":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["usag",{"_index":913,"title":{},"name":{},"text":{"10":{},"11":{},"19":{},"28":{},"32":{},"41":{},"47":{},"49":{}},"component":{}}],["usd",{"_index":2221,"title":{},"name":{},"text":{"33":{},"42":{}},"component":{}}],["usecloudevents=tru",{"_index":2489,"title":{},"name":{},"text":{"38":{}},"component":{}}],["used\\ncopi",{"_index":2844,"title":{},"name":{},"text":{"47":{}},"component":{}}],["useeventdrivendecisions=fals",{"_index":2492,"title":{},"name":{},"text":{"38":{}},"component":{}}],["useeventdrivenrules=fals",{"_index":2493,"title":{},"name":{},"text":{"38":{}},"component":{}}],["useexplainability=fals",{"_index":2490,"title":{},"name":{},"text":{"38":{}},"component":{}}],["usemonitoring=fals",{"_index":2487,"title":{},"name":{},"text":{"38":{}},"component":{}}],["useprocesssvg=fals",{"_index":2491,"title":{},"name":{},"text":{"38":{}},"component":{}}],["useprometheusmonitoring=fals",{"_index":2488,"title":{},"name":{},"text":{"38":{}},"component":{}}],["user",{"_index":253,"title":{},"name":{},"text":{"2":{},"14":{},"16":{},"19":{},"21":{},"25":{},"29":{},"35":{},"41":{},"45":{},"58":{}},"component":{}}],["user'",{"_index":2339,"title":{},"name":{},"text":{"35":{}},"component":{}}],["user/mi",{"_index":2554,"title":{},"name":{},"text":{"41":{}},"component":{}}],["user=foo",{"_index":2032,"title":{},"name":{},"text":{"31":{}},"component":{}}],["userid",{"_index":1497,"title":{},"name":{},"text":{"19":{}},"component":{}}],["usernam",{"_index":1346,"title":{},"name":{},"text":{"16":{},"27":{},"31":{},"32":{},"47":{},"69":{}},"component":{}}],["usetracing=fals",{"_index":2486,"title":{},"name":{},"text":{"38":{}},"component":{}}],["usr/local/bin",{"_index":2519,"title":{},"name":{},"text":{"41":{}},"component":{}}],["usr/local/bin/kn",{"_index":2523,"title":{},"name":{},"text":{"41":{}},"component":{}}],["usual",{"_index":1120,"title":{},"name":{},"text":{"14":{},"16":{},"36":{},"48":{},"60":{}},"component":{}}],["utc",{"_index":1659,"title":{},"name":{},"text":{"21":{}},"component":{}}],["utf",{"_index":1617,"title":{},"name":{},"text":{"21":{}},"component":{}}],["uuid",{"_index":1809,"title":{},"name":{},"text":{"26":{}},"component":{}}],["v",{"_index":2536,"title":{},"name":{},"text":{"41":{}},"component":{}}],["v0.8",{"_index":3019,"title":{"51-2":{}},"name":{},"text":{},"component":{}}],["v1",{"_index":1253,"title":{},"name":{},"text":{"14":{},"16":{},"27":{},"47":{},"48":{},"53":{}},"component":{}}],["v2",{"_index":1952,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{}}],["v2.topic",{"_index":1958,"title":{},"name":{},"text":{"27":{}},"component":{}}],["v2/jobs/ev",{"_index":1943,"title":{},"name":{},"text":{"27":{}},"component":{}}],["valid",{"_index":92,"title":{},"name":{},"text":{"1":{},"6":{},"7":{},"11":{},"17":{},"19":{},"23":{},"29":{},"33":{},"35":{},"36":{},"42":{},"49":{},"51":{},"58":{},"65":{},"73":{},"74":{}},"component":{}}],["validateaccountemail",{"_index":1499,"title":{},"name":{},"text":{"19":{}},"component":{}}],["validateaccountemailev",{"_index":1498,"title":{},"name":{},"text":{"19":{}},"component":{}}],["validatedaccountemail",{"_index":1501,"title":{},"name":{},"text":{"19":{}},"component":{}}],["validatedaccountemailev",{"_index":1500,"title":{},"name":{},"text":{"19":{}},"component":{}}],["validateinput",{"_index":2141,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validateinputs(str",{"_index":2170,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validateinputsact",{"_index":2151,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validateintpu",{"_index":2162,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validationresult",{"_index":2169,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validationresult(\"error",{"_index":2174,"title":{},"name":{},"text":{"33":{}},"component":{}}],["valu",{"_index":414,"title":{"6-5":{},"6-10":{},"35-1":{}},"name":{},"text":{"5":{},"6":{},"8":{},"10":{},"11":{},"14":{},"16":{},"17":{},"18":{},"19":{},"21":{},"25":{},"26":{},"27":{},"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"45":{},"46":{},"48":{},"55":{},"58":{},"59":{},"60":{},"65":{},"66":{},"69":{},"71":{},"73":{},"74":{}},"component":{}}],["value.deseri",{"_index":1447,"title":{},"name":{},"text":{"18":{}},"component":{}}],["value.seri",{"_index":1451,"title":{},"name":{},"text":{"18":{}},"component":{}}],["value1",{"_index":1731,"title":{},"name":{},"text":{"23":{}},"component":{}}],["value;oth",{"_index":3270,"title":{},"name":{},"text":{"60":{}},"component":{}}],["valuefrom",{"_index":1322,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["vari",{"_index":2796,"title":{},"name":{},"text":{"46":{},"54":{}},"component":{}}],["variabl",{"_index":463,"title":{"27-4":{},"27-5":{},"34-8":{}},"name":{},"text":{"5":{},"6":{},"14":{},"16":{},"17":{},"27":{},"28":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"43":{},"59":{},"66":{}},"component":{}}],["variable_name=valu",{"_index":1874,"title":{},"name":{},"text":{"27":{}},"component":{}}],["variables:\"{\\\"it_approval\\\":true,\\\"candidate\\\":{\\\"name\\\":\\\"joe\\\",\\\"email\\\":\\\"jdoe@ts.com\\\",\\\"salary\\\":30000,\\\"skills\\\":\\\"java\\\"},\\\"hr_approval\\\":tru",{"_index":1200,"title":{},"name":{},"text":{"14":{}},"component":{}}],["variou",{"_index":394,"title":{},"name":{},"text":{"4":{},"36":{},"66":{},"67":{}},"component":{}}],["vendor",{"_index":2132,"title":{},"name":{},"text":{"33":{}},"component":{}}],["verb",{"_index":3287,"title":{},"name":{},"text":{"60":{}},"component":{}}],["verbos",{"_index":1611,"title":{},"name":{},"text":{"21":{},"41":{}},"component":{}}],["veri",{"_index":1968,"title":{},"name":{},"text":{"28":{},"47":{}},"component":{}}],["verif",{"_index":2001,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["verifi",{"_index":774,"title":{"57-1":{},"67-2":{}},"name":{},"text":{"7":{},"11":{},"17":{},"21":{},"29":{},"38":{},"41":{},"42":{},"45":{},"55":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["verify=fals",{"_index":3243,"title":{},"name":{},"text":{"59":{}},"component":{}}],["verifyworkflowexecutionit",{"_index":2567,"title":{},"name":{},"text":{"42":{}},"component":{}}],["versa",{"_index":3025,"title":{},"name":{},"text":{"51":{}},"component":{}}],["version",{"_index":326,"title":{"52-1":{}},"name":{"61":{}},"text":{"4":{},"5":{},"7":{},"9":{},"13":{},"17":{},"21":{},"30":{},"31":{},"32":{},"33":{},"34":{},"36":{},"38":{},"43":{},"47":{},"49":{},"50":{},"51":{},"52":{},"55":{},"58":{},"59":{},"60":{},"68":{},"69":{}},"component":{}}],["version.failsafe.plugin",{"_index":1983,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["version=1.32.0",{"_index":2047,"title":{},"name":{},"text":{"31":{}},"component":{}}],["version=2.16.9.fin",{"_index":1604,"title":{},"name":{},"text":{"21":{}},"component":{}}],["vert.x",{"_index":1129,"title":{},"name":{},"text":{"14":{}},"component":{}}],["vertx",{"_index":1639,"title":{},"name":{},"text":{"21":{},"38":{}},"component":{}}],["via",{"_index":43,"title":{},"name":{},"text":{"1":{},"14":{},"23":{},"27":{},"31":{},"46":{},"47":{},"49":{},"53":{},"60":{},"65":{}},"component":{}}],["vice",{"_index":3024,"title":{},"name":{},"text":{"51":{}},"component":{}}],["view",{"_index":110,"title":{"62-1":{}},"name":{},"text":{"1":{},"22":{},"57":{},"58":{},"62":{},"64":{},"65":{},"66":{},"67":{},"72":{},"73":{},"74":{}},"component":{}}],["visaapprovedev",{"_index":885,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["visadeniedev",{"_index":887,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["visit",{"_index":1941,"title":{},"name":{},"text":{"27":{},"31":{}},"component":{}}],["visual",{"_index":1579,"title":{},"name":{},"text":{"21":{},"22":{},"25":{},"26":{},"63":{},"73":{},"74":{}},"component":{}}],["void",{"_index":551,"title":{},"name":{},"text":{"6":{},"29":{},"37":{},"38":{},"42":{},"43":{}},"component":{}}],["volum",{"_index":1290,"title":{},"name":{},"text":{"16":{}},"component":{}}],["vs",{"_index":101,"title":{"74":{},"74-1":{},"74-3":{},"74-5":{}},"name":{},"text":{"1":{},"22":{},"73":{},"74":{}},"component":{}}],["vscode",{"_index":1721,"title":{},"name":{"74":{}},"text":{"23":{},"49":{}},"component":{}}],["vsix",{"_index":3399,"title":{},"name":{},"text":{"74":{}},"component":{}}],["w",{"_index":2941,"title":{},"name":{},"text":{"49":{}},"component":{}}],["wait",{"_index":473,"title":{},"name":{},"text":{"5":{},"9":{},"12":{},"13":{},"18":{},"19":{},"20":{},"27":{},"30":{},"32":{},"37":{},"42":{},"45":{},"46":{},"54":{},"57":{},"58":{},"59":{},"66":{}},"component":{}}],["wait&fir",{"_index":826,"title":{},"name":{},"text":{"8":{}},"component":{}}],["wait(eventinput",{"_index":2435,"title":{},"name":{},"text":{"37":{}},"component":{}}],["waitev",{"_index":964,"title":{},"name":{},"text":{"10":{},"12":{},"37":{}},"component":{}}],["waitforev",{"_index":815,"title":{},"name":{},"text":{"8":{},"9":{},"12":{},"20":{},"37":{},"46":{}},"component":{}}],["waitingforbuildreason",{"_index":3070,"title":{},"name":{},"text":{"54":{}},"component":{}}],["waitingfordeploy",{"_index":2942,"title":{},"name":{},"text":{"49":{},"54":{}},"component":{}}],["waitingforplatform",{"_index":3068,"title":{},"name":{},"text":{"54":{}},"component":{}}],["want",{"_index":383,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"8":{},"13":{},"15":{},"18":{},"23":{},"24":{},"27":{},"28":{},"31":{},"33":{},"35":{},"36":{},"41":{},"42":{},"43":{},"47":{},"49":{},"53":{},"60":{},"65":{},"70":{}},"component":{}}],["warn",{"_index":523,"title":{},"name":{},"text":{"6":{},"7":{},"21":{},"74":{}},"component":{}}],["watch",{"_index":2967,"title":{},"name":{},"text":{"49":{},"50":{}},"component":{}}],["way",{"_index":38,"title":{},"name":{},"text":{"1":{},"4":{},"6":{},"12":{},"14":{},"15":{},"16":{},"27":{},"35":{},"37":{},"41":{},"49":{},"53":{},"60":{}},"component":{}}],["web",{"_index":105,"title":{"67":{},"68":{},"69":{},"70":{},"68-1":{},"69-2":{},"70-1":{}},"name":{"67":{},"68":{},"69":{},"70":{},"71":{}},"text":{"1":{},"22":{},"36":{},"58":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{}},"component":{}}],["webclient.postabs(eventinput.geturi()).sendjson(builder.build()).tocompletionstag",{"_index":2442,"title":{},"name":{},"text":{"37":{}},"component":{}}],["webhook",{"_index":3022,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{}}],["websit",{"_index":1774,"title":{},"name":{},"text":{"25":{},"26":{},"29":{},"31":{},"42":{}},"component":{}}],["welcom",{"_index":1074,"title":{},"name":{},"text":{"13":{}},"component":{}}],["well",{"_index":907,"title":{},"name":{},"text":{"9":{},"31":{},"35":{},"46":{}},"component":{}}],["weren’t",{"_index":1301,"title":{},"name":{},"text":{"16":{}},"component":{}}],["whatev",{"_index":566,"title":{},"name":{},"text":{"6":{}},"component":{}}],["whether",{"_index":910,"title":{},"name":{},"text":{"10":{},"11":{},"18":{},"20":{},"57":{},"58":{},"59":{},"74":{}},"component":{}}],["whoami",{"_index":3241,"title":{},"name":{},"text":{"59":{}},"component":{}}],["whole",{"_index":2876,"title":{},"name":{},"text":{"47":{}},"component":{}}],["width",{"_index":1832,"title":{},"name":{},"text":{"26":{}},"component":{}}],["willreturn(arespons",{"_index":2652,"title":{},"name":{},"text":{"43":{}},"component":{}}],["willreturn(aresponse().withstatus(404",{"_index":2662,"title":{},"name":{},"text":{"43":{}},"component":{}}],["willreturn(wiremock.arespons",{"_index":2624,"title":{},"name":{},"text":{"43":{}},"component":{}}],["window",{"_index":1749,"title":{},"name":{},"text":{"24":{},"33":{},"34":{},"58":{},"68":{},"69":{},"71":{}},"component":{}}],["wiremock",{"_index":135,"title":{"42":{},"43":{},"43-2":{},"43-3":{}},"name":{"42":{},"43":{}},"text":{"1":{},"17":{},"38":{},"42":{},"43":{}},"component":{}}],["wiremock.vers",{"_index":2614,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockconfigur",{"_index":2615,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockconfiguration#port(int",{"_index":2620,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockconfiguration.wiremockconfig().dynamicport",{"_index":2616,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserv",{"_index":2568,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["wiremockserver(config",{"_index":2617,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver(options().port(8181",{"_index":2570,"title":{},"name":{},"text":{"42":{}},"component":{}}],["wiremockserver(wiremockconfiguration.wiremockconfig().dynamicport",{"_index":2649,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.baseurl",{"_index":2648,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.start",{"_index":2618,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.stop",{"_index":2631,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.stubfor(get(urlequalto(\"/rest/v2/name/greec",{"_index":2651,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.stubfor(wiremock.get(wiremock.urlequalto(\"/rest/v2/name/greec",{"_index":2623,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wish",{"_index":2808,"title":{},"name":{},"text":{"47":{},"60":{},"70":{}},"component":{}}],["with().pollinterval(1",{"_index":1997,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["withdata(objectmapper.writevalueasbytes(collections.singletonmap(\"messag",{"_index":2441,"title":{},"name":{},"text":{"37":{}},"component":{}}],["withdata(objectmapper.writevalueasbytes(eventbodi",{"_index":1043,"title":{},"name":{},"text":{"12":{}},"component":{}}],["withextension(cloudeventextensionconstants.process_reference_id",{"_index":1042,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["withheader(\"cont",{"_index":2626,"title":{},"name":{},"text":{"43":{}},"component":{}}],["withid(uuid.randomuuid().tostr",{"_index":1038,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["within",{"_index":64,"title":{},"name":{},"text":{"1":{},"6":{},"10":{},"11":{},"17":{},"20":{},"34":{},"35":{},"42":{},"48":{},"53":{}},"component":{}}],["withjsonbody(greecepayload",{"_index":2627,"title":{},"name":{},"text":{"43":{}},"component":{}}],["without",{"_index":600,"title":{},"name":{},"text":{"6":{},"9":{},"12":{},"13":{},"15":{},"21":{},"27":{},"32":{},"37":{},"41":{},"74":{}},"component":{}}],["withsource(uri.cr",{"_index":1039,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["withstatus(200",{"_index":2625,"title":{},"name":{},"text":{"43":{}},"component":{}}],["withtime(offsetdatetime.now",{"_index":1041,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["withtype(\"wait",{"_index":1040,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["won’t",{"_index":2022,"title":{},"name":{},"text":{"31":{},"47":{},"53":{}},"component":{}}],["word",{"_index":1063,"title":{},"name":{},"text":{"13":{},"50":{},"53":{}},"component":{}}],["worflow",{"_index":3045,"title":{},"name":{},"text":{"53":{}},"component":{}}],["work",{"_index":35,"title":{},"name":{"12":{},"13":{},"37":{}},"text":{"1":{},"2":{},"3":{},"4":{},"6":{},"9":{},"14":{},"15":{},"17":{},"20":{},"27":{},"28":{},"29":{},"31":{},"35":{},"42":{},"46":{},"47":{},"49":{},"50":{},"57":{},"58":{},"59":{},"60":{},"68":{},"73":{},"74":{}},"component":{}}],["workflow",{"_index":24,"title":{"4":{},"21":{},"25":{},"26":{},"30":{},"38":{},"47":{},"48":{},"49":{},"53":{},"54":{},"55":{},"57":{},"65":{},"66":{},"72":{},"73":{},"74":{},"4-4":{},"9-1":{},"9-6":{},"9-8":{},"13-1":{},"13-2":{},"13-3":{},"14-8":{},"15-2":{},"17-5":{},"18-1":{},"19-1":{},"21-2":{},"21-3":{},"21-4":{},"21-5":{},"23-3":{},"26-1":{},"27-1":{},"29-2":{},"33-1":{},"33-2":{},"34-6":{},"34-7":{},"35-2":{},"36-3":{},"36-4":{},"41-2":{},"41-3":{},"41-4":{},"41-5":{},"42-2":{},"45-2":{},"45-3":{},"46-1":{},"46-2":{},"46-3":{},"46-4":{},"46-6":{},"46-7":{},"47-2":{},"47-8":{},"47-11":{},"47-12":{},"48-1":{},"49-2":{},"49-3":{},"49-4":{},"49-5":{},"49-6":{},"49-7":{},"49-11":{},"49-12":{},"51-3":{},"53-1":{},"55-2":{},"55-3":{},"55-4":{},"57-2":{},"57-3":{},"57-4":{},"57-5":{},"58-2":{},"58-3":{},"58-4":{},"58-5":{},"59-2":{},"59-4":{},"59-5":{},"59-6":{},"62-1":{},"65-1":{},"65-2":{},"65-3":{},"65-4":{},"65-6":{},"65-7":{},"66-1":{},"66-2":{},"70-1":{},"72-1":{},"72-2":{},"73-1":{},"74-1":{},"74-2":{},"74-3":{},"74-4":{}},"name":{"4":{},"7":{},"8":{},"11":{},"19":{},"21":{},"39":{},"41":{},"47":{},"48":{},"49":{},"54":{},"55":{},"56":{},"61":{},"65":{},"66":{}},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["workflow,quarku",{"_index":1596,"title":{},"name":{},"text":{"21":{}},"component":{}}],["workflow.instanceid",{"_index":869,"title":{},"name":{},"text":{"9":{},"23":{},"37":{},"46":{}},"component":{}}],["workflow.serverless",{"_index":3162,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["workflow.sw.json",{"_index":2138,"title":{},"name":{},"text":{"33":{},"41":{}},"component":{}}],["workflow.yaml",{"_index":2907,"title":{},"name":{},"text":{"47":{}},"component":{}}],["workflow/greet",{"_index":2945,"title":{},"name":{},"text":{"49":{}},"component":{}}],["workflow_devmode.yaml",{"_index":2947,"title":{},"name":{},"text":{"49":{}},"component":{}}],["workflow_timeout",{"_index":853,"title":{},"name":{},"text":{"9":{}},"component":{}}],["workflowdata",{"_index":565,"title":{},"name":{},"text":{"6":{},"33":{},"35":{},"38":{},"45":{},"49":{},"55":{}},"component":{}}],["workflowdata.greet",{"_index":2473,"title":{},"name":{},"text":{"38":{}},"component":{}}],["workflowexectimeout",{"_index":848,"title":{},"name":{},"text":{"9":{}},"component":{}}],["workflowid",{"_index":1733,"title":{},"name":{},"text":{"23":{}},"component":{}}],["workflowpath",{"_index":3048,"title":{},"name":{},"text":{"53":{}},"component":{}}],["workflowworkitemhandl",{"_index":700,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workflow’",{"_index":1271,"title":{},"name":{},"text":{"15":{},"46":{},"65":{}},"component":{}}],["workitem",{"_index":706,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workitem.getnodeinstance().getnode().getmetadata",{"_index":745,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workitemhandlerconfig",{"_index":702,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workitemnodefactori",{"_index":695,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workitemtypehandl",{"_index":692,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workspac",{"_index":3344,"title":{"68-2":{},"68-3":{}},"name":{},"text":{"67":{},"68":{},"70":{},"73":{},"74":{}},"component":{}}],["world",{"_index":1570,"title":{},"name":{},"text":{"21":{},"41":{}},"component":{}}],["world\",\"mantra\":\"serverless",{"_index":1708,"title":{},"name":{},"text":{"21":{}},"component":{}}],["world:1.0.0",{"_index":1588,"title":{},"name":{},"text":{"21":{}},"component":{}}],["world:latest",{"_index":1610,"title":{},"name":{},"text":{"21":{}},"component":{}}],["wrap",{"_index":2658,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wrapper",{"_index":574,"title":{},"name":{},"text":{"6":{}},"component":{}}],["write",{"_index":722,"title":{},"name":{},"text":{"6":{},"29":{},"71":{}},"component":{}}],["wrong",{"_index":976,"title":{"49-11":{},"49-12":{}},"name":{},"text":{"11":{},"31":{},"49":{},"54":{}},"component":{}}],["x",{"_index":949,"title":{},"name":{},"text":{"10":{},"13":{},"17":{},"21":{},"24":{},"33":{},"34":{},"35":{},"41":{},"45":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["x86_64",{"_index":1650,"title":{},"name":{},"text":{"21":{}},"component":{}}],["x=kogito",{"_index":1584,"title":{},"name":{},"text":{"21":{}},"component":{}}],["x=quarku",{"_index":1585,"title":{},"name":{},"text":{"21":{}},"component":{}}],["xattr",{"_index":3369,"title":{},"name":{},"text":{"69":{}},"component":{}}],["xml",{"_index":1718,"title":{},"name":{},"text":{"23":{}},"component":{}}],["y",{"_index":951,"title":{},"name":{},"text":{"10":{}},"component":{}}],["yaml",{"_index":294,"title":{},"name":{},"text":{"3":{},"10":{},"23":{},"26":{},"37":{},"49":{},"63":{},"70":{},"73":{},"74":{}},"component":{}}],["yamlgreet",{"_index":1789,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["yaml|json",{"_index":3175,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["yard.yaml|yml",{"_index":3379,"title":{},"name":{},"text":{"70":{}},"component":{}}],["ye",{"_index":423,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["yml",{"_index":2202,"title":{},"name":{},"text":{"33":{}},"component":{}}],["yourself",{"_index":1410,"title":{},"name":{},"text":{"17":{}},"component":{}}],["you’ll",{"_index":3320,"title":{},"name":{},"text":{"65":{}},"component":{}}],["you’r",{"_index":2807,"title":{},"name":{},"text":{"47":{},"49":{},"50":{},"69":{}},"component":{}}],["z0",{"_index":3411,"title":{},"name":{},"text":{"74":{}},"component":{}}],["za",{"_index":3410,"title":{},"name":{},"text":{"74":{}},"component":{}}],["zero",{"_index":1866,"title":{},"name":{},"text":{"27":{}},"component":{}}],["zip",{"_index":2034,"title":{},"name":{},"text":{"31":{},"72":{}},"component":{}}]],"pipeline":["stemmer"]},"store":{"documents":{"1":{"id":1,"text":"SonataFlow is a tool for building cloud-native workflow applications. You can use it to do the services and events orchestration and choreography. Currently, with SonataFlow you can integrate with services and events in your architecture using: CloudEvents. Ideal for an Event-Driven architecture where the services are ready to consume and produce events working in a more reactive way. Sync or Async REST services invocations via OpenAPI/Async API. There are options even to directly call a REST service in the architecture or ecosystem. Either async or sync methods are supported depending on your requirements. Internal Service execution or invocation. SonataFlow is also a workflow framework to build applications. You can use it to create custom services in the same thread to run a lightweight workflow-based application within the same instance. You can learn how to create, manage, and deploy your workflow applications with the following guides. Creating a Quarkus Workflow Project Learn how to create your first Quarkus Workflow Project Serverless Workflow Specification Learn about the CNCF Serverless Workflow Specification implementation Events in SonataFlow Learn how to use the Event state in your workflow application Callbacks in SonataFlow Learn how to use the Callback state in your workflow application jq Expressions Learn how to create jq expressions to manipulate data within a workflow execution Error handling in SonataFlow Learn how to handle errors in your workflow application Configuration properties in SonataFlow Quick reference of configuration properties in workflow Input and Output schema definition for SonataFlow Learn about the input schema definition used to validate the workflow data input against a defined JSON Schema Custom functions for your SonataFlow service Learn about the custom functions supported by Serverless Workflow Timeouts in SonataFlow Learn how to configure timeouts in the workflow Parallelism in SonataFlow Working with parallelism in your workflow project Serverless Workflow editor Learn how to install and use the Serverless Workflow editor VS Code extension for Serverless Workflow editor Learn how to install and use the VS Code extension for Serverless Workflow editor for creating workflows. Serverless Logic Web Tools Learn how to use Serverless Logic Web Tools for creating and managing workflows, decisions, and dashboards. Chrome extension for Serverless Workflow editor on GitHub Learn how to install and use the Chrome extension for Serverless Workflow editor to view and edit workflows directly in Github. Orchestrating OpenAPI Services Learn how to orchestrate REST services using OpenAPI specification descriptors OpenAPI Callback in SonataFlow Learn how to use the OpenAPI Callback in your workflow application Orchestrating gRPC based Services Learn about orchestrating gRPC services Orchestrating AsyncAPI Services Learn how to trigger and consume events using AsyncAPI specification descriptors Event correlation in SonataFlow Learn how to configure event correlation in your workflow application Consuming and producing events using Apache Kafka in Quarkus Learn how to configure your Quarkus Workflow Project to produce and consume events using Apache Kafka Consuming and producing events on Knative Eventing in Quarkus Learn how to configure your Quarkus Workflow Project to produce and consume events on Knative Eventing Authentication for OpenAPI services in SonataFlow Learn how to use authentication methods when calling REST services using OpenAPI specification Orchestration of third-party services using OAuth 2.0 authentication Learn about the OAuth2 method support when orchestrating REST services using your workflow application Kogito Serverless Workflow Tools extension in Quarkus Dev UI Learn how to use the Serverless Workflow extension in Quarkus Dev UI SonataFlow plug-in for Knative CLI Learn how to install the SonataFlow plug-in for Knative CLI Mocking HTTP CloudEvents sink using WireMock Testing Quarkus Workflow Project that uses HTTP CloudEvents and Knative Sink Binding Mocking OpenAPI services using WireMock Learn how to mock external REST requests when testing your Quarkus Workflow Project Testing your Quarkus Workflow Application using REST Assured Learn how to add unit tests in your Quarkus Workflow Project using RestAssured Running a Quarkus Workflow Application using PostgreSQL Running Quarkus Workflow Applications using PostgresSQL PostgreSQL Database Migration Migrating your existing PostgreSQL Database with changes from the SonataFlow upgrade using Flyway SonataFlow integration test using PostgreSQL Learn how to integrate tests on Quarkus Workflow Applications that use PostgreSQL as a persistence storage SonataFlow in the Cloud Learn about the options to deploy workflow applications in Kubernetes Integrating with Camel routes Learn how to use Camel Routes within your workflow application Invoking Knative services from SonataFlow Learn how to invoke Knative Services from SonataFlow custom functions Exposing Workflow base metrics to Prometheus Exposing the workflow base metrics to Prometheus Displaying Workflow Data in Dashboards Learn how to use dashboards to display the runtime data of your workflow application Introduction Details about Job Service to control timers in SonataFlow Job Service Quarkus Extensions Details about how to configure you Quarkus Workflow Project to interact with the Job Service in SonataFlow Data Index Core Concepts Learn Data Index core concepts, allowing to understand the purpose and the different deployment options that are provided. Data Index standalone service Go deeper in details about Data Index as standalone service deployment. Data Index Quarkus extension Explore Data Index as Quarkus extension in SonataFlow Saga orchestration example in SonataFlow Learn how and when to use the SAGA pattern in your workflow projects Timeouts Showcase in SonataFlow Learn how and when to use timeout in your workflow projects","title":"SonataFlow Guides","component":"serverlessworkflow","version":"1.43.0.Final","name":"index","url":"/serverlessworkflow/latest/index.html","titles":[{"text":"Getting started","hash":"_getting_started","id":1},{"text":"Core Concepts","hash":"_core_concepts","id":2},{"text":"Tooling","hash":"_tooling","id":3},{"text":"Service Orchestration","hash":"_service_orchestration","id":4},{"text":"Event Orchestration","hash":"_event_orchestration","id":5},{"text":"Security","hash":"_security","id":6},{"text":"Executing, Testing and Troubleshooting","hash":"_executing_testing_and_troubleshooting","id":7},{"text":"Persistence","hash":"_persistence","id":8},{"text":"Cloud","hash":"_cloud","id":9},{"text":"Integrations","hash":"_integrations","id":10},{"text":"Job Service","hash":"_job_service","id":11},{"text":"Data Index service","hash":"_data_index_service","id":12},{"text":"Use Cases","hash":"_use_cases","id":13}]},"2":{"id":2,"text":"KOGITO-9702 - [Operator] SonataFlow resources are not being added to container-builder build process KOGITO-9614 - Hot reload doesn’t work for workflows that use AsyncAPI KOGITO-9613 - Allow PostgreSQL persistence for process instance state when using SW executor KOGITO-8794 - [Operator] Handle deployment failures in prod profile KOGITO-9633 - tzdb.dat (No such file or directory) KOGITO-9653 - [SonataFlow Operator] Duplicated replicasets on dev profile KOGITO-9683 - [Operator] Review installation guide to use OperatorHub KOGITO-9665 - Deffer the injection of Processes in the Process Management Addon KOGITO-9643 - Align kogito-example dependencies with runtimes KOGITO-9605 - Change Knative Function tests so it can work with more than one KubernetesServiceCatalog implementation KOGITO-9603 - Create new endpoints to retrieve workflows and schema KOGITO-9218 - [Operator] Review Platform Conditions KOGITO-9158 - Use RestWorkItemHandler as HTTP client in Knative custom function KOGITO-8276 - [Operator] Improve the logging adding missing levels KOGITO-9415 - Added Live Reload support for CodeGenProviders KOGITO-9434 - Moving python modules under python profile KOGITO-9625 - Upgrade quarkus-openapi-generator to 1.3.8 KOGITO-9611 - Track user identity in Kogito events KOGITO-9659 - Workflow timeout not working using external Job Service (management-addon) KOGITO-9561 - Jobs service kafka and http messaging modularization KOGITO-9654 - Include kogito-addons-quarkus-process-management in kogito-swf-devmode-image KOGITO-8785 - [KSW-Operator] Review the reconciliation flow to follow the new conditions API refactoring KOGITO-9679 - Add the workflow-timeout SW to the timeouts-showcase UIs KOGITO-9321 - Testing Operator using Order SWF example","title":"New features on 1.43","component":"serverlessworkflow","version":"1.43.0.Final","name":"release_notes","url":"/serverlessworkflow/latest/release_notes.html","titles":[{"text":"Notable changes","hash":"_notable_changes","id":1},{"text":"Other changes and Bug fixes","hash":"_other_changes_and_bug_fixes","id":2}]},"3":{"id":3,"text":"SonataFlow is evolving as platform to build and deploy workflow applications in Kubernetes clusters. You have two options to deploy your workflow applications: either as a full Quarkus project or using the SonataFlow Operator. The cards below list all features included in the platform to deploy workflow applications either with Quarkus or the Operator. Eventually these two options will converge, the SonataFlow Operator will also be able to handle full Quarkus projects. So if you opt in to use Quarkus now and manually deploy your workflows, bear in mind that it’s on the project’s roadmap to integrate the Quarkus experience with the Operator. For developers that are looking for a native Kubernetes approach where you can model workflows using YAML definitions and directly deploy them, you can use the SonataFlow Operator. The operator registers a new Kubernetes resource in the cluster to manage your workflow development iteration cycle and composition of services and events. The application is managed by the operator. Install the SonataFlow Operator Learn how to install the SonataFlow Operator in a Kubernetes cluster Developing Workflow with the Operator Learn how to deploy a workflow for development purposes Referencing Additional Files in the Workflow Learn how to reference resource files to the workflow application Configuring Workflow Services Learn how to configure workflows deployed with SonataFlow Operator Understanding Workflow Services Status Conditions Learn to interpret the workflow resource status conditions Building and Deploying Workflows with the Operator Learn how to build and deploy workflow services with SonataFlow Operator SonataFlow Operator Known Issues, Limitations and Roadmap Learn about the known issues and feature roadmap of the SonataFlow Operator Migration Guide Migration guides For Java developers, you can use Quarkus and a few add-ons to help you build and deploy the application in a Kubernetes cluster. SonataFlow also generates basic Kubernetes objects YAML files to help you getting started. The application should be managed by a Kubernetes administrator. Building workflow images using Quarkus CLI Learn how to build images for your workflow applications using Quarkus CLI Kubernetes service discovery in SonataFlow Learn what is and how the Kubernetes service discovery for workflow application configuration works Deploying your SonataFlow application on OpenShift Learn how to deploy your workflow application on OpenShift cluster Deploying your SonataFlow application on Minikube Learn how to deploy your workflow application on Minikube for local tests and development Deploying your SonataFlow application on Kubernetes Learn how to deploy your workflow application on Kubernetes","title":"SonataFlow Applications in Cloud","component":"serverlessworkflow","version":"1.43.0.Final","name":"index","url":"/serverlessworkflow/latest/cloud/index.html","titles":[{"text":"Kubernetes with the Operator","hash":"_kubernetes_with_the_operator","id":1},{"text":"Kubernetes with Quarkus","hash":"_kubernetes_with_quarkus","id":2}]},"4":{"id":4,"text":"This document describes the information about the implementation of the Cloud Native Computing Foundation (CNCF) Serverless Workflow specification. SonataFlow implements version 0.8 of the Serverless Workflow specification. The following table shows the implementation status for each Serverless Workflow specification feature. SonataFlow does not support Retries, Sleep State, and has a limited support of Timeouts features of Serverless Workflow specification. Table 1. Implementation status icons Icon Description Fully implemented feature and compliant with the Serverless Workflow specification Partially implemented feature Not implemented Table 2. Implementation status of the Serverless Workflow specification features Feature Status Reference States Workflow States Functions Function Definition Events Event Definition Serverless Workflow data Workflow Data Expressions Workflow Expressions Error handling Workflow Error Handling Retries Retry Definition Timeouts Workflow Timeouts Compensation Workflow Compensation Constants Workflow Constants Secrets Workflow Secrets The Parallel State of the workflow states feature works in a single thread. This means that a Parallel State does not create one thread per branch, simulating an actual parallel behavior. If an exclusive property is set to `false`, you should not use the link:{spec_doc_url}#event-state[Event State] of the workflow states feature as the starting state. In case, if it is specified that way, then it will behave as if an exclusive property was set to `true`. SonataFlow does not support the Sleep State feature. However, this feature will be supported in a future release. The following table shows all the workflow states that SonataFlow supports in the Serverless Workflow specification 0.8 version: Table 3. Workflow States implementation status State Status Reference Event Event State Operation Operation State Switch Switch State Sleep Sleep State Parallel Parallel State Inject Inject State ForEach ForEach State Callback Callback State The following table shows the status of the workflow functions that SonataFlow supports: Table 4. Workflow Functions implementation status Function Status Reference REST Using Functions for RESTful Service Invocations RPC Using Functions for RPC Service Invocations Expression Using Functions for Expression Evaluation Async API Using Functions for Async API Service Invocations GraphQL Using Functions for GraphQL Service Invocations OData Using Functions for OData Service Invocations Custom Defining custom function types For additional functions, the Serverless Workflow specification support the custom function type, such as sysout and java. For more information about these custom function types, see Custom functions for your SonataFlow service. SonataFlow supports events of the workflow model as defined in the Serverless Workflow specification definition, except the following: resultEventRef property in EventRefDefinition is not implemented and, if specified, this property is ignored. The same functionality can be achieved by using Callback state. Correlation has limited support, that evaluates correlation rules matching a single event consumed per time with a workflow instance. The correlation among N different events to be consumed and matched with a workflow instance is not supported in SonataFlow. For more information about event correlation, see Event correlation in SonataFlow. SonataFlow supports the implementation of the data manipulation feature using jq (default) or jsonpath expressions. jsonpath expressions can have limitations in specific scenarios of complex data manipulation. For more information, see Workflow Data section in the Serverless Workflow specification documentation. SonataFlow also supports data filtering. For more information about the data filtering, see State data filters section in the Serverless Workflow specification documentation. SonataFlow supports jq or jsonpath to define the workflow expressions. jq is the default expression language, however, if you want to use jsonpath, set the expressionLang attribute in the workflow definition as shown in the following example: Example of changing the default expression language { \"id\": \"myworkflow\", \"version\": \"1.0\", \"expressionLang\": \"jsonpath\", \"name\": \"Workflow example\", \"description\": \"An example of how to use jsonpath expressions\" } jsonpath expression is not recommended because of the limitations of the language for data manipulation. Instead, you can use jq in various use cases. SonataFlow supports the error handling feature as described in the Serverless Workflow specification definition. For more information about error handling, see Error handling in SonataFlow. SonataFlow does not support Retries feature, however, it will be implemented in a future release. Alternatively, you can use Error handling in SonataFlow. SonataFlow has limited support for the timeouts feature, which covers only workflow and event timeouts. For start event state the exclusive property is not supported if set to false, therefore the timeout is not supported for the event state when starting a workflow. For more information about timeouts, see Timeouts on events for SonataFlow. SonataFlow supports workflow compensation as described in the Serverless Workflow specification definition. For more information about compensations, see Saga orchestration example in SonataFlow. SonataFlow supports workflow constants as described in the Serverless Workflow specification definition. SonataFlow supports workflow secrets as described in the Serverless Workflow specification definition. Secrets are associated with the Quarkus Configuration module. This means that any form of configuration that Quarkus supports is also supported in SonataFlow. Creating your first workflow service Getting familiar with SonataFlow tooling If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Serverless Workflow Specification","component":"serverlessworkflow","version":"1.43.0.Final","name":"cncf-serverless-workflow-specification-support","url":"/serverlessworkflow/latest/core/cncf-serverless-workflow-specification-support.html","titles":[{"text":"States","hash":"states","id":1},{"text":"Functions","hash":"functions","id":2},{"text":"Events","hash":"events","id":3},{"text":"Serverless Workflow data","hash":"workflow_data","id":4},{"text":"Expressions","hash":"expressions","id":5},{"text":"Error handling","hash":"error_handling","id":6},{"text":"Retries","hash":"retries","id":7},{"text":"Timeouts","hash":"timeouts","id":8},{"text":"Compensation","hash":"compensation","id":9},{"text":"Constants","hash":"constants","id":10},{"text":"Secrets","hash":"secrets","id":11},{"text":"Additional resources","hash":"_additional_resources","id":12},{"text":"Found an issue?","hash":"_found_an_issue","id":13}]},"5":{"id":5,"text":"The following table serves as a quick reference for commonly used configuration properties supported in SonataFlow. You can define the following properties in the src/main/resources/application.properties file of your project. Table 1. Common configuration properties Property Description Type Default value Override at runtime kogito.persistence.type Defines the type of persistence database. The possible values of this property include: jdbc mongodb filesystem kafka infinispan postgresql string Yes kogito.persistence.query.timeout.millis Defines timeout for a query execution. long 10000 Yes kogito.persistence.optimistic.lock Enables or disables the optimistic locking. boolean false Yes kogito.workflow.version-strategy Defines strategy to resolve a process version to use. The possible values of this property include: * workflow * project string workflow No kogito.service.url Defines the service URL needed to connect to the runtime endpoint from outside the service. string Yes kogito.messaging.as-cloudevents Enables a service to use CloudEvents. boolean true No kogito.addon.messaging.incoming.defaultName Defines the default name of the incoming channel. string kogito_incoming_stream No kogito.addon.messaging.outgoing.defaultName Defines the default name of the outgoing channel. string kogito_outgoing_stream No kogito.jackson.fail-on-empty-bean If this property is set as true, Jackson fails on an empty bean. boolean false No kogito.sw.operationIdStrategy Defines strategy to generate the configuration key of open API specifications. The possible values of this property include: file_name full_uri spec_title function_name string file_name No kogito.sw.states.foreach.outputVarName Defines the variable name for foreach loop. string _swf_eval_temp No kogito.grpc.enum.includeDefault Indicates if the default value of enumerations needs to be included in gRPC response. boolean false No kogito.grpc.stream.timeout Number of seconds to wait for a response from the server when using streams. int 20 No kogito.quarkus.events.threads.poolSize Defines the ThreadPoolExecutor maximum number of threads to allow in the pool. int 10 Yes kogito.quarkus.events.threads.queueSize Defines the ThreadPoolExecutor queue size to use for holding tasks before the tasks are executed. int 1 Yes quarkus.kogito.logger.always-include Enables you to include the workflow debug logger everytime. By default, this property is included in development and test mode. boolean false No quarkus.kogito.devservices.enabled Enables or disables the Dev Services for Kogito. By default, the Dev Services are enabled, unless an existing configuration is present. boolean true No quarkus.kogito.devservices.port Defines the optional fixed port that the Dev Services listen to. int 8180 No quarkus.kogito.devservices.image-name Defines the Data Index image to use. string quay.io/kiegroup/kogito-data-index-ephemeral:1.43.0.Final No quarkus.kogito.devservices.shared Indicates if the Data Index instance, which is managed by Quarkus Dev Services, is shared. boolean true No quarkus.kogito.devservices.service-name Defines the value of the label that is attached to the started container. This property is used when shared is set to true. string kogito-data-index No If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Configuration properties in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"configuration-properties","url":"/serverlessworkflow/latest/core/configuration-properties.html","titles":[{"text":"Found an issue?","hash":"_found_an_issue","id":1}]},"6":{"id":6,"text":"The Cloud Native Computing Foundation (CNCF) specification supports the custom function type, which enables the implementations to extend the function definition capability. SonataFlow supports the java and sysout custom types. The CNCF specification does not support java and sysout functions. Therefore, these functions might not be portable across other implementations. You can use the sysout function for logging as shown in the following example: Example of sysout function definition { \"functions\": [ { \"name\": \"logInfo\", \"type\": \"custom\", \"operation\": \"sysout:INFO\" } ] } The string after the : is optional and is used to indicate the log level. The possible values are TRACE, DEBUG, INFO, WARN, and ERROR. If not present, INFO is considered by default. In the state definition, you can call the same sysout function as shown in the following example: Example of a sysout function reference within a state { \"states\": [ { \"name\": \"myState\", \"type\": \"operation\", \"actions\": [ { \"name\": \"printAction\", \"functionRef\": { \"refName\": \"logInfo\", \"arguments\": { \"message\": \"\\\"Workflow model is \\\\(.)\\\"\" } } } ] } ] } message argument can be a jq expression or a jq string using interpolation, as in the example above SonataFlow supports the java functions within an Apache Maven project, in which you define your workflow service. The following example shows the declaration of a java function: Example of a java function declaration { \"functions\": [ { \"name\": \"myFunction\", (1) \"type\": \"custom\", (2) \"operation\": \"service:java:com.acme.MyInterfaceOrClass::myMethod\" (3) } ] } 1 myFunction is the function name 2 custom is the function type 3 service:java:com.acme.MyInterfaceOrClass::myMethod is the custom operation definition. In the custom operation definition, service is the reserved operation keyword followed by the java keyword. com.acme.MyInterfaceOrClass is the FQCN (Fully Qualified Class Name) of the interface or implementation class followed by the method name (myMethod). Your method interface signature must copy the arguments passed by the workflow. For example, if you invoke a function using one argument as follows, then your method signature assumes that the number model variable is an integer: Example of a java function reference with one argument { \"functionRef\": { \"refName\": \"myFunction\", \"arguments\": { \"number\": \"${.number}\" } } } Example of a java function implementation public class MyInterfaceOrClass { public void myMethod(int number) { if (number % 2 != 0) { throw new IllegalArgumentException(\"Odd situation\"); } } } As a particular case, if you provide no argument in the workflow definition, the signature of the Java method might include a Jackson’s JsonNode parameter. This means that the Java method expects the entire workflow model as input. When using the following example function reference with no arguments, and if the method signature contains a JsonNode parameter, the entire workflow model is passed when the method call is performed. Example of a java function reference with no arguments { \"functionRef\": { \"refName\": \"myFunction\" } } Example of a java function implementation public class MyInterfaceOrClass { public JsonNode myMethod(JsonNode workflowData) { // do whatever I want with the Workflow model ...... // return the modified content: return workflowData; } } If your method returns a JsonNode, the content of that node is merged into the workflow model (you can use an action data filter to control what is merged). The same occurs if your method returns any Java Object descendant that is not a primitive wrapper, the Java object is recursively converted to a JSON object and the result is merged into the workflow model (you can use an action data filter to control what is merged). If your method returns a primitive type or their corresponding wrapper object (int, boolean, long, and so on), then the primitive value is added to the workflow model with the name response (you can change that name using an action data filter). If your method returns Java collections, it is converted to a JSON array and added to the workflow model with the name response (you can change that name using an action data filter). If you need access to process contextual information (for example, Kogito process instance ID) inside your Java service, you can add a KogitoProcessContext parameter as the last one in the method signature. Therefore, if you need to do so, you can update the signature of methods from previous sections. Example of a function accessing Kogito context public class MyInterfaceOrClass { public JsonNode myMethod(JsonNode workflowData, KogitoProcessContext context ) { // do whatever I want with the JsonNode and the Kogito process context ...... // return the modified content: return workflowData; } } Example of a function accessing Kogito context public class MyInterfaceOrClass { public void myMethod(int number, KogitoProcessContext context) { if (number % 2 != 0) { throw new IllegalArgumentException(\"Odd situation\"); } } } Avoid using java functions to call the external services, instead, you can use the services orchestration features. Kogito supports the Camel Routes functions within an Apache Maven project, in which you define your workflow service. This section briefly exemplifies how to define and use Camel Routes within your workflow application. For more information, see the Integrating with Camel Routes. The following example shows the declaration of a Camel function: { \"functions\": [ { \"name\": \"myCamelEndpoint\", (1) \"type\": \"custom\", (2) \"operation\": \"camel:direct:myendpoint\" (3) } ] } 1 myCamelEndpoint is the function name 2 custom is the function type 3 camel:direct:myendpoint is the custom operation definition. In this definition, camel is the reserved keyword followed by the direct endpoint. Camel Direct is the only supported consumer by SonataFlow. Finally, myendpoint is the endpoint URI name found in the route within your project’s context. The Camel function arguments must follow a specific structure when passing data from the workflow state to the route. The body and headers are the only attributes supported in the function arguments. Both are optional if you need to call the Camel routes without arguments. The only constraint is that you can not call a Camel route with only headers. The following examples display valid argument structures for Camel function arguments: Example calling a Camel route using body and headers { \"functionRef\": { \"refName\": \"myCamelEndpoint\", \"arguments\": { \"body\": \"${ .my.body.data }\", (1) \"headers\": { (2) \"key1\": \"${ .my.value }\", \"key2\": \"${ .my.other.value }\" } } } } 1 jq expression filtering the state data for the body argument. 2 JSON key/value pair for the headers argument. A jq expression returning the same JSON object is also valid. Example calling a Camel route using body { \"functionRef\": { \"refName\": \"myCamelEndpoint\", \"arguments\": { \"body\": \"${ .my.body.data }\" } } } Example calling a Camel route without arguments { \"functionRef\": { \"refName\": \"myCamelEndpoint\" } } Example calling a Camel route with only one argument { \"functionRef\": { \"refName\": \"myCamelEndpoint\", \"arguments\": \"${ .my.body.data }\" } } In this last example, the jq expression result is used as the body argument in a way to simplify the definition. The Camel route is responsible to produce the return value in a way that the workflow can understand. The following are considered valid objects: A string that contains a valid JSON object A valid Java bean that can be serialized to JSON A Jackson’s JsonNode object Any primitive type (Integer, Float, Decimal, String, etc) SonataFlow provides an implementation of a custom function through the knative-serving add-on to invoke Knative services. It allows you to have a static URI, defining a Knative service, which is used to perform HTTP requests. The Knative service defined in the URI is queried in the current Knative cluster and translated to a valid URL. This section briefly exemplifies how to define and use Knative custom functions within your workflow application. For more information, see Invoking Knative services from Serverless Workflow. Given the following deployed Knative service: $ kn service list NAME URL LATEST AGE CONDITIONS READY REASON custom-function-knative-service http://custom-function-knative-service.default.10.109.169.193.sslip.io custom-function-knative-service-00001 3h16m 3 OK / 3 True You can declare a SonataFlow custom function using the Knative service name, like the following: \"functions\": [ { \"name\": \"greet\", (1) \"type\": \"custom\", (2) \"operation\": \"knative:services.v1.serving.knative.dev/custom-function-knative-service?path=/plainJsonFunction\", (3) } ] 1 greet is the function name 2 custom is the function type 3 In operation you set the coordinates of the Knative service The above function will send a POST request to the http://custom-function-knative-service.default.10.109.169.193.sslip.io/plainJsonFunction URL. If you don’t specify a path, SonataFlow will use the root path (/). GET requests are not yet supported. Note that in the above example, you declared only the name of the service you wanted to call, but not a namespace. In this case, SonataFlow will look for a Knative service in the same namespace the workflow service is running. In case you need to call a Knative service in a different namespace, you can declare the function as: \"functions\": [ { \"name\": \"greet\", \"type\": \"custom\", \"operation\": \"knative:services.v1.serving.knative.dev/my_different_namespace/custom-function-knative-service?path=/plainJsonFunction\" } ] In the above example, SonataFlow will look for the custom-function-knative-service in the my_different_namespace namespace. In case you need to send a payload in the request, you can add it to arguments in functionRef. You must send the following JSON object as the payload: { \"product_id\": \".product_id\", \"customer_name\": \".customer_name\" } You must declare a functionRef like the following. \"states\": [ { \"name\": \"invokeFunction\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": { \"refName\": \"greet\", \"arguments\": { (1) \"product_id\": \".product_id\", \"customer_name\": \".customer_name\" } } } ], \"end\": true } ] 1 The request payload is set in arguments. By default, SonataFlow sends the payload of a Knative function as a regular JSON object and Content-Type as application/json. However, you can tell SonataFlow to send the payload as a CloudEvent. In that case, SonataFlow will check if the CloudEvent has all mandatory attributes set and use application/cloudevents+json; charset=UTF-8 in Content-Type. To tell SonataFlow you want to send the payload as a CloudEvent, you must define your function as follows: \"functions\": [ { \"name\": \"greet\", \"type\": \"custom\", \"operation\": \"knative:services.v1.serving.knative.dev/custom-function-knative-service?path=/plainJsonFunction&asCloudEvent=true\" (1) } ] 1 Tells SonataFlow to send the payload as a CloudEvent. Default is false If you do not set the asCloudEvent attribute to true, you can not send a CloudEvent. If you do so, SonataFlow will throw an error. You must send the following CloudEvent as the payload: { \"specversion\" : \"1.0\", \"type\" : \"com.github.pull_request.opened\", \"source\" : \"https://github.com/cloudevents/spec/pull\", \"subject\" : \"123\", \"time\" : \"2018-04-05T17:31:00Z\", \"comexampleextension1\" : \"value\", \"comexampleothervalue\" : 5, \"datacontenttype\" : \"text/xml\", \"data\" : \"\" } You must declare a functionRef like the following: (Do not forget to set asCloudEvent as true in function metadata) \"states\": [ { \"name\": \"invokeFunction\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": { \"refName\": \"greet\", \"arguments\": { (1) \"specversion\" : \"1.0\", \"type\" : \"com.github.pull_request.opened\", \"source\" : \"https://github.com/cloudevents/spec/pull\", \"subject\" : \"123\", \"time\" : \"2018-04-05T17:31:00Z\", \"comexampleextension1\" : \"value\", \"comexampleothervalue\" : 5, \"datacontenttype\" : \"text/xml\", \"data\" : \"\" } } } ], \"end\": true } ] 1 The CloudEvent is set in arguments. SonataFlow generates a CloudEvent ID based on the source and the workflow instance ID. In case you decide to set an ID, SonataFlow will use it and you must ensure it’s unique. Refer to the following example on how to set a CloudEvent ID: Setting a CloudEvent ID \"arguments\": { \"specversion\" : \"1.0\", \"id\": \"a_unique_id_42\", (1) \"type\" : \"com.github.pull_request.opened\", \"source\" : \"https://github.com/cloudevents/spec/pull\", \"subject\" : \"123\", \"time\" : \"2018-04-05T17:31:00Z\", \"comexampleextension1\" : \"value\", \"comexampleothervalue\" : 5, \"datacontenttype\" : \"text/xml\", \"data\" : \"\" } 1 The CloudEvent ID. By default, the Knative service must respond within 10 seconds. You can use the kogito.sw.functions..timeout property to configure this value. For instance, if you want to reduce the request timeout to 5 seconds, you must add the following to your application.properties file: kogito.sw.functions.greet.timeout=5000 (1) 1 Time in milliseconds You can add your custom types by using the Kogito add-on mechanism. As predefined custom types like sysout or java, the custom type identifier is the prefix of the operation field of the function definition. Kogito add-ons relies on the Quarkus extensions mechanism. And the add-on consists of at least two Maven projects: The deployment module, which is responsible for generating the code required for the extension to work. The runtime module, which includes the non-generated classes that are required for the extension to work. In the case of a Serverless Workflow custom type, following are the roles of the modules: The deployment project The deployment project is expected to configure the work item handler used during runtime to perform the logic associated with the custom type. It must contain a Java class that inherits from WorkItemTypeHandler. Its responsibilities are to indicate the custom type identifier (the operation prefix, as indicated earlier) and to set up the WorkItemNodeFactory instance passed as a parameter of the fillWorkItemHandler method. That instance is included in the Kogito process definition for that Workflow. As a part of this setup, you must indicate the name of the WorkItemNodeFactory. You might also provide any relevant metadata for that handler if needed. The runtime project The runtime project consists of a WorkflowWorkItemHandler implementation, which name must match with the one provided to WorkItemNodeFactory during the deployment phase, and a WorkItemHandlerConfig bean that registers that handler with that name. When a Serverless Workflow function is called, Kogito identifies the proper WorkflowWorkItemHandler instance to be used for that function type (using the handler name associated with that type by the deployment project) and then invokes the internalExecute method. The Map parameter contains the function arguments defined in the workflow, and the WorkItem parameter contains the metadata information added to the handler by the deployment project. Hence, the executeWorkItem implementation has an access to all the information needed to perform the computational logic intended for that custom type. Assuming you want to interact, from a workflow file, with a legacy RPC server as the one defined in this project. This legacy server supports four simple arithmetic operations: add, minus, multiply and divide, which can be invoked using a custom RPC protocol. Since this is an uncommon protocol, the workflow cannot handle them by using any of the predefined Serverless Workflow function types. The available options are to use a Java service, which invokes a Java class that knows how to interact with the server, or define a custom type that knows how to interact with the service. Using the recent approach, you can write a workflow file defining this function. RPC Custom function definition example \"functions\": [ { \"name\": \"division\", \"type\": \"custom\", \"operation\": \"rpc:division\" } ], The operation starts with rpc, which is the custom type identifier, and continues with division, which denotes the operation that will be executed in the legacy server. A Kogito addon that defines the rpc custom type must be developed for this function definition to be identified. It is consist of a deployment project and a runtime project. The deployment project is responsible for extending the WorkItemTypeHandler and setup the WorkItemNodeFactory as follows: Example of the RPC function Java implementation import static org.kie.kogito.examples.sw.custom.RPCCustomWorkItemHandler.NAME; import static org.kie.kogito.examples.sw.custom.RPCCustomWorkItemHandler.OPERATION; public class RPCCustomTypeHandler extends WorkItemTypeHandler{ @Override public String type() { return \"rpc\"; } @Override protected > WorkItemNodeFactory fillWorkItemHandler(Workflow workflow, ParserContext context, WorkItemNodeFactory node, FunctionDefinition functionDef) { return node.workName(NAME).metaData(OPERATION, trimCustomOperation(functionDef)); } } This example setups the name of the KogitoWorkItemHandler, adds a metadata key with the name of the remote operation (extracted from the Serverless Workflow function definition operation property), and declares that the custom type is named as rpc. The Runtime project contains the KogitoWorkItemHandler and the WorkItemHandlerConfig implementations. As expected, RPCCustomWorkItemHandler implements the internalExecute method as follows: Example of implementation of the internalExecute method @Override protected Object internalExecute(KogitoWorkItem workItem, Map parameters) { try { Iterator iter = parameters.values().iterator(); Map metadata = workItem.getNodeInstance().getNode().getMetaData(); String operationId = (String) metadata.get(OPERATION); if (operationId == null) { throw new IllegalArgumentException (\"Operation is a mandatory parameter\"); } return CalculatorClient.invokeOperation((String)metadata.getOrDefault(HOST,\"localhost\"), (int) metadata.getOrDefault(PORT, 8082), OperationId.valueOf(operationId.toUpperCase()), (Integer)iter.next(), (Integer)iter.next()); } catch (IOException io ) { throw new UncheckedIOException(io); } } The implementation invokes the CalculatorClient.invokeOperation, a java static method that knows how to interact with the legacy service. You can obtain the operation parameter from the WorkItem metadata. The dividend and the divisor parameters are obtained from the Map parameter, which contains the function arguments defined in the workflow file. Example of the custom function call from the workflow definition { \"actions\":[ { \"functionRef\":{ \"refName\":\"division\", \"arguments\":{ \"dividend\":\".dividend\", \"divisor\":\".divisor\" } } } ] } The RPCCustomWorkItemHandlerConfig is a bean that registers the handler name. Example of injecting the custom`WorkItemHandler` @Inject RPCCustomWorkItemHandler handler; @PostConstruct void init () { register(handler.getName(),handler); } CNCF Serverless Workflow specification jq expressions in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Custom functions for your SonataFlow service","component":"serverlessworkflow","version":"1.43.0.Final","name":"custom-functions-support","url":"/serverlessworkflow/latest/core/custom-functions-support.html","titles":[{"text":"Sysout custom function","hash":"con-func-sysout","id":1},{"text":"Java custom function","hash":"con-func-java","id":2},{"text":"Function Definition","hash":"_function_definition","id":3},{"text":"Function Arguments","hash":"_function_arguments","id":4},{"text":"Function return values","hash":"_function_return_values","id":5},{"text":"Function accessing Kogito context","hash":"_function_accessing_kogito_context","id":6},{"text":"Camel custom function","hash":"con-func-camel","id":7},{"text":"Function definition","hash":"_function_definition_2","id":8},{"text":"Function arguments","hash":"_function_arguments_2","id":9},{"text":"Function return values","hash":"_function_return_values_2","id":10},{"text":"Knative custom function","hash":"con-func-knative","id":11},{"text":"Function definition","hash":"_function_definition_3","id":12},{"text":"About namespaces","hash":"about-namespaces","id":13},{"text":"Function arguments","hash":"_function_arguments_3","id":14},{"text":"Sending a regular JSON object","hash":"_sending_a_regular_json_object","id":15},{"text":"Sending a CloudEvent","hash":"sending-cloudevents","id":16},{"text":"Configurations","hash":"_configurations","id":17},{"text":"Request timeout","hash":"_request_timeout","id":18},{"text":"Custom function types","hash":"_custom_function_types","id":19},{"text":"Custom function type example","hash":"_custom_function_type_example","id":20},{"text":"Additional resources","hash":"_additional_resources","id":21},{"text":"Found an issue?","hash":"_found_an_issue","id":22}]},"7":{"id":7,"text":"The dataInputSchema in the Serverless Workflow specification is a parameter used in the workflow definition. The dataInputSchema parameter validates the workflow data input against a defined JSON Schema. It is important to provide dataInputSchema, as it is used to verify if the provided workflow data input is correct before any workflow states are executed. You can define a dataInputSchema as follows: dataInputSchema definition \"dataInputSchema\": { \"schema\": \"URL_to_json_schema\", \"failOnValidationErrors\": false } In the previous definition, the schema property is a URI, which holds the path to the JSON schema used to validate the workflow data input. The URI can be a classpath URI, a file, or an HTTP URL. If a classpath URI is specified, then the JSON schema file must be placed in the resources section of the project or any other directory included in the classpath. failOnValidationErrors is an optional flag that indicates the behavior adopted when the input data does not match the specified JSON schema. If not specified or set to true, an exception will be thrown and flow execution will fail. If set to false, the flow will be executed and a log of level WARN with the validation errors will be printed. Serverless Workflow specification does not support JSON output schema until version 0.9. Therefore SonataFlow is implementing it as a Serverless Workflow specification extension. Output schema is applied after workflow execution to verify that the output model has the expected format. It is also useful for Swagger generation purposes. Similar to Input schema, you must specify the URL to the JSON schema, using outputSchema as follows: outputSchema definition \"extensions\" : [ { \"extensionid\": \"workflow-output-schema\", \"outputSchema\": { \"schema\" : \"URL_to_json_schema\", \"failOnValidationErrors\": false } ] The same rules described for dataInputSchema apply for schema and failOnValidationErrors. The difference is that the latter flag is applied after workflow execution. You can see the serverless-workflow-expression-quarkus example application of a workflow definition with dataInputSchema and outputSchema. When a workflow definition contains a dataInputSchema and/or outputSchema attribute, the workflow application generates an OpenAPI file, such as http://localhost:8080/q/openapi. The generated OpenAPI file references the schema file, which helps in defining the input and checking the output data for the workflows. For more information about the OpenAPI file, see OpenAPI specification. If you want to generate an OpenAPI file for a workflow, then you must add the Quarkus dependency in the project. Example component section with schema in an OpenAPI file components: schemas: GeneralError: type: object properties: code: format: int32 type: integer message: type: string Orchestrating the OpenAPI services Configuring the OpenAPI services endpoints If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Input and Output schema definition for SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"defining-an-input-schema-for-workflows","url":"/serverlessworkflow/latest/core/defining-an-input-schema-for-workflows.html","titles":[{"text":"Input schema","hash":"_input_schema","id":1},{"text":"Output schema","hash":"_output_schema","id":2},{"text":"Example with dataInputSchema and outputSchema","hash":"_example_with_datainputschema_and_outputschema","id":3},{"text":"Swagger documentation","hash":"_swagger_documentation","id":4},{"text":"Additional resources","hash":"_additional_resources","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"8":{"id":8,"text":"This document describes event state in a workflow. You can use the event state to start a new workflow instance upon the reception of a designated CloudEvent or to pause the execution of an existing workflow instance until a designated CloudEvent is received. An event state consists of one or more event definitions. Event definitions are combined to designate the CloudEvent types that the event state listens to. In an event definition, the onEvents property is used to group the CloudEvent types that might trigger the same set of actions. The exclusive property in an event definition indicates how an event match is calculated. In case the value of exclusive property is false, then all CloudEvent types in the eventRefs array must be received for a match to occur. Otherwise, the reception of the referenced CloudEvent types is considered a match. The following is an example of event definitions, consisting of two CloudEvent types including noisy and silent: Example event definitions \"events\": [ { \"name\": \"noisyEvent\", \"source\": \"\", \"type\": \"noisy\", \"dataOnly\" : \"false\" }, { \"name\": \"silentEvent\", \"source\": \"\", \"type\": \"silent\" } ] To indicate that an event match occurs when both noisy and silent CloudEvent types are received and to execute different actions for both CloudEvent types, define an event state containing both event definitions in separate onEvent items and set exclusive property to false. Example event state defintion with multiple onEvent items { \"name\": \"waitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"noisyEvent\" ], \"actions\": [ { \"functionRef\": \"letsGetLoud\" } ] }, { \"eventRefs\": [ \"silentEvent\" ], \"actions\": [ { \"functionRef\": \"beQuiet\" } ] } ] , \"exclusive\": false } To execute the same action when both event types are received, use only one onEvent item as shown in the following example: Example event state definition with single onEvent item { \"name\": \"waitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"noisyEvent\", \"silentEvent\" ], \"actions\": [ { \"functionRef\": \"notCareAboutNoise\" } ] } ] , \"exclusive\": false } If you want the same action to be executed when any of the event types is received, set the exclusive property to true as shown in the following example: Example event state definition executing same action { \"name\": \"waitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"noisyEvent\", \"silentEvent\" ], \"actions\": [ { \"functionRef\": \"notCareAboutNoise\" } ] } ] ,\"exclusive\": true } You can also remove the exclusive property, as true is the default value. To start a new workflow instance, set the start property to the event state name in the workflow header. The workflow instance starts when there is an event match. Using the previous example of event state definition, add the following code in the workflow header: Start a workflow instance \"start\":\"waitForEvent\" An event state can also be used to pause an existing workflow instance. When the workflow execution reaches an event state, which is not starting, then the execution is paused until there is an event match for that workflow instance. Similar to the callback state in a workflow, the workflow instance to be resumed is identified by kogitoprocrefid CloudEvent attribute or calculated according to the event correlation functionality. While callback state is used for fire&wait scenarios, event state covers wait&fire scenarios. For more information about the callback state, see Callback state in SonataFlow. Creating your first workflow service Consuming and producing events using Apache Kafka Consuming and producing events on Knative Eventing If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Events in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"handling-events-on-workflows","url":"/serverlessworkflow/latest/core/handling-events-on-workflows.html","titles":[{"text":"Example of event match","hash":"ref-example-event-match","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"9":{"id":9,"text":"The Serverless Workflow specification defines several timeouts configurations that you can use to configure maximum times for the workflow execution in different scenarios. For example, you can configure how long a workflow can wait for an event to arrive when it is in a given state, etc. Currently, SonataFlow supports only the workflow execution timeout and event timeouts. Regardless of its application scope (workflow or state), the timeouts must be configured as an amount of time (a duration), which is considered to start when the referred scope becomes active. Timeouts use the ISO 8601 data and time standard to specify a duration of time and follow the format PnDTnHnMn.nS with days considered to be exactly 24 hours. For instance, PT15M configures 15 minutes, and P2DT3H4M defines 2 days, 3 hours and 4 minutes. To configure the maximum amount of time a workflow can be running before being canceled, you can use the workflow timeout. This is configured in the header section of the workflow, by using the WorkflowExecTimeout definition. Only the duration property is currently implemented. Once canceled, the workflow is considered to be finished, and will not be accessible through a GET request anymore. So it behaves as if the interrupt was true by default. For example, to cancel the workflow after an hour of execution, you must use the following configuration. Example of workflow timeout { \"id\": \"workflow_timeout\", \"version\": \"1.0\", \"name\": \"Workflow timeout example\", \"description\": \"An example of how workflow timeout works\", \"start\": \"printWaitMessage\", \"timeouts\": { \"workflowExecTimeout\": \"PT1H\" } ... } When you define a state in a workflow, you can use the timeouts property to configure the maximum time to complete this state. When that time is overdue, the state is considered timed-out, and the engine continues the execution from this state. The execution flow depends on the state type, for instance, a transition to a next state might be executed. All the properties that you can use to configure state timeouts are described in the Serverless Workflow specification. Event-based states can use the sub-property eventTimeout to configure the maximum time to wait for an event to arrive. This is the only property that is supported in current implementation. The Callback state can be used when you need to execute an action, in general to call an external service, and wait for an asynchronous response in form of an event, the callback. Once the response event is consumed, the workflow continues the execution, in general moving to the next state defined in the transition property. See more on Callback state in SonataFlow. Since the Callback state halts the execution until the event is consumed, you can configure an eventTimeout for it, and in case the event does not arrive in the configured time duration, the workflow continues the execution moving to the next state defined in the transition, see the example. Example of Callback state with timeout { \"name\": \"CallbackState\", \"type\": \"callback\", \"action\": { \"name\": \"callbackAction\", \"functionRef\": { \"refName\": \"callbackFunction\", \"arguments\": { \"input\": \"${\\\"callback-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" has executed the callbackFunction.\\\"}\" } } }, \"eventRef\": \"callbackEvent\", \"transition\": \"CheckEventArrival\", \"onErrors\": [ { \"errorRef\": \"callbackError\", \"transition\": \"FinalizeWithError\" } ], \"timeouts\": { \"eventTimeout\": \"PT30S\" } } The Switch state can be used when you need to take an action depending on certain conditions, these conditions can be based on the workflow data, dataConditions, or on events, eventConditions. When you use the eventConditions, the workflow execution waits to make a decision until any of the configured events arrives and matches a condition. In this situation, you can configure an event timeout, that controls the maximum time to wait for an event to match the conditions. If this time expires, the workflow moves to the state defined in the defaultCondition property of the Switch state, as you can see in the example. See more details about this state on the Serverless Workflow specification - Switch State. Example of Switch state with timeout { \"name\": \"ChooseOnEvent\", \"type\": \"switch\", \"eventConditions\": [ { \"eventRef\": \"visaApprovedEvent\", \"transition\": \"ApprovedVisa\" }, { \"eventRef\": \"visaDeniedEvent\", \"transition\": \"DeniedVisa\" } ], \"defaultCondition\": { \"transition\": \"HandleNoVisaDecision\" }, \"timeouts\": { \"eventTimeout\": \"PT5S\" } } The Event state is used to wait for one or more events to be received by the workflow, execute a set of actions, and then continue the execution. If the Event state is a starting state, a new workflow instance is created. The Event state is not supported as a starting state if the exclusive flag is set to false, therefore timeout is not supported in this case. The timeouts property is used for this state to configure the maximum time the workflow should wait for the configured events to arrive. If this time is exceeded and the events are not received, the workflow moves to the state defined in the transition property or ends the workflow instance (in case of an end state), without performing any actions. You can see this in the example. For more information about Event state timeout, see Serverless Workflow specification - Event State. Example of Event state with timeout { \"name\": \"WaitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"event1\" ], \"eventDataFilter\": { \"data\": \"${ \\\"The event1 was received.\\\" }\", \"toStateData\": \"${ .exitMessage }\" }, \"actions\": [ { \"name\": \"printAfterEvent1\", \"functionRef\": { \"refName\": \"systemOut\", \"arguments\": { \"message\": \"${\\\"event-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" executing actions for event1.\\\"}\" } } } ] }, { \"eventRefs\": [ \"event2\" ], \"eventDataFilter\": { \"data\": \"${ \\\"The event2 was received.\\\" }\", \"toStateData\": \"${ .exitMessage }\" }, \"actions\": [ { \"name\": \"printAfterEvent2\", \"functionRef\": { \"refName\": \"systemOut\", \"arguments\": { \"message\": \"${\\\"event-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" executing actions for event2.\\\"}\" } } } ] } ], \"timeouts\": { \"eventTimeout\": \"PT30S\" }, \"transition\": \"PrintExitMessage\" } To deploy a workflow that uses timeouts, or any other timer-based action, it is necessary to have a job service running in your environment, which is an independent service responsible to control the workflows timers, see the job service for more information. The provisioning of this service depends on the work mode that you are using. When you work with the SonataFlow Operator Dev Profile, the operator will automatically provide an execution environment that contains an embedded job service instance, as well as an instance of the data index service. And thus, there is no need for additional configurations. In the timeouts showcase you can see the details of how to work with timeouts and the SonataFlow Operator Dev Profile. When you work with a standalone Quarkus Workflow Project, you must: Configure the project to include the required addon for the workflows to connect with that service. Ensure that a jobs service instance is available in your environment. In the job service guide you can see all the available add-dons and configuration alternatives for this case. To see the examples about how configure the timeouts, and execute them in different deployment scenarios, you can use the Timeouts showcase in SonataFlow Callback state in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Timeouts in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"timeouts-support","url":"/serverlessworkflow/latest/core/timeouts-support.html","titles":[{"text":"Workflow timeout","hash":"_workflow_timeout","id":1},{"text":"Event timeout","hash":"_event_timeout","id":2},{"text":"Callback state timeout","hash":"callback-state-timeout","id":3},{"text":"Switch state timeout","hash":"switch-state-timeout","id":4},{"text":"Event state timeout","hash":"event-state-timeout","id":5},{"text":"Deploying a timed-based workflow","hash":"_deploying_a_timed_based_workflow","id":6},{"text":"SonataFlow Operator Dev Profile","hash":"_sonataflow_operator_dev_profile","id":7},{"text":"Quarkus Workflow Project","hash":"_quarkus_workflow_project","id":8},{"text":"Timeouts showcase","hash":"timeouts-showcase","id":9},{"text":"Additional resources","hash":"_additional_resources","id":10},{"text":"Found an issue?","hash":"_found_an_issue","id":11}]},"10":{"id":10,"text":"Each workflow instance is associated with a data model. A data model consists of a JSON object regardless of whether the workflow file contains YAML or JSON. The initial content of the JSON object depends on how the workflow is started. If the workflow is created using the Cloud Event, then the workflow content is taken from the data property. However, if the workflow is started through an HTTP POST request, then the workflow content is taken from the request body. The workflow expressions in the Serverless Workflow specification are used to interact with the data model. The supported expression languages include JsonPath and jq. jq expression language is the default language. However, you can change the expression language to JsonPath using the expressionLang property. This document describes the usage of jq expressions in switch state conditions, action function arguments, and data filtering. The conditions occurring in a switch state enable the workflow designer to select the path that workflow follows based on the data model content. A condition in a switch state is an expression, which returns a boolean value when evaluated against the data model. If a condition associated with a state transition returns true, then the workflow must follow that transition. For example, in the serverless-workflow-greeting-quarkus example application, a message is displayed depending on the selected language, that is English or Spanish. If the value of the language property is English, the constant literal injected on the message property is Hello from, otherwise the constant value injected on the message property is Saludos desde…. The switch state in the serverless-workflow-greeting-quarkus example application contains the following conditions, which in turn contains two jq expressions returning a boolean. Example conditions in serverless-workflow-greeting-quarkus \"dataConditions\": [ { \"condition\": \"${ .language == \\\"English\\\" }\", \"transition\": \"GreetInEnglish\" }, { \"condition\": \"${ .language == \\\"Spanish\\\" }\", \"transition\": \"GreetInSpanish\" } ] The Serverless Workflow specification requires all the expressions to be embedded within ${… }. However, SonataFlow figures out whether or not a string is an expression. Therefore, you can save characters and skip ${ in the beginning and } in the end. In case of portability, you must embed the expressions within ${… }. In the Serverless Workflow specification, you can define workflow functions, which can be invoked several times by the workflow states. Each workflow function call might contain different arguments, which are specified using the function arguments. For example, you can see the temperature conversion function definition in serverless-workflow-temperature-conversion example application. The temperature conversion function performs OpenAPI invocations to convert Fahrenheit to Celsius. For more information about OpenAPI, see Orchestrating the OpenAPI services. Following is the subtraction function in serverless-workflow-temperature-conversion example application: Example subtraction function in serverless-workflow-temperature-conversion \"functions\": [ { \"name\": \"subtraction\", \"operation\": \"specs/subtraction.yaml#doOperation\" }] The arguments in subtraction function are expressed as a JSON object, and the property values of the JSON object are either a string containing an expression or a JSON data type, such as string, number, or boolean. Example arguments in subtraction function \"functionRef\": { \"refName\": \"subtraction\", \"arguments\": { \"leftElement\": \".fahrenheit\", \"rightElement\": \".subtractValue\" } } In the previous example, the left number is equal to the fahrenheit property (an input number that invokes the workflow), and the right number is equal to the subtractValue property (a constant number that is injected to the workflow model by SetConstants state). Once the expression evaluation is resolved for all properties that contain an expression, the resulting object is passed in the OpenAPI request. Based on the OpenAPI definition, the properties in the JSON object are used as body, path, query, or header of the upcoming REST invocation. Following is an example of function arguments defined as string that contains an expression, returning a JSON object: Example function arguments defined as string \"functionRef\": { \"refName\": \"subtraction\", \"arguments\": \"{leftElement: .fahrenheit, rightElement : .subtractValue}\" } In the previous example, the result of the expression evaluation is the same JSON object than in the first case, which is passed as arguments of the OpenAPI request. The Serverless Workflow specification defines the following filtering mechanisms to select which information must be part of the workflow data model: Action data filters: Select the part of the action result that is merged into the data model, which overrides the properties that share the name with the selected action result. Event data filters: Similar to the action data filters, but apply to the events instead of actions. State data filters: Define the workflow model to the JSON object, which is returned by the expression and discards an existing property. State and Action data filter example You can see serverless-workflow-expression-quarkus example application, in which actions and state data filters are used. Following is an expression function in serverless-workflow-expression-quarkus example application: Example expression function in serverless-workflow-expression-quarkus \"functions\": [ { \"name\": \"max\", \"type\": \"expression\", \"operation\": \"{max: .numbers | max_by(.x), min: .numbers | min_by(.y)}\" } ] In the previous example, an array of complex numbers (x is real coordinate and y is imaginary coordinate) is accepted and an expression function is defined to calculate the maximum value of x and minimum value of y for the numbers array. Also, the serverless-workflow-expression-quarkus example application contains an action data filter defined inside squareState action and a state data filter defined inside finish state. The action data filter selects the maximum value of x to be merged to the workflow model, and the state data filter defines the maximum value as the entire workflow model that is returned as the workflow response. The previous example expression also contains a max function of type expression and an operation property containing a string of jq expression. This jq expression returns a JSON object, in which the max property is the maximum value of the x coordinate and the min property is the minimum value of the y coordinate. Following is an action data filter in serverless-workflow-expression-quarkus example application: Example action data filter in serverless-workflow-expression-quarkus \"actions\": [ { \"name\": \"maxAction\", \"functionRef\": { \"refName\": \"max\" }, \"actionDataFilter\": { \"results\" : \".max.x\", \"toStateData\" : \".number\" } } ] In case the previous example of action data filter is not added in the serverless-workflow-expression-quarkus, then the entire JSON object returned by the function is merged into the workflow model. The previous action data filter contains the following properties: results, selecting the attribute from the data returned by the action. toStateData, indicating the name of the target property inside the workflow model. If the target property does not exist, then a target property is added. Therefore, after executing the action, the workflow model consists of a number property, containing the maximum value of x and the original numbers array. After that, the workflow transitions to the finish state. Example state data filter in serverless-workflow-expression-quarkus \"name\": \"finish\", \"type\": \"operation\", \"stateDataFilter\": { \"input\": \"{result: .number}\" } The original numbers array should not be returned as a result of the workflow execution, therefore the final stage consists of a state data filter defining the content of the output model. The output model should contain a result property and the value of result property should be the maximum number that is stored by the previous state in the number property. In the previous example, the workflow model is changed by the input property of the filter, which means that the output model is updated before the state is executed. As a final result, the output model consists of a result property, containing the maximum value of x. Event data filter example You can find an example of event data filtering in the serverless-workflow-callback-quarkus example application. Example event filter \"eventRef\": \"waitEvent\", \"eventDataFilter\": { \"data\": \".result\", \"toStateData\": \".move\" } The previous example of the event filter copies the content of CloudEvent data result field into the workflow model move field. Configuring the OpenAPI services endpoints If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"jq Expressions","component":"serverlessworkflow","version":"1.43.0.Final","name":"understanding-jq-expressions","url":"/serverlessworkflow/latest/core/understanding-jq-expressions.html","titles":[{"text":"Example of jq expressions in switch conditions","hash":"ref-example-jq-expression-switch-conditions","id":1},{"text":"Example of jq expressions in function arguments","hash":"ref-example-jq-expression-function-arguments","id":2},{"text":"Example of jq expressions in data filtering","hash":"ref-example-jq-expression-data-filtering","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"11":{"id":11,"text":"This document describes how you can handle the errors that might occur in SonataFlow. The Serverless Workflow specification provides an error handling mechanism, enabling you to handle the errors that might happen during the interactions between the workflow and external systems. When an error occurs, it changes the regular workflow sequence. In such cases, a workflow state transitions to an alternative state that can potentially handle the error, instead of transitioning to the predefined state. Note that error definition for a workflow is optional. If error handling is not defined, then the workflow execution is aborted when an error occurs. As a developer, you can consider the error handling in SonataFlow as a try-catch or a goto construct. An error definition in a workflow is composed of a name and code parameters. The name is a short and natural language description of an error, such as wrong parameter. The code parameter helps the implementation to identify the error. The code parameter is mandatory and the engine uses different strategies to map the provided value to an exception encountered at runtime. The available strategies include fully qualified class name, error message, and status code. Fully Qualified Class Name (FQCN) You can define the mapping as the fully qualified Java class name of an exception type. To determine if an exception is handled by an error definition, a workflow first checks whether or not the type of the Java exception is an instance of the exception that is specified in the error definition. Otherwise, the workflow recursively applies the same check to any embedded exception within the original Java one, till the exception chain is exhausted. Table 1. Runtime exception examples: Runtime exception Error code definition java.lang.RuntimeException java.lang.RuntimeException java.lang.IllegalStateException java.lang.RuntimeException Error message You can define the mapping as a partial match of the error message using regex patterns. A workflow verifies whether the message of the Java exception matches the value provided in the error code. The validation is performed using a regex matcher. The validation is successful if a partial match is found. Note that the validation is performed in a case-sensitive manner. If case-insensitive pattern matching is desired, use the embedded flag expression (?i) within the regular expression. Table 2. Error message examples: Error message of runtime exception Error code definition Unknown error, status code 400 Unknown error Unknown error, status code 400 (?i)Error or error Unknown error, status code 400 (.*)status code 4[0-9]{2} or status code 4[0-9]{2} Status code You can define the mapping as a status code returned by the invoked service. The external services return status codes in the event of a failure. For example, HTTP status codes are returned by REST or OpenAPI service invocations. In this case, the workflow verifies the defined error code against the HTTP code from the underlying response object. You can define the error code either as an HTTP code or as a colon-separated string, in which the error definition contains the error code in the last part. Table 3. Status code examples: HTTP status code Error code definition 400 400 400 HTTP:400 The workflow in the serverless-workflow-error-quarkus example application illustrate the usage of the error handling mechanism. Figure 1. Example of error handling The workflow accepts an integer number as the input model. When the workflow starts, it invokes the isEven Java service, which accepts that integer number as a parameter. This service throws an IllegalArgumentException exception if the integer number is odd. This means that if the integer number is even, the workflow transitions to the even state, however, if the integer number is odd, the workflow transitions to the odd state, resulting in a different model output. Example checkEven state { \"name\": \"checkEven\", \"type\": \"operation\", \"actions\": [ { \"name\": \"checkEvenAction\", \"functionRef\": { \"refName\": \"isEven\", \"arguments\": { \"number\": \"$.number\" } } } ], \"transition\": \"even\", \"onErrors\": [ { \"errorRef\": \"odd number\", \"transition\": \"odd\" } ] } The workflow defines a function that invokes the isEven method of org.kie.kogito.examples.EvenService class. This function uses a custom function type, enabling SonataFlow to invoke Java methods. Example isEven function definition { \"name\": \"isEven\", \"type\": \"custom\", \"operation\": \"service:java:org.kie.kogito.examples.EvenService::isEven\" } To handle the error, the workflow defines an odd number error which handles any runtime exception. As the IllegalArgumentException is a child of RuntimeException, if isEven method throws the exception, it will be handled. Example error definition \"errors\": [ { \"name\": \"odd number\", \"code\": \"java.lang.RuntimeException\" } ] The Inject state is used to populate the model with specific JSON payload. Therefore, the even and odd state defines the message property as even and odd respectively. { \"name\": \"even\", \"type\": \"inject\", \"data\": { \"numberType\": \"even\" }, \"transition\": \"finish\" }, { \"name\": \"odd\", \"type\": \"inject\", \"data\": { \"numberType\": \"odd\" }, \"transition\": \"finish\" } The finish state in the serverless-workflow-error-quarkus example application displays the model content to the console, so you can verify that the expected message has been set. { \"name\": \"finish\", \"type\": \"operation\", \"actions\": [ { \"name\": \"printAction\", \"functionRef\": { \"refName\": \"printMessage\", \"arguments\": { \"message\": \"$.numberType\" } } } ], \"end\": { \"terminate\": \"true\" } } Creating your first workflow service If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Error handling in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"understanding-workflow-error-handling","url":"/serverlessworkflow/latest/core/understanding-workflow-error-handling.html","titles":[{"text":"Error definition","hash":"con-error-definition","id":1},{"text":"Example of error handling","hash":"ref-example-error-handling","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"12":{"id":12,"text":"This document describes the Callback state and related examples. The Callback state performs an action and waits for an event, to be produced as a result of the action, to resume the workflow. The action peformed by a Callback state is an asynchronous external service invocation. Therefore, the Callback state is suitable to perform fire&wait-for-result operations. From a workflow perspective, asynchronous service indicates that the control is returned to the caller immediately without waiting for the action to be completed. Once the action is completed, a CloudEvent is published to resume the workflow. For the workflow to identify the published CloudEvent it is waiting for, the external service developer includes the workflow instance ID in the CloudEvent header or uses the Event correlation. The following figure displays the process: The workflow correlation described in this document focuses on the former mechanism that is based on the fact that each workflow instance contains a unique identifier, which is generated automatically. To understand the Callback state, see the serverless-workflow-callback-quarkus example application in GitHub repository. The initial model of the serverless-workflow-callback-quarkus example application is empty. Once the workflow is started, it publishes a CloudEvent of the resume type and waits for a CloudEvent, which contains the type wait. A listener consumes the CloudEvent with the resume type and simulates the behavior of an external service. Consequently, on the external service side, when the actions associated with the resume type CloudEvent are completed, the listener publishes a wait type CloudEvent. Once the wait type CloudEvent is received, the workflow moves to the next state and ends successfully. To use the Callback state in a workflow, first CloudEvent types such as resume and wait are declared that the workflow uses. Following is an example of CloudEvents declaration in a workflow definition: Example of CloudEvents declaration in a workflow definition \"events\": [ { \"name\": \"resumeEvent\", \"source\": \"\", \"type\": \"resume\" }, { \"name\": \"waitEvent\", \"source\": \"\", \"type\": \"wait\" } ] After that, a Callback state is declared. The Callback state publishes a resume type CloudEvent and waits for a CloudEvent with wait type. The published CloudEvent contains a move data field, and the CloudEvent that is received is expected to contain a result data field. According to the eventDataFilter, the result data field is added to the workflow model as a move field. Following is an example of declaring a Callback state that handles the wait type CloudEvent: Example of a Callback State declaration handling the wait CloudEvent { \"name\": \"waitForEvent\", \"type\": \"callback\", \"action\": { \"name\": \"publishAction\", \"eventRef\": { \"triggerEventRef\": \"resumeEvent\", \"data\": \"{move: \\\"This is the initial data in the model\\\"}\" } }, \"eventRef\": \"waitEvent\", \"eventDataFilter\": { \"data\": \".result\", \"toStateData\": \".move\" }, \"transition\": \"finish\" } An event listener consumes the resume type CloudEvent and publishes a new wait type CloudEvent. Following is an example of a Java method that publishes the wait type CloudEvent: Example of a Java method that publishes the wait CloudEvent private String generateCloudEvent(String id, String input) { Map eventBody = new HashMap<>(); eventBody.put(\"result\", input + \" and has been modified by the event publisher\"); eventBody.put(\"dummyEventVariable\", \"This will be discarded by the process\"); try { return objectMapper.writeValueAsString(CloudEventBuilder.v1() .withId(UUID.randomUUID().toString()) .withSource(URI.create(\"\")) .withType(\"wait\") .withTime(OffsetDateTime.now()) .withExtension(CloudEventExtensionConstants.PROCESS_REFERENCE_ID, id) .withData(objectMapper.writeValueAsBytes(eventBody)) .build()); } catch (JsonProcessingException e) { throw new IllegalArgumentException(e); } } After that, the workflow application consumes the event published by the listener and sets the result field. The consumed CloudEvent contains an attribute named kogitoprocrefid, which holds the workflow instance ID of the workflow. The kogitoprocrefid attribute is crucial because when the correlation is not used, then this attribute is the only way for the Callback state to identify that the related CloudEvent needs to be used to resume the workflow. For more information about correlation, see Event correlation in SonataFlow. Note that each workflow is identified by a unique instance ID, which is automatically included in any published CloudEvent, as kogitoprocinstanceid CloudEvent extension. The following example shows that the event listener takes the workflow instance ID of a workflow from a CloudEvent attribute named kogitoprocinstanceid, which is associated with the CloudEvent that is consumed. Example of a Java method that consumes the resume CloudEvent @Incoming(\"in-resume\") @Outgoing(\"out-wait\") @Acknowledgment(Strategy.POST_PROCESSING) public String onEvent(Message message) { Optional ce = CloudEventUtils.decode(message.getPayload()); JsonCloudEventData cloudEventData = (JsonCloudEventData) ce.get().getData(); return generateCloudEvent(ce.get().getExtension(CloudEventExtensionConstants.PROCESS_INSTANCE_ID).toString(), cloudEventData.getNode().get(\"move\").asText()); } Apache Kafka configuration in serverless-workflow-callback-quarkus The serverless-workflow-callback-quarkus example application requires an external broker to manage the associated CloudEvents. The default setup in the serverless-workflow-callback-quarkus example application uses Apache Kafka. However, you can also use Knative Eventing. Apache Kafka uses topics to publish or consume messages. In the serverless-workflow-callback-quarkus example application, two topics are used, matching the name of the CloudEvent types that are defined in the workflow, such as resume and wait. The resume and wait CloudEvent types are configured in the application.properties file. For more information about using Apache Kafka with events, see Consuming and producing events using Apache Kafka. Creating your first workflow service Event correlation in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Callbacks in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"working-with-callbacks","url":"/serverlessworkflow/latest/core/working-with-callbacks.html","titles":[{"text":"Example of Callback state","hash":"ref-example-callback","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"13":{"id":13,"text":"This document describes how you can run parallel tasks in SonataFlow. The testing procedure described in this document is based on the serverless-workflow-service-calls-quarkus example application in GitHub repository. SonataFlow serializes the execution of parallel tasks. Therefore, the word \"parallel\" does not indicate simultaneous execution, but it means that there is no logical dependency between the execution of branches. An inactive branch can start or resume the execution of a task without waiting for an active branch to be completed, in case the latter suspends the execution (for example, wait for an event reception). The serverless-workflow-service-calls-quarkus example application is a workflow that concatenates three strings and returns a result. The concatenation in the example application is done in parallel, which includes one branch per three strings. You can create a workflow, which performs a series of parallel tasks. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Procedure Create a workflow file named as parallel.sw.json under the src/main/resources/ directory. Add the following content to the parallel.sw.json file: Example content for parallel.sw.json file { \"id\": \"parallel\", \"version\": \"1.0\", \"specVersion\": \"0.8\", \"name\": \"Welcome to the Parallel dimension\", \"description\": \"Testing parallelism\", \"start\": \"Parallel\", \"functions\": [ { \"name\": \"concatA\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"A\\\"\" (1) }, { \"name\": \"concatB\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"B\\\"\" (2) }, { \"name\": \"concatC\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"C\\\"\" (3) } ], \"states\": [ { \"name\": \"Parallel\", \"type\": \"parallel\", (4) \"branches\": [ (5) { \"name\": \"branchA\", \"actions\": [ { \"functionRef\": \"concatA\" (6) } ] }, { \"name\": \"branchB\", \"actions\": [ { \"functionRef\": \"concatB\" (7) } ] }, { \"name\": \"branchC\", \"actions\": [ { \"functionRef\": \"concatC\" (8) } ] } ], \"completionType\": \"allOf\", (9) \"end\": { \"terminate\": true } } ] } 1 Function that concatenates the string A. 2 Function that concatenates the string B. 3 Function that concatenates the string C. 4 Defines the type of the state as parallel. 5 Defines the branches that run in parallel. 6 Defines the function that runs in branchA. 7 Defines the function that runs in branchB. 8 Defines the function that runs in branchC. 9 Defines the completion type of the parallel state as allOf. This means that the parallel state is completed when all the branches are completed. After you create a workflow that performs a series of parallel tasks, you can run the workflow. Prerequisites A parallel workflow is created. For more information, see Creating a parallel workflow. The workflow application is up and running. You can start the workflow application in development mode by using the following command: mvn quarkus:dev Procedure To run the created parallel workflow, send a request to the /parallel endpoint as shown in the following example request: Example request curl -X 'POST' \\ 'http://localhost:8080/parallel' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{}' Example response {\"id\":\"358f97ba-f0f9-4f25-86cc-4b35e85c2406\",\"workflowdata\":{\"result\":\"ABC\"}} The \"result\":\"ABC\" in the previous example response might be different in each request since the branches are running in parallel and the execution order of the branches is unpredictable. Note that the parallel workflow data shows the concatenated string as result. You can define the \"completionType\": \"atLeast\" to run only some branches in parallel workflow, instead of defining \"completionType\": \"allOf\". When you define \"completionType\": \"atLeast\", you also need to define the minimum number of branches that you want to run by defining the \"numCompleted\": property. Prerequisites A parallel workflow is created. For more information, see Creating a parallel workflow. Procedure Change the completionType property to \"atLeast\" and add the \"numCompleted\": 2 property to the parallel state. Example parallel workflow { \"id\": \"parallel\", \"version\": \"1.0\", \"specVersion\": \"0.8\", \"name\": \"Welcome to the Parallel dimension\", \"description\": \"Testing parallelism\", \"start\": \"Parallel\", \"functions\": [ { \"name\": \"concatA\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"A\\\"\" }, { \"name\": \"concatB\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"B\\\"\" }, { \"name\": \"concatC\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"C\\\"\" } ], \"states\": [ { \"name\": \"Parallel\", \"type\": \"parallel\", \"branches\": [ { \"name\": \"branchA\", \"actions\": [ { \"functionRef\": \"concatA\" } ] }, { \"name\": \"branchB\", \"actions\": [ { \"functionRef\": \"concatB\" } ] }, { \"name\": \"branchC\", \"actions\": [ { \"functionRef\": \"concatC\" } ] } ], \"completionType\": \"atLeast\", (1) \"numCompleted\": \"2\", (2) \"end\": { \"terminate\": true } } ] } 1 Defines the completion type of the parallel state as atLeast. 2 Defines the minimum number of branches that you want to run. This means that the parallel state is completed when at least two branches are completed. To run the created parallel workflow, send a request to the /parallel endpoint as shown in the following example: Example request curl -X 'POST' \\ 'http://localhost:8080/parallel' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{}' Example response {\"id\":\"3da62df1-c4e7-48c9-a3e4-7f63872c92f4\",\"workflowdata\":{\"result\":\"BC\"}} The \"result\":\"BC\" in the response might be different in each request. The parallel workflow data shows the concatenated string as result, but in this case, the workflow concatenates only two letters. Creating your first workflow service If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Parallelism in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"working-with-parallelism","url":"/serverlessworkflow/latest/core/working-with-parallelism.html","titles":[{"text":"Creating a parallel workflow","hash":"proc-parallel-creating-the-workflow","id":1},{"text":"Running a parallel workflow","hash":"proc-parallel-run-workflow","id":2},{"text":"Running some branches in parallel workflow","hash":"proc-parallel-run-branches","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"14":{"id":14,"text":"In SonataFlow platform there is a dedicated supporting service that stores the data related to the workflow instances and their associated jobs called Data Index service. This service also provides a GraphQL endpoint allowing users to query that data and perform operations, also known as mutations in GraphQL terms. The data processed by the Data Index service is usually received via events. The events consumed can be generated by any workflow or the Job service itself. This event communication can be configured in different ways as described in the Data Index communication configuration section. The Data Index service uses Apache Kafka or Knative eventing to consume CloudEvents messages from workflows. The event data is indexed and stored in the database for querying via GraphQL. These events contain information about units of work executed for a workflow. The Data Index service is at the core of all SonataFlow search, insight, and management capabilities. The SonataFlow Data Index Service has the following key attributes: Flexible data structure Distributable and cloud-ready format Message-based communication with workflows (Apache Kafka, Knative, CloudEvents) Powerful querying API using GraphQL Management capabilities using the Gateway API, to perform actions using GraphQL syntax on remote runtimes with a single entrypoint The SonataFlow Data Index Service is a Quarkus application, based on Vert.x with Reactive Messaging, that exposes a GraphQL endpoint that client applications use to access indexed data and perform management operations related to running workflow instances. The indexing functionality in the Data Index service is provided by choosing one of the following persistence providers: PostgreSQL Infinispan MongoDB The Data Index Service has been thought of as an application to store and query the existing workflow data. The data comes contained in events. The service allows multiple connection options as described in the Data Index service communication configuration section. Data Index is distributed in different ways to allow deployment in different topologies, and depending on how the data is indexed. The following sections describe the different options of Data Index deployments. It can be deployed explicitly referencing the image, starting a separated service inside a container. See Data Index standalone. This type of deployment requires to choose the right image depending on the persistence, specify the database connection properties, and the event consumption configuration. It also can be deployed, transparently as a Quarkus Development Service when the Quarkus Dev mode is used in the SonataFlow application. When you use the SonataFlow Process Quarkus extension, a temporary Data Index Service is automatically provisioned while the Quarkus application is running in development mode and the Dev Service is set up for immediate use. More details are provided in the Data Index as a Quarkus Development service section. The SonataFlow Process Quarkus extension sets up your Quarkus application to automatically replicate any SonataFlow messaging events related to workflow instances or jobs into the provisioned Data Index instance. For more information about Quarkus Dev Services, see Dev Services guide. It can be included as part of the same SonataFlow application using the Data Index extension, through the provided addons. This scenario is specific to add the Data Index data indexing features and the GraphQL endpoint exposure inside a workflow application. The communication with the workflow where the extension is added, is something internal to the application, allowing to simplify the communication between services and avoiding extra configuration for that purpose. In this case, the indexation has some limitations: it is only able to index data from the workflows deployed in the same application. More details are available in the Data Index Quarkus Extension section. In order to store the indexed data, Data Index needs some specific tables to be created. Data Index is ready to use Quarkus flyway for that purpose. It’s necessary to activate the migrate-at-start option to migrate the Data Index schema automatically. For more details about Flyway migrations, see PostgreSQL Database Migration section Data Index provides GraphQL endpoint that allows users to interact with the stored data. For more information about GraphQL see GraphQL This guide provides as examples, some GraphQL queries that allow to retrieve data about workflow instances and jobs. Retrieve data from workflow instances You can retrieve data about a specified instance from your workflow definition. Example query { ProcessInstances { id processId state parentProcessInstanceId rootProcessId rootProcessInstanceId variables nodes { id name type } } } Retrieve data from jobs You can retrieve data from a specified job instance. Example query { Jobs { id status priority processId processInstanceId executionCounter } } Filter query results using the where parameter You can use the where parameter with multiple combinations to filter query results based on workflow attributes. Example query { ProcessInstances(where: {state: {equal: ACTIVE}}) { id processId processName start state variables } } Example query { ProcessInstances(where: {id: {equal: \"d43a56b6-fb11-4066-b689-d70386b9a375\"}}) { id processId processName start state variables } } By default, all filtered attributes are executed as AND operations in queries. You can modify this behavior by combining filters with an AND or OR operator. Example query { ProcessInstances(where: {or: {state: {equal: ACTIVE}, rootProcessId: {isNull: false}}}) { id processId processName start end state } } Example query { ProcessInstances(where: {and: {processId: {equal: \"travels\"}, or: {state: {equal: ACTIVE}, rootProcessId: {isNull: false}}}}) { id processId processName start end state } } Depending on the attribute type, the following operators are also available: String array argument: contains : String containsAll: Array of strings containsAny: Array of strings isNull: Boolean (true or false) String argument: in: Array of strings like: String isNull: Boolean (true or false) equal: String ID argument: in: Array of strings equal: String isNull: Boolean (true or false) Boolean argument: isNull: Boolean (true or false) equal: Boolean (true or false) Numeric argument: in: Array of integers isNull: Boolean equal: Integer greaterThan: Integer greaterThanEqual: Integer lessThan: Integer lessThanEqual: Integer between: Numeric range from: Integer to: Integer Date argument: isNull: Boolean (true or false) equal: Date time greaterThan: Date time greaterThanEqual: Date time lessThan: Date time lessThanEqual: Date time between: Date range from: Date time to: Date time Sort query results using the orderBy parameter You can use the orderBy parameter to sort query results based on workflow attributes. You can also specify the direction of sorting in ascending ASC order or descending DESC order. Multiple attributes are applied to the database query in the order they are specified in the query filter. Example query { ProcessInstances(where: {state: {equal: ACTIVE}}, orderBy: {start: ASC}) { id processId processName start end state } } Limit and offset query results using the pagination parameter You can use the pagination parameter to specify a limit and offset for query results. Example query { ProcessInstances(where: {state: {equal: ACTIVE}}, orderBy: {start: ASC}, pagination: {limit: 10, offset: 0}) { id processId processName start end state } } Data Index incorporates a set of queries or mutations that allow firing operations on workflow endpoints using GraphQL notation. The Data Index Gateway API enables you to perform the following operations: Abort a workflow instance Retrieves a workflow instance with the ID passed as a parameter and launches the abort operation on related SonataFlow service. Example mutation for abort operation mutation { ProcessInstanceAbort (id:\"66e05e9c-eaab-47af-a83e-156498b7096d\") } Retry a workflow instance Retrieves a workflow instance with the id passed as a parameter and launches the retry operation on related SonataFlow service. Example mutation for retry operation mutation { ProcessInstanceRetry (id:\"66e05e9c-eaab-47af-a83e-156498b7096d\") } Skip a workflow instance Retrieves a workflow instance with the ID passed as a parameter and launches the skip operation on related SonataFlow service. Example mutation for skip operation mutation { ProcessInstanceSkip (id:\"66e05e9c-eaab-47af-a83e-156498b7096d\") } Retrieve workflow instance nodes Retrieves the nodes of a workflow instance that are coming from the process definition. When the nodeDefinitions field of a workflow instance is queried, a call to a specific SonataFlow service is generated to retrieve the requested list of available nodes. Example query to retrieve workflow instance nodes {ProcessInstances(where: { id: {equal: \"1017afb1-5749-440e-8b9b-6b876bb5894d\"}}){ diagram }} Update workflow instance variables Updates the variables of a workflow instance using the id passed as a parameter. Retrieves a workflow instance using the id passed as a parameter and launches the update operation on related SonataFlow service with the new values passed in variables parameter. Example mutation to update workflow instance variables mutation { ProcessInstanceUpdateVariables (id:\"23147fcc-da82-43a2-a577-7a36b26094bd\", variables:\"{\\\"it_approval\\\":true,\\\"candidate\\\":{\\\"name\\\":\\\"Joe\\\",\\\"email\\\":\\\"jdoe@ts.com\\\",\\\"salary\\\":30000,\\\"skills\\\":\\\"java\\\"},\\\"hr_approval\\\":true}\") } Trigger a node instance Triggers a node instance using the node definition nodeId. The nodeId is included in the nodeInstances of a workflow instance using the id passed as parameter. Example mutation to trigger a node instance mutation{ NodeInstanceTrigger( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\", nodeId:\"_B8C4F63C-81AD-4291-9C1B-84967277EEF6\") } Retrigger a node instance Retriggers a node instance using the id, which is similar to nodeInstanceId related to a workflow instance. The id of the workflow instance is passed as a parameter. Example mutation to retrigger a node instance mutation{ NodeInstanceRetrigger( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\", nodeInstanceId:\"01756ba2-ac16-4cf1-9d74-154ae8f2df21\") } Cancel a node instance Cancels a node instance with the id, which is similar to nodeInstanceId related to a workflow instance. The id of the workflow instance is passed as a parameter. Example mutation to cancel a node instance mutation{ NodeInstanceCancel( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\", nodeInstanceId:\"01756ba2-ac16-4cf1-9d74-154ae8f2df21\") } To enable described management operations on workflow instances, make sure your project is configured to have the kogito-addons-quarkus-process-management dependency on its pom.xml file to have this management operations enabled, like: org.kie.kogito kogito-addons-quarkus-process-management Retrieve the workflow instance source file content Retrieves the workflow instance source file. When the source field of a workflow instance is queried, a call to a specific SonataFlow service is generated to retrieve the requested workflow instance source file content. Example query to retrieve a workflow instance source file content {ProcessInstances(where: { id: {equal: \"1017afb1-5749-440e-8b9b-6b876bb5894d\"}}){ source }} The workflow instance source field only will be available when kogito-addons-quarkus-source-files dependency is added on SonataFlow runtime service pom.xml file. org.kie.kogito kogito-addons-quarkus-source-files Reschedule a job Reschedules a job using the id. The job id and other information are passed in the data parameter. Example mutation to reschedule a job mutation{ JobReschedule( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\", data:\"{\\\"expirationTime\\\": \\\"2033-06-27T04:35:54.631Z\\\",\\\"retries\\\": 2}\") } Cancel a job Cancels a job using the id passed as a parameter. Example mutation to cancel a job mutation{ JobCancel( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\") } Data Index GraphQL UI is provided to interact with GraphQL endpoint. When the Data Index is deployed as a standalone service, this UI will be available at /graphiql/ endpoint (i.e: at http://localhost:8180/graphiql/) To have the GraphQL UI available when the Data Index extension is deployed the property quarkus.kogito.data-index.graphql.ui.always-include needs to be enabled. It will be accessible at: /graphql-ui/ (i.e: http://localhost:8080/q/graphql-ui/) The quarkus.http.root-path' and `quarkus.http.non-application-root-path belong to the workflow application where the Data Index extension has been added. Here there are more details about those properties and their default values. In order to index the data, Data Index allows multiple connection options to be able to consume the information provided by the different workflows. The final goal is to receive the application-generated data related to the workflow instances and jobs. The information that comes inside events, is indexed and stored in the database allowing it to be consumed through the provided GraphQL endpoint. In order to interact with the Data Index separated service, use the Knative eventing system eventing: Add the Data Index service and deployment, defining the Database connection properties and setting the KOGITO_DATA_INDEX_QUARKUS_PROFILE to http-events-support. Specify the Knative Triggers to filter the Data Index events. Example DataIndex resource with triggers definition (requires Knative): apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: data-index-service-postgresql-processes-trigger spec: broker: default filter: attributes: type: ProcessInstanceEvent subscriber: ref: apiVersion: v1 kind: Service name: data-index-service-postgresql uri: /processes --- apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: data-index-service-postgresql-jobs-trigger spec: broker: default filter: attributes: type: JobEvent subscriber: ref: apiVersion: v1 kind: Service name: data-index-service-postgresql uri: /jobs Configure the workflow to use the K_SINK as outgoing connection url Example of configuration in SonataFlow application application.properties file to communicate with Knative mp.messaging.outgoing.kogito-processinstances-events.connector=quarkus-http mp.messaging.outgoing.kogito-processinstances-events.url=${K_SINK} mp.messaging.outgoing.kogito-processinstances-events.method=POST Job service needs also to be configured to send the events to the Knative K_SINK to have them available for Data Index related triggers. To configure the communication between the Data Index Service and the workflow through Kafka, you must provide a set of configurations. Add the Data Index service and deployment, defining the Database connection properties and setting the KOGITO_DATA_INDEX_QUARKUS_PROFILE to kafka-events-support (this value is set by default). Configure the SonataFlow application to use the smallrye-kafka connector and the expected topic. Example of configuration in SonataFlow application application.properties file to communicate with Kafka mp.messaging.outgoing.kogito-processinstances-events.connector=smallrye-kafka mp.messaging.outgoing.kogito-processinstances-events.topic=kogito-processinstances-events mp.messaging.outgoing.kogito-processinstances-events.value.serializer=org.apache.kafka.common.serialization.StringSerializer Job service is configured to send the JobEvents to the kafka topic kogito-jobs-events to have them available for Data Index consumption. When Data Index functionality is added as a Quarkus extension to the workflow, there is no event configuration. In this case, the data indexation is done internally, and all interactions are through the Data Index Gateway API. Consuming and producing events using Apache Kafka in Quarkus Consuming and producing events on Knative Eventing in Quarkus Timeouts Showcase in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Data Index Core Concepts","component":"serverlessworkflow","version":"1.43.0.Final","name":"data-index-core-concepts","url":"/serverlessworkflow/latest/data-index/data-index-core-concepts.html","titles":[{"text":"Data Index service in SonataFlow","hash":"_data_index_service_in_sonataflow","id":1},{"text":"Data Index scenarios","hash":"data-index-deployments","id":2},{"text":"Data Index as a standalone service","hash":"_data_index_as_a_standalone_service","id":3},{"text":"Data Index service as Quarkus Development service","hash":"data-index-dev-service","id":4},{"text":"Data Index service as Quarkus extension","hash":"_data_index_service_as_quarkus_extension","id":5},{"text":"Data Index storage","hash":"data-index-storage","id":6},{"text":"Data Index GraphQL endpoint","hash":"data-index-graphql","id":7},{"text":"GraphQL queries for workflow instances and jobs","hash":"data-index-ext-queries","id":8},{"text":"Data Index service Gateway API","hash":"data-index-gateway-api","id":9},{"text":"Data Index GraphQL UI","hash":"data-index-graphql-ui","id":10},{"text":"Data Index service communication configuration","hash":"data-index-service-communication","id":11},{"text":"Knative Eventing","hash":"_knative_eventing","id":12},{"text":"Kafka eventing","hash":"_kafka_eventing","id":13},{"text":"Data Index Quarkus extension and Jobs embedded addon","hash":"_data_index_quarkus_extension_and_jobs_embedded_addon","id":14},{"text":"Additional resources","hash":"_additional_resources","id":15},{"text":"Found an issue?","hash":"_found_an_issue","id":16}]},"15":{"id":15,"text":"This document describes how you add the Data Index features to your workflow. You simply need to add the Data Index extension to the workflow and the related data will be collected and stored in the database, enabling the GraphQL endpoint to execute queries and perform management operations over the process instances. The example described in this document is based on the serverless-workflow-timeouts_showcase_embedded example application. The Data Index service has been designed to store and manage data from different workflow instances. Communication with the service is through events that contain the workflows related data and the service is responsible for storing them and exposing a GraphQL endpoint to allow queries and maintenance operations on the different workflow instances. In specific use cases, to avoid deploying the service separately, it could be useful to have the indexing functionality and the query capabilities embedded in the same application. For this purpose, the Quarkus Data Index extension can be added to any workflow application and incorporates the Data Index functionality into the same application without needing an external Data Index service. These extensions are distributed as addons ready to work with different types of persistence: kogito-addons-quarkus-data-index-inmemory (inmemory PostgreSQL) kogito-addons-quarkus-data-index-postgresql kogito-addons-quarkus-data-index-infinispan kogito-addons-quarkus-data-index-mongodb The Data Index extensions are provided as addons for each kind of supported persistence relying on the Quarkus extensions mechanism. Once one of these kogito-addons-quarkus-data-index addons is added to a workflow, it incorporates the functionality to index and store the workflow data and also incorporates the GraphQL endpoint to perform queries and management operations. In the same way as the Data Index service, there is a specific addon for each type of persistence you want to work with. Currently, you can find Data Index addons for: PostgreSQL, Infinispan, and MongoDB The Data Index addon distribution added to the workflow must match the workflow’s persistence type regarding the indexed data, which can be stored in the same database. The addon will share the data source used by the workflow where it is added, and it will create separate tables for that purpose. When any of the Data Index addons is added: The communication with the workflow is direct, the workflow data is not transmitted or consumed through events, they are stored directly in the configured database. There is no need to configure the events connection for this purpose. A new GraphQL endpoint is added to perform queries and management operations You can add the Data Index quarkus extension as an addon: Prerequisites Your workflow is running and has persistence enabled. For more information about creating a workflow, see Creating your first workflow. You also can find more details about enabling persistence in Running a workflow using PostgreSQL Procedure Add the required Data Index addon dependencies to the pom.xml file of your workflow: Add Data Index Addon dependencies to pom.xml file org.kie.kogito kogito-addons-quarkus-data-index-postgresql Configure the Data Index Addon properties. Prepare the workflow to run in dev mode, avoid starting the Data Index Quarkus Dev service, and specify if the GraphQL UI needs to be available. Example adding Data Index addon properties in application.properties file quarkus.kogito.devservices.enabled=false (1) quarkus.kogito.data-index.graphql.ui.always-include=true (2) 1 By default, when a workflow is running in dev mode, automatically a Data Index Dev Service is started and a temporary dev service Database is created. When adding the addon to the workflow, you need to disable it by setting quarkus.kogito.devservices.enabled to false in the application.properties file. 2 The addon allows to expose a simple UI to interact with the GraphQL endpoint, it only will be available when this property is set to true, and it will be placed in '/graphql-ui/` For more information, see application.properties file of serverless-timeouts_showcase_embedded example application. Creating a Quarkus Workflow Project Running a Quarkus Workflow Application using PostgreSQL Data Index Core Concepts If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Data Index Quarkus extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"data-index-quarkus-extension","url":"/serverlessworkflow/latest/data-index/data-index-quarkus-extension.html","titles":[{"text":"Overview","hash":"data-index-ext-overview","id":1},{"text":"Adding Data Index extension to a workflow application","hash":"data-index-ext-use","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"16":{"id":16,"text":"Data Index service can be deployed referencing directly a distributed Data Index image. There are different images provided that take into account what persistence layer is required in each case. In each distribution, there are some properties to configure things like the connection with the database or the communication with other services. The goal is to configure the container to allow to process ProcessInstances and Jobs events that incorporate their related data, to index and store that in the database and finally, to provide the Data Index GraphQL endpoint to consume it. Data Index service can be deployed referencing directly a distributed Data Index image. Here there are the different Data Index image distributions that can be found in Quay.io/kiegroup: There are several ways to deploy the Data Index service. But there are some common points in all the deployments: Reference the right Data Index image to match with the type of Database that will store the indexed data. Provide the database connection properties, to allow data index store the indexed data. Data Index service does not initialize its database schema automatically. To initialize the database schema, you need to enable Flyway migration by setting QUARKUS_FLYWAY_MIGRATE_AT_START=true. Define the KOGITO_DATA_INDEX_QUARKUS_PROFILE to set the way that the events will be connected (by default: kafka-event-support). Here you can see in example, how the Data Index resource definition can be deployed as part of a docker-compose definition Example of DataIndex resource in a docker-compose deployment using Kafka eventing: data-index: container_name: data-index image: quay.io/kiegroup/kogito-data-index-postgresql:latest (1) ports: - \"8180:8080\" depends_on: postgres: condition: service_healthy volumes: - ./../target/classes/META-INF/resources/persistence/protobuf:/home/kogito/data/protobufs/ environment: QUARKUS_DATASOURCE_JDBC_URL: \"jdbc:postgresql://postgres:5432/kogito\" (2) QUARKUS_DATASOURCE_USERNAME: kogito-user QUARKUS_DATASOURCE_PASSWORD: kogito-pass QUARKUS_HTTP_CORS_ORIGINS: \"/.*/\" KOGITO_DATA_INDEX_QUARKUS_PROFILE: kafka-events-support (3) QUARKUS_FLYWAY_MIGRATE_AT_START: \"true\" (4) QUARKUS_HIBERNATE_ORM_DATABASE_GENERATION: update 1 Reference the right Data Index image to match with the type of Database, in this case quay.io/kiegroup/kogito-data-index-postgresql:latest 2 Provide the database connection properties. 3 When KOGITO_DATA_INDEX_QUARKUS_PROFILE is not present, the Data Index is configured to use Kafka eventing. 4 To initialize the database schema at start using flyway. When Kafka eventing is used, workflow applications need to be configured to send the events to the Kafka topic kogito-processinstances-events allowing Data Index service to consume the generated events. In this case Data Index is ready to consume the events sent to the topics: kogito-processinstances-events and kogito-jobs-events. It is important to configure the workflows application to send the events to the topic kogito-processinstances-events using the connector smallrye-kafka. More information about how to configure workflows Kafka eventing is available in Consuming and producing events using Apache Kafka in Quarkus guide. To explore the specific configuration to add to the workflow to connect with Data Index using Kafka eventing see Data Index Kafka eventing Example of configuration in SonataFlow application passed in application.properties to configure connection with Data Index using Kafka connector: mp.messaging.outgoing.kogito-processinstances-events.connector=smallrye-kafka mp.messaging.outgoing.kogito-processinstances-events.topic=kogito-processinstances-events mp.messaging.outgoing.kogito-processinstances-events.value.serializer=org.apache.kafka.common.serialization.StringSerializer Usually, when using docker-compose the workflow application generates the container image that is added to docker-compose. If the Kafka eventing configuration values weren’t there before the container image creation, they need to be passed as environment variables. More details about customizing Quarkus generated images can be found in Quarkus Container Images Customizing guide. This deployment definition resource shows how the Data Index service configured and deployed can connect with an existing PostgreSQL database and to consume Knative events. Example DataIndex resource with PostgreSQL persistence and Knative eventing in a kubernetes environment : apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT name: data-index-service-postgresql spec: ports: - name: http port: 80 targetPort: 8080 selector: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT name: data-index-service-postgresql spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT template: metadata: labels: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT spec: containers: - name: data-index-service-postgresql image: quay.io/kiegroup/kogito-data-index-postgresql:latest (1) imagePullPolicy: Always ports: - containerPort: 8080 name: http protocol: TCP env: - name: KUBERNETES_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: QUARKUS_DATASOURCE_USERNAME (2) value: postgres - name: QUARKUS_DATASOURCE_PASSWORD value: pass - name: QUARKUS_DATASOURCE_JDBC_URL value: jdbc:postgresql://newsletter-postgres:5432/postgres?currentSchema=data-index-service - name: QUARKUS_DATASOURCE_DB_KIND value: postgresql - name: QUARKUS_HIBERNATE_ORM_DATABASE_GENERATION value: update - name: QUARKUS_KAFKA_HEALTH_ENABLE value: \"false\" - name: QUARKUS_HTTP_CORS value: \"true\" - name: QUARKUS_HTTP_CORS_ORIGINS value: /.*/ - name: QUARKUS_FLYWAY_MIGRATE_AT_START (4) value: \"true\" - name: KOGITO_DATA_INDEX_QUARKUS_PROFILE (3) value: \"http-events-support\" - name: QUARKUS_HTTP_PORT value: \"8080\" --- apiVersion: eventing.knative.dev/v1 kind: Trigger (5) metadata: name: data-index-service-postgresql-processes-trigger spec: broker: default filter: attributes: type: ProcessInstanceEvent (6) subscriber: ref: apiVersion: v1 kind: Service name: data-index-service-postgresql uri: /processes (7) --- apiVersion: eventing.knative.dev/v1 kind: Trigger (5) metadata: name: data-index-service-postgresql-jobs-trigger spec: broker: default filter: attributes: type: JobEvent (6) subscriber: ref: apiVersion: v1 kind: Service name: data-index-service-postgresql uri: /jobs (7) 1 Reference the right Data Index image to match with the type of Database, in this case quay.io/kiegroup/kogito-data-index-postgresql:latest 2 Provide the database connection properties 3 KOGITO_DATA_INDEX_QUARKUS_PROFILE: http-events-support to use the http-connector with Knative eventing. 4 To initialize the database schema at start using flyway 5 Trigger definition to filter the events that arrive to the Sink and pass them to Data Index 6 Type of event to filter 7 The URI where the Data Index service is expecting to consume those types of events. This deployment is using KOGITO_DATA_INDEX_QUARKUS_PROFILE: http-events-support. Workflow applications need to configure the connector to use quarkus-http and send the events to the Knative K_SINK. You can find more information about Knative eventing and K_SINK environment variable in Consuming and producing events on Knative Eventing in Quarkus To explore the specific configuration to add to the workflow to connect with Data Index using Knative eventing see Data Index Knative eventing Example of configuration in SonataFlow application application.properties file to send events to Data Index using Knative eventing mp.messaging.outgoing.kogito-processinstances-events.connector=quarkus-http mp.messaging.outgoing.kogito-processinstances-events.url=${K_SINK} mp.messaging.outgoing.kogito-processinstances-events.method=POST If that configuration values weren’t there before the container image creation, they need to be passed as environment variables. More details about customizing Quarkus generated images can be found in Quarkus Container Images Customizing guide. A full example where the Data Index service standalone is deployed using Knative eventing can be found as part of Quarkus Workflow Project with standalone services guide. When you use the SonataFlow Process Quarkus extension, a temporary Data Index service is automatically provisioned while the Quarkus application is running in development mode. When you use one of the following Quarkus extensions, the Dev Service is set up for immediate use: SonataFlow main Quarkus extension org.kie.kogito kogito-quarkus SonataFlow Quarkus extension org.kie.kogito kogito-quarkus-serverless-workflow When you start your Quarkus project in development mode, an in-memory instance of the Data Index service is automatically started in the background. This feature is enabled by Quarkus Dev Services, and leverages Testcontainers to start an image of the Data Index service. The SonataFlow Process Quarkus extension sets up your Quarkus application to automatically replicate any SonataFlow messaging events related to process instances or jobs into the provisioned Data Index instance. Once the service is up and running, you can query the GraphQL interface directly using http://localhost:8180/graphql or using the Quarkus Dev UI console http://localhost:8080/q/dev. The Data Index GraphQL endpoint can query for ProcessInstances and Jobs. For more information about operations and attributes to query, see GraphQL endpoint provided by Data Index section. You can share the same Data Index instance across multiple SonataFlow services during development. Sharing Data Index instances is enabled by default, therefore, only one Data Index instance is started. This behavior can be adjusted to start multiple instances using the quarkus.kogito.devservices.shared property. The Quarkus Dev Service also allows further configuration options including: To disable Data Index Dev Service, use the quarkus.kogito.devservices.enabled=false property. To change the port where the Data Index Dev Service runs, use the quarkus.kogito.devservices.port=8180 property. To adjust the provisioned image, use quarkus.kogito.devservices.imageName=quay.io/kiegroup/kogito-data-index-ephemeral property. To disable sharing the Data Index instance across multiple Quarkus applications, use quarkus.kogito.devservices.shared=false property. For more information about Quarkus Dev Services, see Dev Services guide. The following table serves as a quick reference for commonly Data Index configuration properties supported. Table 1. Common configuration properties Property Description Type Default value Override at runtime QUARKUS_DATASOURCE_JDBC_URL The datasource URL string Yes QUARKUS_DATASOURCE_USERNAME The datasource username string Yes QUARKUS_DATASOURCE_PASSWORD The datasource password string Yes QUARKUS_DATASOURCE_DB_KIND The kind of database to connect: postgresql,.. string Yes QUARKUS_FLYWAY_MIGRATE_AT_START true to execute Flyway automatically when the application starts, false otherwise. boolean false Yes KOGITO_DATA_INDEX_QUARKUS_PROFILE (Only when referencing an image distribution) Allows to change the event connection type. The possible values are: kafka-events-support http-events-support string kafka-events-support Yes kogito.persistence.query.timeout.millis Defines timeout for a query execution. long 10000 Yes quarkus.kogito.devservices.enabled Enables or disables the Dev Services for workflows. By default, the Dev Services are enabled, unless an existing configuration is present. boolean true No quarkus.kogito.devservices.port Defines the optional fixed port that the Dev Services listen to. int 8180 No quarkus.kogito.devservices.image-name Defines the Data Index image to use in Dev Service. string quay.io/kiegroup/kogito-data-index-ephemeral:1.43.0.Final No quarkus.kogito.devservices.shared Indicates if the Data Index instance, which is managed by Quarkus Dev Services, is shared. boolean true No quarkus.kogito.devservices.service-name Defines the value of the label that is attached to the started container. This property is used when shared is set to true. string kogito-data-index No Data Index Core Concepts Deploying your SonataFlow application on Minikube Consuming and producing events using Apache Kafka in Quarkus Consuming and producing events on Knative Eventing in Quarkus Timeout example in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Data Index standalone service","component":"serverlessworkflow","version":"1.43.0.Final","name":"data-index-service","url":"/serverlessworkflow/latest/data-index/data-index-service.html","titles":[{"text":"Data Index service deployment.","hash":"data-index-service","id":1},{"text":"Data Index distributions","hash":"data-index-service-distributions","id":2},{"text":"Data Index standalone service deployment","hash":"_data_index_standalone_service_deployment","id":3},{"text":"Data Index deployment resource example using Kafka eventing:","hash":"_data_index_deployment_resource_example_using_kafka_eventing","id":4},{"text":"Data Index deployment resource example using Knative eventing:","hash":"_data_index_deployment_resource_example_using_knative_eventing","id":5},{"text":"Data Index as a Quarkus Development service","hash":"data-index-dev-service-details","id":6},{"text":"Data Index service configuration properties","hash":"data-index-service-configuration-properties","id":7},{"text":"Additional resources","hash":"_additional_resources","id":8},{"text":"Found an issue?","hash":"_found_an_issue","id":9}]},"17":{"id":17,"text":"This document describes how you can configure a workflow to interact with Knative Eventing. Knative Eventing abstracts the events consumption through event source and sink components. An event source is a Kubernetes object that produces the event, and a sink is another Kubernetes object that receives the event. The workflow application can act as a source, a sink, or both in Knative Eventing platform. You need to add the Kogito Knative Eventing add-on dependency to indicate that you are using Knative Eventing. To enable a workflow to use Knative Eventing, add the following dependency to the pom.xml file of your project: Apache Maven Quarkus CLI Manually mvn quarkus:add-extension -Dextensions=\"kogito-addons-quarkus-knative-eventing\" quarkus extension add kogito-addons-quarkus-knative-eventing org.kie.kogito kogito-addons-quarkus-knative-eventing If you have used the Knative workflow CLI to create your project, then the Kogito Knative Eventing extension is already present. For more information about creating a project using Knative workflow CLI, see SonataFlow plug-in for Knative CLI. The Kogito Knative Eventing add-on takes care of the required dependencies and additional configuration that the workflow application needs, to interact with the Knative Eventing platform. Although the default configuration that the Quarkus Knative Eventing add-on provides ought to be enough for most of the use cases, sometimes you might need to do additional configuration to serve a specific scenario. The configuration described in this section is useful if your workflow consists of at least one produced type event definition. In this scenario, the workflow application produces events that act as a Knative source. HTTP transport configuration Knative injects the K_SINK environment variable in the workflow application when you deploy the application in the cluster. SonataFlow uses the K_SINK environment variable to address the produced events to the correct Knative sink. For more information, see SinkBinding in Knative Eventing documentation. The following table lists the HTTP transport configuration properties: Table 1. HTTP transport configuration properties Property Default value Description mp.messaging.outgoing.kogito_outgoing_stream.url ${K_SINK:http://localhost:9090} This property indicates where to POST the HTTP CloudEvent message. mp.messaging.outgoing.kogito_outgoing_stream.connector quarkus-http This property indicates the Quarkus Smallrye channel implementation. You might not need to change this property. If the K_SINK variable is not present, then the default value is http://localhost:9000. You can override the default value in development environments. Health check configuration By default, the workflow application generates a health check probe to verify if the Knative platform injected a valid K_SINK variable. If the K_SINK variable is not present, then the pod is not in the state of receiving requests. The following table lists the health check probe configuration property: Table 2. Health check probe configuration property Property Default value Description org.kie.kogito.addons.knative.eventing.health_enabled true This property indicates if the health check is enabled to verify that the K_SINK variable is injected into the environment. Knative target sink generation configuration The Kogito Knative Eventing add-on generates a few Knative objects during build time. By default, the add-on generates a Knative Broker named default if the workflow application is acting as an event source. The following table lists the configuration properties related to Knative sink generation: Table 3. Knative sink generation configuration properties Property Default value Description org.kie.kogito.addons.knative.eventing.auto_generate_broker true This property indicates if the Kogito Knative Eventing add-on generates a default Knative Broker in memory to sink and dispatch the messages. Set this property to false in case a broker is already installed in your namespace. Note that you can use org.kie.kogito.addons.knative.eventing.sink.* property to configure your custom sink. If this property is not set, then the auto-generated broker works as a sink. org.kie.kogito.addons.knative.eventing.sink.namespace This property indicates the namespace where the generated Knative sink is deployed. org.kie.kogito.addons.knative.eventing.sink.api_version eventing.knative.dev/v1 This property indicates the API group and version of the generated Knative sink. org.kie.kogito.addons.knative.eventing.sink.name default This property indicates the name of the generated Knative sink. org.kie.kogito.addons.knative.eventing.sink.kind Broker This property indicates the Kubernetes kind of the generated Knative sink. The configuration described in this section is useful if your workflow consists of at least one consumed type event definition. In this scenario, the workflow application consumes events, acting as a Knative sink. When the workflow application needs to consume events, the Knative Eventing add-on generates Knative triggers. The Knative triggers are configured to listen to a broker with the required event type, which is defined in your workflow definition. The following table lists the configuration property related to Knative sink generation: Table 4. Knative sink generation configuration property Property Default value Description org.kie.kogito.addons.knative.eventing.broker default This property indicates the name of the default Knative broker that is deployed in the Kubernetes namespace. This broker is used as the reference to create the Knative triggers, which are responsible to delegate the events that the workflow service consumes. mp.messaging.incoming.kogito_incoming_stream.path / (root path) This property indicates the HTTP path where the workflow application will listen for the CloudEvents in the default incoming channel. mp.messaging.incoming..path / (root path) This property indicates the HTTP path where the workflow application will listen for the CloudEvents in the specific given channel name. The channel name is the event type as defined in the Serverless Workflow events definition. You can send HTTP CloudEvents to the workflow application endpoint by using any tool that’s capable to produce HTTP requests. The only requirement is that the request conforms to the CloudEvents specification. For example, with the help of curl, you can send an event to the workflow using the following command: Sending a CloudEvent over HTTP using the structured format. curl -X POST \\ -H 'Content-Type: application/cloudevents+json' \\ -d '{\"datacontenttype\": \"application/json\", \"specversion\":\"1.0\",\"id\":\"41495513-a9ef-4a81-8479-21bb14db61f0\",\"source\":\"/local/curl\",\"type\":\"kogito.serverless.loanbroker.aggregated.quotes.response\",\"data\": { \"amount\": 300000, \"term\": 30, \"credit\": { \"score\": 700, \"history\": 15 }, \"quotes\": [{ \"bankId\": \"Bank1\", \"rate\": 12.2 }, {\"bankId\": \"Bank2\", \"rate\": 10}] } } ' \\ http://localhost:8080 In this example we are using the CloudEvents structured format, which includes every event information within the request payload. Note the header Content-Type being application/cloudevents+json. Alternatively, you can use the CloudEvents binary format, which includes the event metadata in the HTTP header. For example, using the same event as before: Sending a CloudEvent over HTTP using the binary format. curl -X POST -i \\ -H 'Content-Type: application/json' \\ -H 'ce-specversion: 1.0' \\ -H 'ce-id: 41495513-a9ef-4a81-8479-21bb14db61f0' \\ -H 'ce-source: /local/curl' \\ -H 'ce-type: kogito.serverless.loanbroker.aggregated.quotes.response' \\ -d '{ \"amount\": 300000, \"term\": 30, \"credit\": { \"score\": 700, \"history\": 15 }, \"quotes\": [{ \"bankId\": \"Bank1\", \"rate\": 12.2 }, {\"bankId\": \"Bank2\", \"rate\": 10}] }' \\ http://localhost:8080/ You can use this tool to test your SonataFlow application locally and verify if the events are being consumed correctly by the workflow. For more information about testing incoming and outgoing CloudEvents over HTTP, see Mocking HTTP CloudEvents sink using WireMock. SonataFlow can generate Knative objects during the workflow application build time to facilitate the deployment in a Kubernetes cluster. However, you do not need to use the generated objects if you plan to create and deploy the Knative objects by yourself. Prerequisites A workflow application with the Knative Eventing add-on is created. Procedure Add the following Quarkus Kubernetes extension dependency to the pom.xml file of your project: Apache Maven Quarkus CLI Manually mvn quarkus:add-extension -Dextensions=\"quarkus-kubernetes,quarkus-container-image-jib\" quarkus extension add quarkus-kubernetes quarkus-container-image-jib io.quarkus quarkus-kubernetes io.quarkus quarkus-container-image-jib Add the quarkus.kubernetes.deployment-target=knative property to your application.properties file. Build your workflow application using the following command: Apache Maven Quarkus CLI Knative CLI mvn clean install quarkus build kn workflow build --image= The target/kubernetes directory contains two files including knative.yml and kogito.yml. The knative.yml file contains the Knative service representing the workflow application. The kogito.yml file contains the required objects to connect the workflow application to the Knative Eventing platform. You can use the generated files to deploy the workflow application in the Kubernetes cluster using the following command: Kubernetes command line tool Knative CLI kubectl apply -f target/kogito.yml kubectl apply -f target/knative.yml kn workflow deploy For more information about building and deploying the workflow application, see Building workflow images using Quarkus CLI. A workflow must contain at least one event definition for the Knative Eventing add-on to generate the event binding objects. The following is an example of a workflow containing produced and consumed events: Example of a workflow with produced and consumed events { \"events\": [ { \"name\": \"requestQuote\", \"type\": \"kogito.sw.request.quote\", \"kind\": \"produced\" }, { \"name\": \"aggregatedQuotesResponse\", \"type\": \"kogito.loanbroker.aggregated.quotes.response\", \"kind\": \"consumed\", \"source\": \"/kogito/serverless/loanbroker/aggregator\" }] } A workflow application with events definition needs a Knative SinkBinding to configure the target sink. The target sink is where the produced events (kogito.sw.request.quote event in the previous example) are dispatched. In this case, the Knative Eventing add-on generates an object as shown in the following example: Example of a Knative SinkBinding generated by the add-on apiVersion: sources.knative.dev/v1 kind: SinkBinding metadata: name: sb-loanbroker-flow spec: sink: ref: apiVersion: eventing.knative.dev/v1 kind: Broker name: default namespace: \"\" subject: apiVersion: serving.knative.dev/v1 kind: Service name: loanbroker-flow Regardless of the number of produced events in the workflow definition, only one SinkBinding is generated. When you define multiple events, ensure that your sink is a Knative Broker. The listener services can configure the subscriptions or triggers to consume the events from the broker. For the kogito.loanbroker.aggregated.quotes.response event in a previous example, the Knative Eventing platform must be configured with a Knative trigger using an appropriate CloudEvent filter. The following example shows the Trigger generated by the Knative Eventing add-on: Example of a Knative Trigger generated by the add-on apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: kogito-serverless-loanbroker-aggregated-quotes-response-trigger spec: broker: default filter: attributes: type: kogito.loanbroker.aggregated.quotes.response subscriber: ref: apiVersion: serving.knative.dev/v1 kind: Service name: loanbroker-flow For each consumed event definition, the Knative Eventing add-on generates one Knative Trigger. Mocking HTTP CloudEvents sink using WireMock Consuming and producing events using Apache Kafka Event correlation in SonataFlow Callback state in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Consuming and producing events on Knative Eventing in Quarkus","component":"serverlessworkflow","version":"1.43.0.Final","name":"consume-produce-events-with-knative-eventing","url":"/serverlessworkflow/latest/eventing/consume-produce-events-with-knative-eventing.html","titles":[{"text":"Knative Eventing add-on source configuration","hash":"ref-knative-eventing-add-on-source-configuration","id":1},{"text":"Knative Eventing add-on sink configuration","hash":"ref-knative-eventing-add-on-sink-configuration","id":2},{"text":"Manually sending events to an HTTP endpoint","hash":"proc-manually-sending-events-to-an-http-endpoint","id":3},{"text":"Generating Knative objects during build time","hash":"proc-generating-kn-objects-build-time","id":4},{"text":"Example of workflow event definition in Knative","hash":"ref-example-sw-event-definition-knative","id":5},{"text":"Additional resources","hash":"_additional_resources","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"18":{"id":18,"text":"This document describes how you can configure a workflow to interact with Apache Kafka. Apache Kafka uses an abstraction called topic to classify events. Events are published to a topic, and events are consumed from a topic. SonataFlow uses Smallrye connectors to encapsulate access to several brokers, enabling SonataFlow to support different brokers by changing the configuration and classpath dependencies. However, Smallrye connectors also introduce an entity called channel. The Smallrye channels are unidirectional and need to be declared as input (incoming) or output (outgoing). When using Apache Kafka, the Smallrye channels must be mapped to Apache Kafka topics through configuration. You need to add the Kafka Quarkus Smallrye connector dependency to indicate that you are using Apache Kafka. To enable a workflow to use Apache Kafka Smallrye connector, add the following dependency to the pom.xml file of your project if using Apache Maven: Add dependency for Apache Kafka Smallrye connector in pom.xml io.quarkus quarkus-smallrye-reactive-messaging-kafka The messaging capabilities are included in the Quarkus Serverless Workflow extension, even though the messaging capabilities are optional. This means you do not need to explicitly add the messaging add-on dependency when using SonataFlow. You can configure Smallrye channels for a workflow using event definitions. The Smallrye channels are defined using Quarkus configuration. The format for Smallrye channel properties is mp.messaging.[incoming|outgoing]... SonataFlow allows the following channel mapping strategies: Define one default incoming channel to receive all the incoming messages and one default outgoing channel to store all the published messages. Define a channel for each CloudEvent type so that every message type has a dedicated channel. Define a channel for certain CloudEvent types. The non-mapped CloudEvent types uses the default incoming or outgoing channel. SonataFlow first searches for a channel name in the properties that is same as CloudEvent type. If the channel name is found, SonataFlow uses the channel for that CloudEvent type. However, if the channel name is not found, SonataFlow searches for the default channel definition. In case the default channel definition is not existing, then an error is reported. The default incoming channel is kogito_incoming_stream and the default outgoing channel is kogito_outgoing_stream. To change the default incoming and outgoing topic names, you can use the following properties: Properties to change default incoming and outgoing topic names kogito.addon.messaging.incoming.defaultName= kogito.addon.messaging.outgoing.defaultName= The following properties are mandatory for each channel: connector: This property needs to be set to smallrye-kafka. Depending on whether the channel is incoming or outgoing: value.deserializer: This property is used for incoming channels. Unless you have specific marshaling requirements, you must set this property to org.apache.kafka.common.serialization.ByteArrayDeserializer or org.apache.kafka.common.serialization.StringDeserializer. value.serializer: This property is used for outgoing channels. Unless you have specific marshaling requirements, you must set this property to org.apache.kafka.common.serialization.ByteArraySerializer or org.apache.kafka.common.serialization.StringSerializer. topic is another relevant but optional property that might be set for a channel. The topic property contains the Apache Kafka topic name to be used for a channel. If topic property is not set, then the channel name is used as topic name. For more information about the properties that you can use for a channel when using Apache Kafka connector, see the properties list. This section describes examples of channel mapping, using the properties mentioned in the previous section. One Smallrye channel per CloudEvent type The serverless-workflow-callback-quarkus example application uses two CloudEvent types, including wait (incoming) and resume (outgoing). Kafka topic names match the CloudEvent types. Therefore, it is suitable to select the mapping strategy of one channel per CloudEvent type. This suggests that two channels must be configured. Note that you do not need to set the optional topic property as the channel name matches the CloudEvent type. Example property configuration mp.messaging.incoming.wait.connector=smallrye-kafka mp.messaging.incoming.wait.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer mp.messaging.outgoing.resume.connector=smallrye-kafka mp.messaging.outgoing.resume.value.serializer=org.apache.kafka.common.serialization.StringSerializer Default channel mapping The serverless-workflow-events-quarkus example application uses two CloudEvent types, including applicants (incoming) and decisions (outgoing). As mentioned before, Kafka topic names match the CloudEvent types. However, to use the default channel functionality, kogito_incoming_stream and kogito_outgoing_stream are used as channel names. As explained before, since there is no specific channel name for the CloudEvent type, then the default channels are used. Also, the default channels need to be mapped to the desired topic name using the topic property. Example property configuration mp.messaging.incoming.kogito_incoming_stream.connector=smallrye-kafka mp.messaging.incoming.kogito_incoming_stream.topic=applicants mp.messaging.incoming.kogito_incoming_stream.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer mp.messaging.outgoing.kogito_outgoing_stream.connector=smallrye-kafka mp.messaging.outgoing.kogito_outgoing_stream.topic=decisions mp.messaging.outgoing.kogito_outgoing_stream.value.serializer=org.apache.kafka.common.serialization.StringSerializer Smallrye provide means to manage emitter overflow through OnOverflow annotation Kogito will annotate generated smallrye emitters for a particular channel using the information provided by a property of the form kogito.addon.messaging.emitter..overflow-strategy. The possible values are BUFFER, NONE, UNBOUNDED, FAIL, and DROP. If the value of the strategy is BUFFER, then you must specify the buffer size by using the property of the form kogito.addon.messaging.emitter..buffer-size Therefore, for the wait channel, in the previous example, if we want to buffer as many as 100 events we will add these two properties Example overflow configuration kogito.addon.messaging.emitter.wait.overflow-strategy=BUFFER kogito.addon.messaging.emitter.wait.buffer-size=100 If all your channels use the same strategy and this strategy differs from the BUFFER one (you can change buffer size globally by using the mp.messaging.emitter.default-buffer-size smallrye property). You can set it up by using kogito.addon.messaging.emitter.overflow-strategy=NONE|UNBOUNDED|FAIL|DROP Consuming and producing events on Knative Eventing Event correlation in SonataFlow Callback state in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Consuming and producing events using Apache Kafka in Quarkus","component":"serverlessworkflow","version":"1.43.0.Final","name":"consume-producing-events-with-kafka","url":"/serverlessworkflow/latest/eventing/consume-producing-events-with-kafka.html","titles":[{"text":"Smallrye channels configuration for a workflow","hash":"con-sw-smallrye-channel-configuration","id":1},{"text":"Examples of Smallrye channel mapping","hash":"ref-example-smallrye-channel-mapping","id":2},{"text":"OnOverflow handling","hash":"_onoverflow_handling","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"19":{"id":19,"text":"Event correlation plays a significant role in large event-driven applications. It allows matching one or more events with a particular workflow instance. Correlation rules with domain information can be used when defining consumed events to match a workflow instance. Also, event correlation is a practical alternative to the internal identifier processInstanceId since you can use any external domain identifier as a correlation. A correlation definition consists of one or more attributes associated with an event and the respective workflow to which the event belongs. In Serverless Workflow specification, the correlation property defines the possible correlations for a given event. Each element must contain a contextAttributeName property, which is set for the value that matches an attribute from an event. You can optionally set the contextAttributeValue property, which matches the value for the respective attribute defined in contextAttributeName property for the consumed events in a workflow. The incoming events consumed by the engine must contain the correlation attributes, set in the definition as extension context attributes. The correlation attributes are compliant with the CloudEvent format, therefore, the attributes are not part of the event payload. A new workflow instance must be created using an event, which must be declared in the workflow definition file, containing correlation attributes in the event definition section. For more information about events, see Event state in SonataFlow. Once the event is consumed, the engine extracts the correlation attributes and associates the attributes with the created workflow instance. A start event does not trigger a correlation evaluation, but acts as a moment in which correlation attributes and values are set. The correlation attributes and values are evaluated against other incoming events that might trigger the given instance. Therefore, when a non-start event is consumed and correlation attributes are evaluated, then the engine continues the execution of the matched instances (if any). The following figure shows how engine processes the correlation: Figure 1. Event correlation evaluation process You can see the correlation configuration in the serverless-workflow-correlation-quarkus example application, describing the setup and usage of event correlation in a workflow. Figure 2. Event correlation evaluation process The workflow definition file contains the correlation information, in which the events section is defined as follows: Example event correlation in a workflow \"events\": [ { \"name\": \"newAccountEvent\", \"source\": \"\", \"type\": \"newAccountEventType\", \"correlation\": [ { \"contextAttributeName\": \"userid\" } ] }, { \"name\": \"validateAccountEmailEvent\", \"source\": \"workflow\", \"type\": \"validateAccountEmail\" }, { \"name\": \"validatedAccountEmailEvent\", \"source\": \"workflow\", \"type\": \"validatedAccountEmail\", \"correlation\": [ { \"contextAttributeName\": \"userid\" } ] }, { \"name\": \"activateAccountEvent\", \"source\": \"workflow\", \"type\": \"activateAccount\" }, { \"name\": \"activatedAccountEvent\", \"source\": \"workflow\", \"type\": \"activatedAccount\", \"correlation\": [ { \"contextAttributeName\": \"userid\" } ] } ] You can create a workflow by consuming events as defined in the New User Account Request event state. The New User Account Request event state contains a reference of the newAccountEvent event, containing a correlation definition for userid attribute. Example New User Account Request event state definition { \"name\": \"New User Account Request\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"newAccountEvent\" ] } ], \"transition\": \"Validate User Email\" } When the workflow consumes a new event of newAccountEventType type, a workflow instance is created. After that, the events consumed by the same workflow must contain the same correlation attribute and value, such as userid attribute and 12345 value. This correlation attribute and value is used to evaluate and match the workflow instance to continue the workflow execution. Example incoming start event newAccountEvent { \"specversion\": \"0.3\", \"id\": \"1d174d25-46ac-4785-bc76-457c2d37d2fe\", \"source\": \"\", \"type\": \"newAccountEventType\", \"time\": \"2022-07-25T16:30:35.461988261-03:00\", \"userid\": \"12345\", \"data\": { \"email\": \"test@test.com\", \"userId\": \"12345\" } } In SonataFlow, correlating multiple events together is not supported, therefore, the events are evaluated with correlations independently. Using the workflow definition in serverless-workflow-correlation-quarkus example application, you can define other events that are published and consumed by the workflow. The serverless-workflow-correlation-quarkus example application uses callback states, such as Validate User Email. This means that once the workflow execution reaches the callback state, the workflow publishes an event of validateAccountEmailEvent type and waits to receive an event of validatedAccountEmailEvent type. For more information about the callback state, see Callback state in SonataFlow. Example Callback state definition { \"name\": \"Validate User Email\", \"type\": \"callback\", \"action\": { \"name\": \"publish validate event\", \"eventRef\": { \"triggerEventRef\": \"validateAccountEmailEvent\" } }, \"eventRef\": \"validatedAccountEmailEvent\", \"transition\": \"Activate User Account\" } The produced events contain the same correlation attributes when the workflow is created. Example produced Callback state event validateAccountEmailEvent { \"id\": \"7640a0af-b7fb-4d94-9d9d-3aa1ace60e79\", \"source\": \"/process/correlation\", \"type\": \"validateAccountEmail\", \"time\": \"2022-07-25T16:22:53.735128049-03:00\", \"data\": { \"email\": \"test@test.com\", \"userId\": \"12345\" }, \"specversion\": \"1.0\", \"kogitoprocinstanceid\": \"69019826-daef-4fb4-880b-c1658c4e49bc\", \"kogitoprocid\": \"correlation\", \"kogitoprocversion\": \"1.0\", \"kogitousertaskist\": \"1\", \"kogitoproctype\": \"SW\", \"userid\": \"12345\" } All consumed events must contain the same correlation attributes since the consumed events are used to identify the workflow instance. The following example shows the consumed events containing same correlation attributes and values, such as userid and 12345: Consumed Callback state event validatedAccountEmailEvent { \"specversion\": \"1.0\", \"id\": \"953f07a7-aea8-4956-8775-85ab59366fe6\", \"source\": \"\", \"type\": \"validatedAccountEmail\", \"time\": \"2022-07-25T16:29:27.320408379-03:00\", \"userid\": \"12345\", \"data\": null } The engine stores the correlation information in the same persistence mechanism that is configured in the workflow application. If a persistence add-on is not configured, then the correlation information is stored in memory. This means that entire correlation information is lost when the workflow application restarts, therefore this process must be used for testing purposes. For more information about the persistence configuration, see Running a workflow service using PostgreSQL. Currently, only kogito-addons-quarkus-persistence-jdbc persistence add-on supports correlation. The kogito-addons-quarkus-persistence-jdbc add-on is configured for PostgreSQL. Other persistence add-ons will be supported in a future release. Event state in SonataFlow Callback state in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Event correlation in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"event-correlation-with-workflows","url":"/serverlessworkflow/latest/eventing/event-correlation-with-workflows.html","titles":[{"text":"Example of event correlation in a workflow","hash":"ref-example-event-correlation","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"20":{"id":20,"text":"This document describes how to trigger and publish events using an AsyncAPI specification file. Underneath, SonataFlow uses the AsyncAPI Quarkiverse extension. This extension automatically generates all the required Smallrye properties to make SonataFlow work with the servers declared in the AsyncAPI file. Therefore, you do not need to add any property specific to your event broker to make AsyncAPI work. This is a huge advantage over regular event states, where whether using Kafka or Knative, you have to provide additional configuration AsyncAPI Quarkiverse extension only supports kafka and http protocols at the moment. Let’s assume there is an AsyncAPI specification file called asyncAPI.yaml, located in the classpath of your project. This file contains a servers definition which protocol is Kafka: Example of an AsyncAPI kafka server definition servers: development: url: localhost:9092 description: Development server protocol: kafka protocolVersion: '1.0.0' and a subscription channel named wait: Example of an AsyncAPI subscribing channel definition channels: wait: description: A message channel subscribe: operationId: consumeWait summary: Get messages message: $ref: '#/components/messages/message' You can define a function in your workflow, of type asyncapi, that points to consumerWait operationId: Example of an AsyncAPI subscribing function definition { \"functions\": [ { \"name\": \"consumeEvent\", \"type\": \"asyncapi\", \"operation\": \"asyncAPI.yaml#consumeWait\" } ] } Remember that, as happens with REST and RPC types, the URI part of the operation property supports http, https, and file schemas. If no schema is present, it assumes the specification file is on the project classpath. Once the function is defined, you can invoke it within an operation state: Example of an AsyncAPI subscribing function invocation { \"name\": \"waitForEvent\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": \"consumeEvent\" } ] } When your flow reach the waitForEvent state, it will stop until it receives a CloudEvent published over the Kafka topic wait. Let’s assume there is an AsyncAPI specification file called asyncAPI.yaml, located in the classpath of your project. This file contains a servers definition which protocol is HTTP: Example of an AsyncAPI http server definition servers: development: url: localhost:8080 description: Development server protocol: http protocolVersion: '1.0.0' and a publishing channel named resume: Example of an AsyncAPI publishing channel definition channels: resume: description: A message channel publish: operationId: sendResume summary: Get messages message: $ref: '#/components/messages/message' You can define a function in your workflow, of type asyncapi, that point to sendResume operationId: Example of an AsyncAPI publishing function definition { \"functions\": [ { \"name\": \"sendResume\", \"type\": \"asyncapi\", \"operation\": \"asyncAPI.yaml#sendResume\" } ] } Once the function is defined, you can invoke it within an operation state: Example of an AsyncAPI publishing function invocation { \"name\": \"sendEvent\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": \"sendResume\", \"arguments\" : { \"name\" : \"Javierito\" } } ] } When your flow reach the sendEvent state, it will send an event to the endpoint http://localhost:8080/resume, with the payload {\"name\":\"Javierito\"} If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Orchestrating AsyncAPI Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestration-of-asyncapi-based-services","url":"/serverlessworkflow/latest/eventing/orchestration-of-asyncapi-based-services.html","titles":[{"text":"Consuming an event","hash":"_consuming_an_event","id":1},{"text":"Publishing an event","hash":"_publishing_an_event","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"21":{"id":21,"text":"As a developer, you can use SonataFlow and create a Hello World application, which includes the following procedures: Bootstrapping a project Creating a workflow Running your workflow application Testing your workflow application Also, you can directly access an example application by cloning serverless-workflow-examples/serverless-workflow-hello-world from the GitHub repository. This document describes how to create a workflow application that serves a hello_world endpoint. The workflow contains the following two states: Inject Hello World: Injects a Hello World message into the response Inject Mantra: Injects a Mantra message into the response Figure 1. Example Hello World workflow Prerequisites Java 11+ is installed with JAVA_HOME configured appropriately. Apache Maven 3.8.6 is installed. Quarkus CLI or Knative Workflow CLI 0.21.3 is installed. Visual Studio Code with Red Hat Java Extension and Red Hat Serverless Workflow Editor is installed to edit your workflows. For more information about the tooling and the required dependencies, see Getting familiar with SonataFlow tooling. To create your workflow service, first you need to bootstrap a project. Procedure In a command terminal, use one of the following commands to create a project: Quarkus CLI Apache Maven Knative workflow CLI Create a project using Quarkus CLI quarkus create app \\ -x=kogito-quarkus-serverless-workflow \\ -x=quarkus-resteasy-jackson \\ -x=quarkus-smallrye-openapi \\ --no-code \\ org.acme:serverless-workflow-hello-world:1.0.0-SNAPSHOT The previous command creates a Maven Quarkus project in the serverless-workflow-hello-world directory containing the required dependencies, including: kogito-quarkus-serverless-workflow: Adds support for workflows. quarkus-resteasy-jackson: Adds support for RESTEasy, which is required by the generated REST resources that are used to start the flow process using an HTTP request. quarkus-smallrye-openapi: Adds support for Swagger documentation when you run the application in development mode. --no-code: Prevents workflow example code from being generated. The SwaggerUI is available at http://localhost:8080/q/swagger-ui/ when you run the application. Create a project using Apache Maven mvn io.quarkus.platform:quarkus-maven-plugin:2.16.9.Final:create \\ -DprojectGroupId=org.acme \\ -DprojectArtifactId=serverless-workflow-hello-world \\ -Dextensions=\"kogito-quarkus-serverless-workflow,quarkus-resteasy-jackson,quarkus-smallrye-openapi\" \\ -DnoCode cd serverless-workflow-hello-world In the previous command, org.acme, serverless-workflow-hello-world, and 1.0.0-SNAPSHOT is group ID, artifact ID, and version of your project respectively. -DnoCode prevents the generation of workflow example code. Create a project using Knative workflow CLI kn workflow create \\ --name serverless-workflow-hello-world \\ --extension quarkus-jsonp,quarkus-smallrye-openapi \\ --quarkus-platform-group-id=io.quarkus.platform \\ --quarkus-version=2.16.9.Final For more information about Knative workflow CLI, see SonataFlow plug-in for Knative CLI. After bootstrapping a project, you need to create a workflow. In the following procedure, a workflow named Hello World Workflow is created. Procedure Create a file named hello.sw.json in the src/main/resources directory with the following content: Example content for hello.sw.json file { \"id\": \"hello_world\", (1) \"version\": \"1.0\", \"specVersion\": \"0.8\", \"name\": \"Hello World Workflow\", \"description\": \"JSON based hello world workflow\", \"start\": \"Inject Hello World\", (3) \"states\": [ (2) { \"name\": \"Inject Hello World\", \"type\": \"inject\", (4) \"data\": { (5) \"greeting\": \"Hello World\" }, \"transition\": \"Inject Mantra\" (6) }, { \"name\": \"Inject Mantra\", \"type\": \"inject\", \"data\": { \"mantra\": \"Serverless Workflow is awesome!\" (7) }, \"end\": true (8) } ] } In the previous example: 1 id field is the unique identifier of the workflow. SonataFlow generates the REST endpoints based on this unique identifier. 2 states defines the states of the workflow. In the Hello World example, the workflow contains two states, such as Inject Hello World and Inject Mantra. 3 start field defines the state in which the workflow starts. 4 type defines the type of the state. In the previous example, the state is inject. The inject state can be used to inject static data into state data input. 5 data defines the data that is injected into the state. In the previous example, greeting is injected with the Hello World value. 6 transition field defines the next state that is reached after the current state is completed. 7 Injects a mantra with the value Serverless Workflow is awesome! into the workflow data. 8 end field defines that the current state is the end of the workflow. When the workflow reaches the end state, the workflow stops and the REST endpoint returns the workflow data, such as: Example workflow data { \"greeting\": \"Hello World\", \"mantra\": \"Serverless Workflow is awesome!\" } The workflow definition follows the CNCF Serverless Workflow specification. For more information, see CNCF Serverless Workflow specification. To verify that project is created, compile the project using the following command: Quarkus CLI Apache Maven Knative workflow CLI Compile your project using Quarkus CLI quarkus build Compile your project using Apache Maven mvn clean package Build your project and generate a local image called dev.local/serverless-workflow-hello-world:latest kn workflow build --image dev.local/serverless-workflow-hello-world --verbose The --verbose flag is used to display the output of the build command. This flag is optional. For more information about Knative workflow CLI, see SonataFlow plug-in for Knative CLI. After creating a workflow, you can run your workflow application. Procedure Enter the following command to run your workflow application: Quarkus CLI Apache Maven Run your workflow application using Quarkus CLI quarkus dev Run your workflow application using Apache Maven mvn clean quarkus:dev Knative workflow CLI: Currently, Knative workflow CLI doesn’t support yet running workflows locally. You can either: Run your workflow application using Apache Maven mvn clean quarkus:dev Run your workflow application using Quarkus CLI quarkus dev For more information about Knative workflow CLI, see SonataFlow plug-in for Knative CLI. Also, to deploy and run your workflow application, see Deploying workflow application on Minikube Example response [INFO] ------------- [INFO] Building serverless-workflow-hello-world 1.0.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- quarkus-maven-plugin:2.16.9.Final:dev (default-cli) @ serverless-workflow-hello-world --- [INFO] Invoking org.apache.maven.plugins:maven-resources-plugin:2.6:resources) @ serverless-workflow-hello-world [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 3 resources ...more output... __ ____ __ _____ ___ __ ____ ______ --/ __ \\/ / / / _ | / _ \\/ //_/ / / / __/ -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\\ \\ --\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/ 2022-05-25 14:38:09,741 INFO [org.kie.kog.add.qua.mes.com.QuarkusKogitoExtensionInitializer] (Quarkus Main Thread) Registered Kogito CloudEvent extension 2022-05-25 14:38:09,840 INFO [io.quarkus] (Quarkus Main Thread) serverless-workflow-hello-world 1.0.0-SNAPSHOT on JVM (powered by Quarkus 2.16.9.Final) started in 6.470s. Listening on: http://localhost:8080 2022-05-25 14:38:09,843 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. 2022-05-25 14:38:09,843 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cache, cdi, jackson-jq, kogito-addon-messaging-extension, kogito-processes, kogito-serverless-workflow, reactive-routes, rest-client, rest-client-jackson, resteasy, resteasy-jackson, smallrye-context-propagation, smallrye-openapi, smallrye-reactive-messaging, smallrye-reactive-messaging-http, swagger-ui, vertx] 2022-05-25 14:38:12,877 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: __ ____ __ _____ ___ __ ____ ______ 2022-05-25 14:38:12,878 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: --/ __ \\/ / / / _ | / _ \\/ //_/ / / / __/ 2022-05-25 14:38:12,879 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\\ \\ 2022-05-25 14:38:12,879 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: --\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/ 2022-05-25 14:38:12,879 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:09,692 INFO [io.zon.tes.db.pos.emb.EmbeddedPostgres] (main) Detected a Linux x86_64 system 2022-05-25 14:38:12,880 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:09,705 INFO [io.zon.tes.db.pos.emb.DefaultPostgresBinaryResolver] (main) Detected distribution: 'Red Hat Enterprise Linux' ...more output... 2022-05-25 14:38:12,889 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:12,332 INFO [io.zon.tes.db.pos.emb.EmbeddedPostgres] (postgres:pid(90)) 2022-05-25 17:38:12.332 UTC [99] LOG: incomplete startup packet 2022-05-25 14:38:12,890 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:12,405 INFO [io.zon.tes.db.pos.emb.EmbeddedPostgres] (main) 5df1ed6e-7a15-4091-bcfb-e293aa293bfe postmaster startup finished in 00:00:00.180 2022-05-25 14:38:12,890 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:12,405 INFO [org.kie.kog.per.inm.pos.run.InmemoryPostgreSQLRecorder] (main) Embedded Postgres started at port \"44729\" with database \"postgres\", user \"postgres\" and password \"postgres\" 2022-05-25 14:38:12,890 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:12,636 WARN [io.qua.run.con.ConfigRecorder] (main) Build time property cannot be changed at runtime: 2022-05-25 14:38:13,375 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,105 INFO [org.kie.kog.per.pro.ProtobufService] (main) Registering Kogito ProtoBuffer file: kogito-index.proto 2022-05-25 14:38:13,377 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,132 INFO [org.kie.kog.per.pro.ProtobufService] (main) Registering Kogito ProtoBuffer file: kogito-types.proto 2022-05-25 14:38:13,378 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,181 INFO [io.quarkus] (main) data-index-service-inmemory 1.22.0.Final on JVM (powered by Quarkus 2.9.0.Final) started in 4.691s. Listening on: http://0.0.0.0:8080 2022-05-25 14:38:13,379 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,182 INFO [io.quarkus] (main) Profile prod activated. 2022-05-25 14:38:13,380 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,182 INFO [io.quarkus] (main) Installed features: [agroal, cdi, hibernate-orm, hibernate-orm-panache, inmemory-postgres, jdbc-postgresql, narayana-jta, oidc, reactive-routes, rest-client-reactive, rest-client-reactive-jackson, security, smallrye-context-propagation, smallrye-graphql-client, smallrye-health, smallrye-metrics, smallrye-reactive-messaging, smallrye-reactive-messaging-http, vertx, vertx-graphql] Once your workflow application is started, you can send a request for the provided endpoint: Example request curl -X POST -H 'Content-Type:application/json' http://localhost:8080/hello_world Example response {\"id\":\"efb59bfa-ad9c-4062-a6d2-2d9184dd4b3d\",\"workflowdata\":{\"greeting\":\"Hello World\",\"mantra\":\"Serverless Workflow is awesome!\"}} When running in development mode (using Quarkus CLI or Apache Maven), you can update your workflow with a new mantra value without restarting the application. Update your workflow { \"name\": \"Inject Mantra\", \"type\": \"inject\", \"data\": { \"mantra\": \"Serverless Workflow is amazing!\" (1) }, \"end\": true } 1 New mantra value Example request curl -X POST -H 'Content-Type:application/json' http://localhost:8080/hello_world Example response {\"id\":\"efb59bfa-ad9c-4062-a6d2-2d9184dd4b3d\",\"workflowdata\":{\"greeting\":\"Hello World\",\"mantra\":\"Serverless Workflow is amazing!\"}} Note that the mantra value is updated without restarting the application, because SonataFlow leverages the Quarkus live coding feature. To stop the application, press CTRL+C. To test your workflow application, you can follow the instructions in the Testing your workflow application using REST Assured. Getting familiar with SonataFlow tooling Orchestrating the OpenAPI services If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Creating a Quarkus Workflow Project","component":"serverlessworkflow","version":"1.43.0.Final","name":"create-your-first-workflow-service","url":"/serverlessworkflow/latest/getting-started/create-your-first-workflow-service.html","titles":[{"text":"Bootstrapping a project","hash":"proc-boostrapping-the-project","id":1},{"text":"Creating a workflow","hash":"proc-creating-workflow","id":2},{"text":"Building your workflow application","hash":"proc-building-application","id":3},{"text":"Running your workflow application","hash":"proc-running-application","id":4},{"text":"Testing your workflow application","hash":"proc-testing-application","id":5},{"text":"Additional resources","hash":"_additional_resources","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"22":{"id":22,"text":"The tooling in SonataFlow provides the best developer experience for the workflow ecosystem. The following tools are provided that you can use to author your workflow assets: VS Code extension: Use the Serverless Workflow editor and edit the CNCF Serverless Workflow specification files in Visual Studio Code. Chrome GitHub extension: View and edit the CNCF Serverless Workflow specification files in GitHub. Kogito Serverless Workflow Tools extension in Quarkus Dev UI: View, manage, and start the workflow instances. SonataFlow plug-in for Knative CLI: Set up a local workflow project using the command line. Serverless Logic online tooling: Try and run the Serverless Workflow example applications in a web environment. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Getting familiar with SonataFlow tooling","component":"serverlessworkflow","version":"1.43.0.Final","name":"getting-familiar-with-our-tooling","url":"/serverlessworkflow/latest/getting-started/getting-familiar-with-our-tooling.html","titles":[{"text":"Found an issue?","hash":"_found_an_issue","id":1}]},"23":{"id":23,"text":"SonataFlow can integrate with Apache Camel Routes by adding the Kogito Quarkus Camel Add-on to your project. It enables the workflow engine to identify and call Camel routes declared in YAML or XML in the same workflow project context. You can enable Quarkus Camel in your project. Prerequisites A workflow application is created. For more information about creating a workflow, see Creating your first workflow service. Procedure To add the Quarkus Camel to your workflow application, add the org.kie.kogito:kogito-addons-quarkus-camel dependency to the pom.xml file of your project as follows: Dependency to be added to the pom.xml file to enable metrics org.kie.kogito kogito-addons-quarkus-camel You can add YAML or XML Camel routes to your workflow project. Procedure Create a YAML or XML Camel Routes using your IDE or the Kaoto VSCode Editor and place them in the src/main/resources/routes directory. The route from endpoint must be a direct component. That’s the endpoint producer expected by the workflow engine. The route response must be in a valid format that the workflow context can understand: A string that contains a valid JSON object A valid Java bean that can be serialized to JSON A Jackson’s JsonNode object Any primitive type (Integer, Float, Decimal, String, etc) The response will be merged into the workflow state context. If it is an array or a complex object, the response will be added to the special attribute response. Example of a Camel route with the direct endpoint returning a valid JSON string representation - from: uri: direct:logRouteReplaceHeader (1) steps: (2) - setBody: simple: '{ \"id\": \"${header.WorkflowID}\", \"arg1\": { \"arg2\": \"value1\" } }' (3) - log: message: We received the ${body} (4) 1 Camel route producer definition using the direct component 2 Definition of the Camel route steps 3 Replace the Camel message body with a valid JSON object containing the header WorkflowID from the workflow context 4 Log the Camel message body in the console for debugging purposes. You can define and reference your Camel functions in the workflow definition. Prerequisites You have created Camel routes in the workflow Maven project. Procedure In the functions definition section of your workflow DSL, declare the Camel route as exemplified below: Example of a Camel Route function definition { \"functions\": [ { \"name\": \"logRoute\", \"type\": \"custom\", \"operation\": \"camel:direct:logRouteReplaceHeader\" } ] } The operation description must have the prefix camel:direct:, indicating that you want to produce a message to this route via the Camel Direct Component. Direct is the only component supported by SonataFlow at the moment. The operation suffix contains the name of the route endpoint. In the case of this example, logRouteReplaceHeader. The Camel route defined in the workflow must be available in your project during runtime, otherwise, an IllegalArgumentException will be thrown. To use the Camel function definition in a workflow action, you can simply reference it as you normally would with any other SonataFlow function definitions. For example: Example of a workflow state action referencing { \"states\": [ { \"name\": \"sendToLog\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": { \"refName\": \"logRoute\", (1) \"arguments\": { \"body\": \"${ . }\", (2) \"headers\": { \"WorkflowID\": \"$WORKFLOW.instanceId\" (3) } } } } ], \"end\": true } ] } 1 The function reference name, as defined in the function attribute. 2 The body definition. A jq expression to be evaluated in runtime resulting in the body payload. 3 The headers definition that must be a key/value pair or a valid jq expression evaluated in runtime. Once a message is received back from the Camel route, the data is merged into the workflow payload: Message payload example returned by the Camel route { \"id\": \"777adb97-d297-45fd-9969-efafe4dfb3e7\", \"arg1\": { \"arg2\": \"value1\" } } There is an example project available on GitHub using this new feature. You can use it as a reference to have a better understanding of the Camel integration with SonataFlow. Custom functions for your SonataFlow service jq expressions in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Integrating with Camel routes","component":"serverlessworkflow","version":"1.43.0.Final","name":"camel-routes-integration","url":"/serverlessworkflow/latest/integrations/camel-routes-integration.html","titles":[{"text":"Enabling Quarkus Camel in SonataFlow","hash":"proc-enable-quarkus-camel","id":1},{"text":"Creating Camel routes in SonataFlow","hash":"con-creating-camel-routes","id":2},{"text":"Defining and referencing Camel functions in the Workflow DSL","hash":"con-importing-camel-routes","id":3},{"text":"Example project","hash":"_example_project","id":4},{"text":"Additional resources","hash":"_additional_resources","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"24":{"id":24,"text":"This document describes how to call Knative services using SonataFlow custom functions. The procedure described in this document is based on the serverless-workflow-custom-function-knative example application. For more details about the Knative custom function, see Custom functions for your SonataFlow service. Prerequisites Your SonataFlow application is ready to use. For more information about building the application container, see Building workflow images using Quarkus CLI. Minikube is installed kubectl command-line tool is installed. Otherwise, Minikube handles it. Knative CLI is installed. For more information, see Install the Knative CLI. Knative workflow CLI is installed. For more information see Serverless Workflow plug-in for Knative CLI. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). You have the custom-function-knative-service project deployed on Knative. For more information on how to deploy a Quarkus project to Knative, see the Quarkus Kubernetes extension documentation. Procedure Add the knative-serving add-on dependency to your workflow project. org.kie.kogito kogito-addons-quarkus-knative-serving Enable the Service Discovery feature. Discover the name of the Knative service that your workflow will invoke. In a terminal window, run the following command: kn service list You should see an output like: NAME URL LATEST AGE CONDITIONS READY REASON custom-function-knative-service http://custom-function-knative-service.default.10.109.169.193.sslip.io custom-function-knative-service-00001 3h16m 3 OK / 3 True Save the Knative service name (custom-function-knative-service) to use it in the next step. Declare the Knative SonataFlow custom function. In the functions section of your workflow, add the following: { \"name\": \"greet\", (1) \"type\": \"custom\", (2) \"operation\": \"knative:services.v1.serving.knative.dev/custom-function-knative-service?path=/function\", (3) } 1 The name of the SonataFlow function 2 Indicates that this function is a custom one 3 The coordinates of the service you want to invoke Invoke the declared function. In an operation state, add an action that references the function you declared in the previous step like the following: \"actions\": [ { \"functionRef\": { \"refName\": \"greet\", (1) \"arguments\": { (2) \"name\": \".name\" } } } ] 1 Function’s name 2 The payload that should be sent in the request Deploy your workflow service to Knative. For more information on how to deploy a SonataFlow SonataFlow project to Knative, see the Deploying on Kubernetes. Submit a request to the workflow service curl -X 'POST' \\ '/plainJsonKnativeFunction' \\ (1) -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"name\": \"Kogito\" }' 1 Replace with the URL of your deployed workflow service You should see an output like (id will change): {\"id\":\"87cf8275-782d-4e0b-a9be-a95f95c9c190\",\"workflowdata\":{\"name\":\"Kogito\",\"greeting\":\"Greetings from Serverless Workflow, Kogito\"}} Knative functions support CloudEvent as the message protocol. SonataFlow can create and post CloudEvent messages in functionRef. For more information see core/custom-functions-support.adoc#sending-cloudevents Custom functions for your SonataFlow service Deploying your Serverless Workflow application on Minikube Deploying your Serverless Workflow application on Kubernetes If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Invoking Knative services from SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"custom-functions-knative","url":"/serverlessworkflow/latest/integrations/custom-functions-knative.html","titles":[{"text":"Sending as CloudEvent","hash":"_sending_as_cloudevent","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"25":{"id":25,"text":"SonataFlow generates metrics that can be consumed by Prometheus and visualized by dashboard tools, such as OpenShift, Dashbuilder, and Grafana. This document describes how you can enable and expose the generated metrics to Prometheus. You can enable the metrics in your workflow application. Prerequisites A workflow application is created. For more information about creating a workflow, see Creating your first workflow service. Procedure To add the metrics to your workflow application, add the org.kie.kogito:kogito-addons-quarkus-monitoring-prometheus dependency to the pom.xml file of your project: Dependency to be added to the pom.xml file to enable metrics org.kie.kogito kogito-addons-quarkus-monitoring-prometheus Rebuild your workflow application. The metrics is available at /q/metrics endpoint. After enabling the metrics in SonataFlow, the generated metrics can be consumed from OpenShift, Kubernetes, and Prometheus to visualize on different dashboard tools. If your workflow server is running on OpenShift, then you can use the server to monitor your workflow application. Also, you can perform the task of consuming metrics from OpenShift. Prerequisites Metrics is enabled in SonataFlow. For more information, see Enabling metrics in SonataFlow. Procedure To consume metrics from OpenShift, enable monitoring for user-defined projects. For more information, see Enabling monitoring for user-defined projects in OpenShift documentation. When you enable monitoring for user-defined projects, the Prometheus Operator is installed automatically. Create a service monitor as shown in the following configuration: Example configuration in service-monitor.yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: k8s-app: prometheus-app-monitor name: prometheus-app-monitor namespace: my-project spec: endpoints: - interval: 30s targetPort: 8080 path: /q/metrics scheme: http selector: matchLabels: app-with-metrics: 'serverless-workflow-app' Run the following command to apply the service monitor: Apply service monitor oc apply -f service-monitor.yaml In the previous procedure, a service monitor named prometheus-app-monitor is created, which selects applications containing the label as app-with-metrics: serverless-workflow-app. Ensure that your workflow application contains the same label. After that, Prometheus sends request to the /q/metrics endpoint for all the services that are labeled with app-with-metrics: serverless-workflow-app every 30 seconds. For more information about monitoring Quarkus application using Micrometer and Prometheus into OpenShift, see Quarkus - Micrometer Metrics. Consuming metrics from Kubernetes is similar to OpenShift. However, you need to install the Prometheus Operator project manually. For more information about installing Prometheus Operator, see Prometheus Operator website. If your workflow server is running on Prometheus, then you can perform the task of consuming metrics from Prometheus and visualize the workflow on different dashboard tools. Prerequisites Metrics is enabled in SonataFlow. For more information, see Enabling metrics in SonataFlow. Procedure Use the following configuration to enable Prometheus to remove metrics directly from the workflow application: Example Prometheus configuration - job_name: 'Serverless Workflow App' scrape_interval: 2s metrics_path: /q/metrics static_configs: - targets: ['localhost:8080'] Replace the values of job_name and scrap_interval in the previous configuration with your own values. Ensure that target under static_configs parameter in Prometheus configuration matches with your workflow application location. For more information about configuring Prometheus, see Configure Prometheus to monitor the sample targets in Prometheus Getting Started document. In SonataFlow, you can check the following example metrics: kogito_process_instance_completed_total: Completed workflows kogito_process_instance_started_total: Started workflows kogito_process_instance_running_total: Running workflows kogito_process_instance_duration_seconds_sum: Workflows total duration Internally, workflows are referred as processes. Therefore, the processId and processName is workflow ID and name respectively. Each of the metrics mentioned previously contains a label for a specific workflow ID. For example, the kogito_process_instance_completed_total metric contains labels for jsongreet, yamlgreet, and foreach workflows: Example kogito_process_instance_completed_total metric # HELP kogito_process_instance_completed_total Completed Process Instances # TYPE kogito_process_instance_completed_total counter kogito_process_instance_completed_total{app_id=\"default-process-monitoring-listener\",artifactId=\"kogito-serverless-workflow-demo\",node_name=\"2\",process_id=\"jsongreet\",version=\"1.0.0-SNAPSHOT\",} 154.0 kogito_process_instance_completed_total{app_id=\"default-process-monitoring-listener\",artifactId=\"kogito-serverless-workflow-demo\",node_name=\"2\",process_id=\"yamlgreet\",version=\"1.0.0-SNAPSHOT\",} 218.0 kogito_process_instance_completed_total{app_id=\"default-process-monitoring-listener\",artifactId=\"kogito-serverless-workflow-demo\",node_name=\"2\",process_id=\"foreach\",version=\"1.0.0-SNAPSHOT\",} 162.0 Internally, SonataFlow uses Quarkus Micrometer extension, which also exposes built-in metrics. You can disable the Micrometer metrics in SonataFlow. For more information, see Quarkus - Micrometer Metrics. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Exposing Workflow base metrics to Prometheus","component":"serverlessworkflow","version":"1.43.0.Final","name":"expose-metrics-to-prometheus","url":"/serverlessworkflow/latest/integrations/expose-metrics-to-prometheus.html","titles":[{"text":"Enabling metrics in SonataFlow","hash":"proc-enable-metrics-sw","id":1},{"text":"Metrics consumption in SonataFlow","hash":"con-consume-metrics-sw","id":2},{"text":"Consuming metrics from OpenShift","hash":"proc-consume-metrics-openshift","id":3},{"text":"Consuming metrics from Prometheus","hash":"proc-consume-metrics-prometheus","id":4},{"text":"Example metrics in SonataFlow","hash":"ref-sw-example-metrics","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"26":{"id":26,"text":"This document describes how you can build dashboards to monitor your workflows data. To build the dashboards, you need data, which you can acquire from your workflows using one of the following methods: Enable metrics Integrate with Data Index to consume data using the REST API Use custom mechanisms, such as ProcessInstanceListener The following sections describes the process of creating dashboards using metrics and Data Index GraphQL REST API. The dashboards for workflows are visualization of data that run on the client side. The dashboards are created using Dashbuilder, which consumes data from any JSON source. You can define a dashboard in YAML format. To use the Dashbuilder, download and uncompress the dashbuilder-client NPM package. Also, edit the setup.js file to link your YAML files. For more information about using Dashbuilder, see Dashbuilder documentation. Figure 1. Dashbuilder You can build dashboards to monitor the data of your workflows using metrics. Prerequisites A workflow application is created. For more information about creating a workflow, see Creating your first workflow service. Procedure To enable metrics for your workflows application add org.kie.kogito:kogito-addons-quarkus-monitoring-prometheus dependency in pom.xml file of your application: Add metrics dependency to pom.xml file org.kie.kogito kogito-addons-quarkus-monitoring-prometheus You can find the metrics in /q/metrics path. The dashbuilder can consume the data of your workflow directly from the metrics endpoints. Therefore, you can use a JSONAta expression to format the metrics and display the metrics in a table using the following example of YAML code: Example YAML to show metrics in a table datasets: - uuid: swf_metrics url: http://localhost:8080/q/metrics expression: >- $map($, function($l) { [ $l[0], $contains($l[1], \"process_id\") ? $replace($match($l[1], /process_id=\".*?\"/).match, \"process_id\", \"workflow\") : $l[1], $l[2] = \"NaN\" ? -1 : $l[2] ] } ) pages: - components: - settings: lookup: uuid: swf_metrics Figure 2. Example metrics in a table To extract a specific information from your workflow, use specific metrics. Metrics related to workflows include: kogito_process_instance_completed_total: Completed workflows kogito_process_instance_started_total: Started workflows kogito_process_instance_running_total: Running workflows kogito_process_instance_duration_seconds_sum: Workflows total duration When you display the metrics, you can filter the data to include the specific metrics. You can use the metrics and bar chart components in dashbuilder to display the specific metrics and after filtering the metrics, you can put the information in bar charts as shown in the following example YAML code: Example YAML to display bar charts datasets: - uuid: metrics url: http://localhost:8080/q/metrics expression: >- $map($, function($l) { [ $l[0], $contains($l[1], \"process_id\") ? $replace($match($l[1], /process_id=\".*?\"/).match, \"process_id\", \"workflow\") : $l[1], $l[2] = \"NaN\" ? -1 : $l[2] ] } ) columns: - id: metric type: label - id: labels type: label - id: value type: number pages: - rows: - columns: - span: \"6\" components: - html: >- Started - settings: type: BARCHART chart: resizable: 'true' width: '2000' lookup: uuid: metrics sort: - column: value sortOrder: DESCENDING filter: - column: metric function: EQUALS_TO args: - \"kogito_process_instance_started_total\" group: - columnGroup: source: labels groupFunctions: - source: labels - source: value - span: \"6\" components: - html: >- Running - settings: type: BARCHART chart: resizable: 'true' width: '2000' lookup: uuid: metrics sort: - column: value sortOrder: DESCENDING filter: - column: metric function: EQUALS_TO args: - \"kogito_process_instance_running_total\" group: - columnGroup: source: labels groupFunctions: - source: labels - source: value - columns: - span: \"6\" components: - html: >- Completed - settings: type: BARCHART chart: resizable: 'true' width: '2000' dataSetLookup: uuid: metrics sort: - column: value sortOrder: DESCENDING filter: - column: metric function: EQUALS_TO args: - \"kogito_process_instance_completed_total\" group: - columnGroup: source: labels groupFunctions: - source: labels - source: value - span: \"6\" components: - html: >- Total Duration - settings: type: BARCHART chart: resizable: 'true' width: '2000' lookup: uuid: metrics sort: - column: value sortOrder: DESCENDING filter: - column: metric function: EQUALS_TO args: - \"kogito_process_instance_duration_seconds_sum\" group: - columnGroup: source: labels groupFunctions: - source: labels - source: value Figure 3. Example workflow metrics dashboard If you are using Prometheus, you can use PROMQL with Prometheus REST API and transform the result to JSON format that is supported by dashbuilder to build the dashoards. For more information about dashbuilder and Prometheus, see Creating Prometheus Dashboards using Dashbuilder. Data Index is a service that contains all the data related to the execution of your workflow. The Data Index service is available during the development mode. By default, you can access the Data Index at http://localhost:8180. The Data Index service uses GraphQL, so that dashbuilder can connect with the service using its REST API and transform the result to the supported format. Prerequisites A workflow application is created. For more information about creating a workflow, see Creating your first workflow service. Procedure Go to the Data Index GraphQL interface (default to http://localhost:8180/graphiql) and test your query. The following is an example of GraphQL query that lists all the workflows: Example GraphQL query to retrieve all workflows { ProcessInstances { processId processName state start end businessKey error {message} } } Run the GraphQL query. When you run the query, note that the URL is modified to includes the query. Copy the URL and modify graphiql to graphql. When you access the URL with graphql, it returns the result in a JSON format as shown in the following example: GraphQL JSON result when using the query { \"data\": { \"ProcessInstances\": [ { \"processId\": \"yamlgreet\", \"processName\": \"Greeting workflow\", \"state\": \"COMPLETED\", \"start\": \"2022-07-01T16:08:12.038Z\", \"end\": \"2022-07-01T16:08:12.061Z\", \"businessKey\": null, \"error\": null }, ] } } Internally, workflows are referenced as processes, therefore the processId is the workflow ID and processName is the workflow name. Transform the response to the transform expression. When you transform the response, note that the response includes the columns metdata for the data set. Example transform expression to retrieve fields from JSON response { \"columns\" :[ {\"id\": \"Workflow Id\", \"type\": \"label\"}, {\"id\": \"Workflow Name\", \"type\": \"label\"}, {\"id\": \"State\", \"type\": \"label\"}, {\"id\": \"Start\", \"type\": \"label\"}, {\"id\": \"End\", \"type\": \"label\"}, {\"id\": \"Business Key\", \"type\": \"label\"}, {\"id\": \"Error\", \"type\": \"label\"} ], \"values\" : $.data.ProcessInstances.[ processId, processName, state, start, end, businessKey ? businessKey : \"\", error ? error.message : \"\"] } Create your dashboard using the transform expression and the URL mentioned in the previous step. Example dashboard created using Data Index datasets: - uuid: workflows url: http://localhost:8180/graphql/?query=%7BProcessInstances%7BprocessId%20processName%20state%20start%20end%20businessKey%20error%7Bmessage%7D%7D%7D%0A expression: >- { \"columns\" :[ {\"id\": \"Workflow Id\", \"type\": \"label\"}, {\"id\": \"Workflow Name\", \"type\": \"label\"}, {\"id\": \"State\", \"type\": \"label\"}, {\"id\": \"Start\", \"type\": \"label\"}, {\"id\": \"End\", \"type\": \"label\"}, {\"id\": \"Business Key\", \"type\": \"label\"}, {\"id\": \"Error\", \"type\": \"label\"} ], \"values\" : $.data.ProcessInstances.[ processId, processName, state, start, end, businessKey ? businessKey : \"\", error ? error.message : \"\"] } pages: - components: - settings: type: BARCHART lookup: uuid: workflows group: - columnGroup: source: State functions: - source: State - source: State function: COUNT - settings: lookup: uuid: workflows The previous example of dashboard contains bar chart that counts the workflow instances by State and lists all the dashboards in a table. Following is the graphical dashboard resulted from the previous example: Figure 4. Example dashboard created using Data Index For more examples of dashboards, see Dashbuilder website. Creating your first workflow service If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Displaying Workflow Data in Dashboards","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-dashboard-with-runtime-data","url":"/serverlessworkflow/latest/integrations/serverless-dashboard-with-runtime-data.html","titles":[{"text":"Dashboards for workflows","hash":"con-sw-dashboard","id":1},{"text":"Building dashboards using metrics","hash":"proc-sw-dashboard-metrics","id":2},{"text":"Building dashboards using Data Index","hash":"proc-sw-dashboard-data-index","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"27":{"id":27,"text":"The Job Service facilitates the scheduled execution of tasks in a cloud environment. These tasks are implemented by independent services, and can be started by using any of the Job Service supported interaction modes, based on Http calls or Knative Events delivery. To schedule the execution of a task you must create a Job, that is configured with the following information: Schedule: the job triggering periodicity. Recipient: the entity that is called on the job execution for the given interaction mode, and receives the execution parameters. In the context of the SonataFlows, the Job Service is responsible for controlling the execution of the time-triggered actions. And thus, all the time-base states that you can use in a workflow, are handled by the interaction between the workflow and the Job Service. For example, every time the workflow execution reaches a state with a configured timeout, a corresponding job is created in the Job Service, and when the timeout is met, a http callback is executed to notify the workflow. To set up this integration you can use different communication alternatives, that must be configured by combining the Job Service and the Quarkus Workflow Project configurations. If the project is not configured to use the Job Service, all time-based actions will use an in-memory implementation of that service. However, this setup must not be used in production, since every time the application is restarted, all the timers are lost. This last is not suited for serverless architectures, where the applications might scale to zero at any time, etc. Since the main goal of the Job Service is to work with the active jobs, such as the scheduled jobs that needs to be executed, when a job reaches a final state, it is removed from the Job Service. However, in some cases where you want to keep the information about the jobs in a permanent repository, you can configure the Job Service to produce status change events, that can be collected by the Data Index Service, where they can be indexed and made available by GraphQL queries. To execute the Job Service in your docker or kubernetes environment, you must use the following image: kogito-jobs-service-allinone In the next topics you can see the different configuration parameters that you must use, for example, to configure the persistence mechanism, the eventing system, etc. More information on this image can be found here. We recommend that you follow this procedure: Identify the persistence mechanism to use and see the required configuration parameters. Identify if the Eventing API is required for your needs and see the required configuration parameters. Identify if the project containing your workflows is configured with the appropriate Job Service Quarkus Extension. Finally, to run the image, you must use the environment variables exposed by the image, and other configurations that you can set using additional environment variables or using system properties with java like names. Variable Description SCRIPT_DEBUG Enable debug level of the image and its operations. JOBS_SERVICE_PERSISTENCE Any of the following values: postgresql, ephemeral, or infinispan to select the persistence mechanism to use, see. If used, these values must always be passed as environment variables. To configure the image by using environment variables you must pass one environment variable per each parameter. Job Service image configuration for docker execution example docker run -it -e JOBS_SERVICE_PERSISTENCE=postgresql -e VARIABLE_NAME=value quay.io/kiegroup/kogito-jobs-service-allinone:latest Job Service image configuration for Kubernetes execution example spec: containers: - name: jobs-service-postgresql image: quay.io/kiegroup/kogito-jobs-service-allinone-nightly:latest imagePullPolicy: Always ports: - containerPort: 8080 name: http protocol: TCP env: # Set the image parameters as environment variables in the container definition. - name: KUBERNETES_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: JOBS_SERVICE_PERSISTENCE value: \"postgresql\" - name: QUARKUS_DATASOURCE_USERNAME value: postgres - name: QUARKUS_DATASOURCE_PASSWORD value: pass - name: QUARKUS_DATASOURCE_JDBC_URL value: jdbc:postgresql://timeouts-showcase-database:5432/postgres?currentSchema=jobs-service - name: QUARKUS_DATASOURCE_REACTIVE_URL value: postgresql://timeouts-showcase-database:5432/postgres?search_path=jobs-service This is the recommended approach when you execute the Job Service in kubernetes. The timeouts showcase example Quarkus Workflow Project with standalone services contains an example of this configuration, see. To configure the image by using system properties you must pass one property per parameter, however, in this case, all these properties are passed as part of a single environment with the name JAVA_OPTIONS. Job Service image configuration for docker execution example docker run -it -e JOBS_SERVICE_PERSISTENCE=postgresql -e JAVA_OPTIONS='-Dmy.sys.prop1=value1 -Dmy.sys.prop2=value2' \\ quay.io/kiegroup/kogito-jobs-service-allinone:latest I case that you need to convert a java like property name, to the corresponding environment variable name, to use the environment variables configuration alternative, you must apply the naming convention defined in the Quarkus Configuration Reference. For example, the name quarkus.datasource.jdbc.url must be converted to QUARKUS_DATASOURCE_JDBC_URL. Global configurations that affects the job execution retries, startup procedure, etc. Using environment variables Using system properties with java like names Name Description Default KOGITO_JOBS_SERVICE_BACKOFFRETRYMILLIS A long value that defines the retry back-off time in milliseconds between job execution attempts, in case the execution fails. 1000 KOGITO_JOBS_SERVICE_MAXINTERVALLIMITTORETRYMILLIS A long value that defines the maximum interval in milliseconds when retrying to execute jobs, in case the execution fails. 60000 Name Description Default kogito.jobs-service.backoffRetryMillis A long value that defines the retry back-off time in milliseconds between job execution attempts, in case the execution fails. 1000 kogito.jobs-service.maxIntervalLimitToRetryMillis A long value that defines the maximum interval in milliseconds when retrying to execute jobs, in case the execution fails. 60000 An important configuration aspect of the Job Service is the persistence mechanism, it is where all the jobs information is stored, and guarantees no information is lost upon service restarts. The Job Service image is shipped with the PostgreSQL, Ephemeral, and Infinispan persistence mechanisms, that can be switched by setting the JOBS_SERVICE_PERSISTENCE environment variable to any of these values postgresql, ephemeral, or infinispan. If not set, it defaults to the ephemeral option. The kogito-jobs-service-allinone image is a composite packaging that include one different image per each persistence mechanism, making it clearly bigger sized than the individual ones. If that size represents an issue in your installation you can use the individual ones instead. Finally, if you use this alternative, the JOBS_SERVICE_PERSISTENCE must not be used, since the persistence mechanism is auto-determined. These are the individual images: kogito-jobs-service-postgresql, kogito-jobs-service-ephemeral, or kogito-jobs-service-infinispan PostgreSQL is the recommended database to use with the Job Service. Additionally, it provides an initialization procedure that integrates Flyway for the database initialization. Which automatically controls the database schema, in this way, the tables are created or updated by the service when required. In case you need to externally control the database schema, you can check and apply the DDL scripts for the Job Service in the same way as described in Manually executing scripts guide. To configure the PostgreSQL persistence you must provide these configurations: Using environment variables Using system properties with java like names Variable Description Example value JOBS_SERVICE_PERSISTENCE Configure the persistence mechanism that must be used. postgresql QUARKUS_DATASOURCE_USERNAME Username to connect to the database. postgres QUARKUS_DATASOURCE_PASSWORD Password to connect to the database pass QUARKUS_DATASOURCE_JDBC_URL JDBC datasource url used by Flyway to connect to the database. jdbc:postgresql://timeouts-showcase-database:5432/postgres?currentSchema=jobs-service QUARKUS_DATASOURCE_REACTIVE_URL Reactive datasource url used by the Job Service to connect to the database. postgresql://timeouts-showcase-database:5432/postgres?search_path=jobs-service Variable Description Example value JOBS_SERVICE_PERSISTENCE Always an environment variable postgresql quarkus.datasource.username Username to connect to the database. postgres quarkus.datasource.password Password to connect to the database pass quarkus.datasource.jdbc.url JDBC datasource url used by Flyway to connect to the database. jdbc:postgresql://timeouts-showcase-database:5432/postgres?currentSchema=jobs-service quarkus.datasource.reactive.url Reactive datasource url used by the Job Service to connect to the database. postgresql://timeouts-showcase-database:5432/postgres?search_path=jobs-service The timeouts showcase example Quarkus Workflow Project with standalone services, shows how to run a PostgreSQL based Job Service as a Kubernetes deployment. In your local environment you might have to change some of these values to point to your own PostgreSQL database. The Ephemeral persistence mechanism is based on an embedded PostgresSQL database and does not require any external configuration. However, the database is recreated on each service restart, and thus, it must be used only for testing purposes. Variable Description Example value JOBS_SERVICE_PERSISTENCE Configure the persistence mechanism that must be used. ephemeral If the image is started by not configuring any persistence mechanism, the Ephemeral will be defaulted. To configure the Infinispan persistence you must provide these configurations: Using environment variables Using system properties with java like names Variable Description Example value JOBS_SERVICE_PERSISTENCE Configure the persistence mechanism that must be used. infinispan QUARKUS_INFINISPAN_CLIENT_HOSTS Sets the host name/port to connect to. Each one is separated by a semicolon. host1:11222;host2:11222 QUARKUS_INFINISPAN_CLIENT_USE_AUTH Enables or disables authentication. Set it to false when connecting to an Infinispan Server without authentication. The enablement of this parameter depends on your local infinispan installation. If not set, the default value is true. QUARKUS_INFINISPAN_CLIENT_SASL_MECHANISM Sets SASL mechanism used by authentication. For more information about this parameter, see Quarkus Infinispan Client Reference. When the authentication is enabled the default value is DIGEST-MD5. QUARKUS_INFINISPAN_CLIENT_AUTH_REALM Sets realm used by authentication. When the authentication is enabled the default value is default. QUARKUS_INFINISPAN_CLIENT_USERNAME Sets username used by authentication. Use this property if the authentication is enabled. QUARKUS_INFINISPAN_CLIENT_PASSWORD Sets password used by authentication. Use this property if the authentication is enabled. Variable Description Example value JOBS_SERVICE_PERSISTENCE Always an environment variable infinispan quarkus.infinispan-client.hosts Sets the host name/port to connect to. Each one is separated by a semicolon. host1:11222;host2:11222 quarkus.infinispan-client.use-auth Enables or disables authentication. Set it to false when connecting to an Infinispan Server without authentication. The enablement of this parameter depends on your local infinispan installation. If not set, the default value is true. quarkus.infinispan-client.sasl-mechanism Sets SASL mechanism used by authentication. For more information about this parameter, see Quarkus Infinispan Client Reference. When the authentication is enabled the default value is DIGEST-MD5. quarkus.infinispan-client.auth-realm Sets realm used by authentication. When the authentication is enabled the default value is default. quarkus.infinispan-client.username Sets username used by authentication. Use this property if the authentication is enabled. quarkus.infinispan-client.password Sets password used by authentication. Use this property if the authentication is enabled. The Infinispan client configuration parameters that you must configure depends on your local Infinispan service. And thus, the table above shows only a sub-set of all the available options. To see the list of all the options supported by the quarkus infinispan client you must read the Quarkus Infinispan Client Reference. The Job Service provides a Cloud Event based API that can be used to create and delete jobs. This API is useful in deployment scenarios where you want to use an event based communication from the workflow runtime to the Job Service. For the transport of these events you can use the knative eventing system or the kafka messaging system. By default, the Job Service Eventing API is prepared to work in a knative eventing system. This means that by adding no additional configurations parameters, it’ll be able to receive cloud events via the knative eventing system to manage the jobs. However, you must still prepare your knative eventing environment to ensure these events are properly delivered to the Job Service, see knative eventing supporting resources. Finally, the only configuration parameter that you must set, when needed, is to enable the propagation of the Job Status Change events, for example, if you want to register these events in the Data Index Service Using environment variables Using system properties with java like names Variable Description Default value KOGITO_JOBS_SERVICE_HTTP_JOB_STATUS_CHANGE_EVENTS true to establish if the Job Status Change events must be propagated. If you set this value to true you must be sure that the sink binding was created. false Variable Description Default value kogito.jobs-service.http.job-status-change-events true to establish if the Job Status Change events must be propagated. If you set this value to true you must be sure that the sink binding was created. false To ensure the Job Service receives the knative events to manage the jobs, you must create the create job events and delete job events triggers shown in the diagram below. Additionally, if you have enabled the Job Status Change events propagation you must create the sink binding. Figure 1. Knative eventing supporting resources The following snippets shows an example on how you can configure these resources. Consider that these configurations might need to be adjusted to your local kubernetes cluster. We recommend that you visit this example Quarkus Workflow Project with standalone services to see a full setup of all these configurations. Create Job event trigger configuration example apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: jobs-service-postgresql-create-job-trigger spec: broker: default filter: attributes: type: job.create subscriber: ref: apiVersion: v1 kind: Service name: jobs-service-postgresql uri: /v2/jobs/events Delete Job event trigger configuration example apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: jobs-service-postgresql-delete-job-trigger spec: broker: default filter: attributes: type: job.delete subscriber: ref: apiVersion: v1 kind: Service name: jobs-service-postgresql uri: /v2/jobs/events For more information about triggers, see Knative Triggers. Job Service sink binding configuration example apiVersion: sources.knative.dev/v1 kind: SinkBinding metadata: name: jobs-service-postgresql-sb spec: sink: ref: apiVersion: eventing.knative.dev/v1 kind: Broker name: default subject: apiVersion: apps/v1 kind: Deployment selector: matchLabels: app.kubernetes.io/name: jobs-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT For more information about sink bindings, see Knative Sink Bindings. To enable the Job Service Eventing API via the Kafka messaging system you must provide these configurations: Using environment variables Using system properties with java like names Variable Description Default value QUARKUS_PROFILE Set the quarkus profile with the value kafka-events_support to enable the kafka messaging based Job Service Eventing API. By default the kafka eventing api is disabled. KOGITO_JOBS_SERVICE_KAFKA_JOB_STATUS_CHANGE_EVENTS true to establish if the Job Status Change events must be propagated. true when the kafka-events-support profile is set. KAFKA_BOOTSTRAP_SERVERS A comma-separated list of host:port to use for establishing the initial connection to the Kafka cluster. localhost:9092 when the kafka-events-support profile is set. MP_MESSAGING_INCOMING_KOGITO_JOB_SERVICE_JOB_REQUEST_EVENTS_V2_TOPIC Kafka topic for events API incoming events. I general you don’t need to change this value. kogito-job-service-job-request-events-v2 when the kafka-events_support profile is set. MP_MESSAGING_OUTGOING_KOGITO_JOB_SERVICE_JOB_STATUS_EVENTS_TOPIC Kafka topic for job status change outgoing events. I general you don’t need to change this value. kogito-jobs-events when the kafka-events_support profile is set. Variable Description Default value quarkus.profile Set the quarkus profile with the value kafka-events_support to enable the kafka messaging based Job Service Eventing API. By default the kafka eventing api is disabled. kogito.jobs-service.kafka.job-status-change-events true to establish if the Job Status Change events must be propagated. true when the kafka-events-support profile is set. kafka.bootstrap.servers A comma-separated list of host:port to use for establishing the initial connection to the Kafka cluster. localhost:9092 when the kafka-events-support profile is set. mp.messaging.incoming.kogito-job-service-job-request-events-v2.topic Kafka topic for events API incoming events. I general you don’t need to change this value. kogito-job-service-job-request-events-v2 when the kafka-events_support profile is set. mp.messaging.outgoing.kogito-job-service-job-status-events.topic Kafka topic for job status change outgoing events. I general you don’t need to change this value. kogito-jobs-events when the kafka-events_support profile is set. Depending on your Kafka messaging system configuration you might need to apply additional Kafka configurations to connect to the Kafka broker, etc. To see the list of all the supported configurations you must read the Quarkus Apache Kafka Reference Guide. Currently, the Job Service is a singleton service, and thus, just one active instance of the service can be scheduling and executing the jobs. To avoid issues when it is deployed in the cloud, where it is common to eventually have more than one instance deployed, the Job Service supports a leader instance election process. Only the instance that becomes the leader activates the external communication to receive and schedule jobs. All the instances that are not leaders, stay inactive in a wait state and try to become the leader continuously. When a new instance of the service is started, it is not set as a leader at startup time but instead, it starts the process to become one. When an instance that is the leader for any issue stays unresponsive or is shut down, one of the other running instances becomes the leader. Figure 2. Job Service leader election This leader election mechanism uses the underlying persistence backend, which currently is only supported in the PostgreSQL implementation. There is no need for any configuration to support this feature, the only requirement is to have the supported database with the data schema up-to-date as described in the PostgreSQL section. In case the underlying persistence does not support this feature, you must guarantee that just one single instance of the Job Service is running at the same time. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Introduction","component":"serverlessworkflow","version":"1.43.0.Final","name":"core-concepts","url":"/serverlessworkflow/latest/job-services/core-concepts.html","titles":[{"text":"Integration with the Workflows","hash":"integration-with-the-workflows","id":1},{"text":"Jobs life-span","hash":"_jobs_life_span","id":2},{"text":"Executing","hash":"executing","id":3},{"text":"Exposed environment variables","hash":"exposed-environment-variables","id":4},{"text":"Using environment variables","hash":"using-environent-variables","id":5},{"text":"Using system properties with java like names","hash":"using-java-like-system-properties","id":6},{"text":"Global configurations","hash":"job-service-global-configurations","id":7},{"text":"Persistence","hash":"job-service-persistence","id":8},{"text":"PostgreSQL","hash":"job-service-postgresql","id":9},{"text":"Ephemeral","hash":"job-service-ephemeral","id":10},{"text":"Infinispan","hash":"job-service-infinispan","id":11},{"text":"Eventing API","hash":"job-service-eventing-api","id":12},{"text":"Knative eventing","hash":"knative-eventing","id":13},{"text":"Knative eventing supporting resources","hash":"knative-eventing-supporting-resources","id":14},{"text":"Kafka messaging","hash":"kafka-messaging","id":15},{"text":"Leader election","hash":"_leader_election","id":16},{"text":"Found an issue?","hash":"_found_an_issue","id":17}]},"28":{"id":28,"text":"The interaction between the workflows and the Job Service is handled by the different Job Service Quarkus Extensions. Each extension is designed to work with a different communication alternative. For example, you can select if your workflows must interact with the Job Service by sending cloud events over the knative eventing system or the kafka messaging system, or simply by executing direct REST calls. Finally, for the interaction work, you must configure your Quarkus Workflow Project with the extension of your choice. We recommend that you follow this procedure: Identify the communication alternative that best fits your scenario. Be sure that the Job Service is properly configured to support that alternative. This is very important if you want to use knative events or kafka messages to communicate with it. Configure your Quarkus Workflow Project with the corresponding extension. If your workflows are not using timer-based actions, like timeouts, there is no need to add such an extension. To interact with the Job Service by sending cloud events over the knative eventing system you must follow these steps: Be sure that you have read the Consuming and producing events on Knative Eventing guide, and that you have configured the project accordingly. Add the kogito-addons-quarkus-jobs-knative-eventing extension to your Quarkus Workflow Project using any of the following alternatives: Manually Apache Maven Quarkus CLI org.kie.kogito kogito-addons-quarkus-jobs-knative-eventing mvn quarkus:add-extension -Dextensions=\"kogito-addons-quarkus-jobs-knative-eventing\" quarkus extension add kogito-addons-quarkus-jobs-knative-eventing Add the following configurations to the application.properties file of your project. mp.messaging.outgoing.kogito-job-service-job-request-events.connector=quarkus-http mp.messaging.outgoing.kogito-job-service-job-request-events.url=${K_SINK:http://localhost:8280/v2/jobs/events} mp.messaging.outgoing.kogito-job-service-job-request-events.method=POST The K_SINK environment variable is automatically generated by the combination of the knative ecosystem and the SinkBinding definition that will be automatically generated in the kogito.yml file. If this variable is not present, the default value http://localhost:8280/v2/jobs/events is used instead, this can be useful in development environments if you are executing the Job Service as a standalone service. Build your project and locate the automatically generated kogito.yml and knative.yml files in the /target/kubernetes directory of your project, see. mvn clean install Use the generated files to deploy your workflow application in the Kubernetes cluster using the following commands: kubectl apply -f target/kogito.yml kubectl apply -f target/knative.yml You can see a full example of this interaction mode configuration in the Quarkus Workflow Project with standalone services example project. To interact with the Job Service by sending cloud events over the kafka messaging system you must follow these steps: Be sure that you have read the Consuming and producing events with Kafka guide, and you have configured the project accordingly. Add the quarkus-smallrye-reactive-messaging-kafka and kogito-addons-quarkus-jobs-messaging extensions to your Quarkus Workflow Project using any of the following alternatives. Manually Apache Maven Quarkus CLI io.quarkus quarkus-smallrye-reactive-messaging-kafka org.kie.kogito kogito-addons-quarkus-jobs-messaging mvn quarkus:add-extension -Dextensions=\"quarkus-smallrye-reactive-messaging-kafka,kogito-addons-quarkus-jobs-messaging\" quarkus extension add quarkus-smallrye-reactive-messaging-kafka kogito-addons-quarkus-jobs-messaging Add the following configurations to the application.properties file of your project. mp.messaging.outgoing.kogito-job-service-job-request-events.connector=smallrye-kafka mp.messaging.outgoing.kogito-job-service-job-request-events.topic=kogito-job-service-job-request-events-v2 mp.messaging.outgoing.kogito-job-service-job-request-events.value.serializer=org.apache.kafka.common.serialization.StringSerializer Build and deploy your workflow application using any of the available procedures. To interact with the Job Service by executing direct REST calls you must follow these steps: Add the kogito-addons-quarkus-jobs-management extension to your Quarkus Workflow Project using any of the following alternatives. Manually Apache Maven Quarkus CLI org.kie.kogito kogito-addons-quarkus-jobs-management mvn quarkus:add-extension -Dextensions=\"kogito-addons-quarkus-jobs-management\" quarkus extension add kogito-addons-quarkus-jobs-management Add the following configuration to the application.properties file of your project. kogito.jobs-service.url=http://localhost:8280 When you deploy your project in a Kubernetes cluster, you must configure the kogito.jobs-service-url with the cloud URL of the Job Service. In this case, you can also use an environment variable with the name KOGITO_JOBS_SERVICE_URL and pass it to the corresponding container, etc. Build and deploy your workflow application using any of the available procedures. To facilitate the development and testing stage of your workflows, this extension provides an embedded Job Service instance that executes in the same runtime as your workflows, and thus, requires no additional configurations. The only consideration is that it must not be used for production installations. To use this extension you must: Add the kogito-addons-quarkus-jobs-service-embedded extension to your Quarkus Workflow Project using any of the following alternatives. Manually Apache Maven Quarkus CLI org.kie.kogito kogito-addons-quarkus-jobs-service-embedded mvn quarkus:add-extension -Dextensions=\"kogito-addons-quarkus-jobs-management\" quarkus extension add kogito-addons-quarkus-jobs-management Build and deploy your workflow application using any of the available procedures. You can see a full example of Job Service embedded usage in the Quarkus Workflow Project with embedded services example project. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Job Service Quarkus Extensions","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-extensions","url":"/serverlessworkflow/latest/job-services/quarkus-extensions.html","titles":[{"text":"Knative eventing interaction","hash":"kogito-addons-quarkus-jobs-knative-eventing","id":1},{"text":"Kafka messaging interaction","hash":"kogito-addons-quarkus-jobs-messaging","id":2},{"text":"REST call interaction","hash":"kogito-addons-quarkus-jobs-management","id":3},{"text":"Job Service Embedded","hash":"_job_service_embedded","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"29":{"id":29,"text":"This document describes how you can test your integrated workflow application using PostgreSQL persistence. The example described in this document is based on the serverless-workflow-callback-quarkus example application. This document describes the process of launching and testing the artifact that is produced by the Quarkus builds, and verifying the interaction of the artifact with a PostgreSQL database instance. To perform this scenario and verify the service behavior, the following Quarkus annotations and tools are used: @QuarkusIntegrationTest: This annotation is used to launch and test the artifact produced by the Serverless Workflow Quarkus build. For more information, see Testing Quarkus application - Using @QuarkusIntegrationTest in Quarkus documentation. Quarkus Dev Services: This facilitates writing integration tests that need launching services to support the workflow application. For more information, see Testing Quarkus application - launching containers in Quarkus documentation. @QuarkusIntegrationTest works immediately with the additional containers that are launched using Quarkus Dev Services. You can test your workflow application using PostgreSQL persistence. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Workflow application persistence is enabled using PostgreSQL. For more information, see Running workflow service using PostgreSQL. Docker is installed. Procedure Add the required test dependencies to the pom.xml file of your workflow application: Dependencies required for HTTP-based testing in JVM mode io.quarkus quarkus-junit5 test io.rest-assured rest-assured test Add awaitility dependency in pom.xml org.awaitility awaitility test The awaitility dependency allows the test to express the time expectations of an asynchronous system. For more information, see Awaitility website. Check the dependencies of PostgreSQL resources. The Quarkus Dev Services for Databases is enabled when a reactive or JDBC data source extension is present in the workflow application. Ensure that the pom.xml file of your workflow application contains the required dependency for PostgreSQL resources. JDBC persistence add-on dependency org.kie.kogito kogito-addons-quarkus-persistence-jdbc Quarkus JDBC PostgreSQL dependency io.quarkus quarkus-jdbc-postgresql Quarkus Agroal data source dependency io.quarkus quarkus-agroal To run the integration tests, add Apache Maven Failsafe plug-in in the pom.xml file of your workflow application. maven-failsafe-plugin in pom.xml plug-in section maven-failsafe-plugin ${version.failsafe.plugin} org.jboss.logmanager.LogManager ${maven.home} integration-test verify For more information about maven-failsafe-plugin, see Maven Failsafe Plugin documentation. Enable Quarkus Database Dev Services. The additional containers contain a full set of default configurations, including PostgreSQL Docker image name, default user, and default password. The required configuration to link the workflow application with the Quarkus Dev PostgreSQL container is automatically added to the integration test. Quarkus provides the properties such as quarkus.datasource.reactive.url, quarkus.datasource.jdbc.url, quarkus.datasource.username, or quarkus.datasource.password, when you start the container. For more information, see Quarkus Dev Services for Databases in Quarkus documentation. Create a test class and add the test annotations in the test class as shown in the following example: Example integration test annotations in a test class @QuarkusIntegrationTest (1) class CallbackRestIT { (2) static { RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();(3) } @Test void testCallbackRest() { String id = given() (3) .contentType(ContentType.JSON) .accept(ContentType.JSON) .post(\"/callback\") .then() .statusCode(201) .extract() .path(\"id\"); await() (4) .atLeast(1, SECONDS) .atMost(30, SECONDS) .with().pollInterval(1, SECONDS) .untilAsserted(() -> given() .contentType(ContentType.JSON) .accept(ContentType.JSON) .get(\"/callback/{id}\", id) .then() .statusCode(404)); } } 1 Allows launching and testing the artifact that is produced by the Quarkus build. Also, supports testing of a JAR file, a native image, or a container image. 2 Test name ends with 'IT' to identify which test needs to be executed as an integration test. 3 Testing application interactions using REST Assured. 4 await() allows the test to retry the validations until the verifications are declared or until the specified time expectation is expired. Once you specify the required resources and annotations, you can start testing the different interactions with the workflow application as described in Testing your workflow application using REST Assured document. To run the tests, execute the following command: Run the tests mvn clean verify Creating your first workflow service Running a workflow service using PostgreSQL Testing your workflow application using REST Assured Testing a Quarkus application If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"SonataFlow integration test using PostgreSQL","component":"serverlessworkflow","version":"1.43.0.Final","name":"integration-tests-with-postgresql","url":"/serverlessworkflow/latest/persistence/integration-tests-with-postgresql.html","titles":[{"text":"Overview","hash":"con-integration-test-overview","id":1},{"text":"Testing a workflow application using PostgreSQL persistence","hash":"proc-test-sw-application-postgresql","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"30":{"id":30,"text":"This document describes how you can run your workflow application using PostgreSQL persistence. When your workflow execution requires wait states, then running your workflow application with persistence enabled is a recommended approach. For example, when a process reaches a callback or needs to wait for an event, then the execution of the process is paused and the engine takes a snapshot of the workflow data. The snapshot is persisted in the database as a binary format along with process metadata information. The process metadata information includes process ID, process instance ID, and process version. Runtime persistence is used for storing data, which is required to resume the workflow execution of a process instance. Once a process is completed, the related data is removed from the database. This means that only required data to resume the execution is persisted. In SonataFlow, you can enable persistence using add-ons. This document describes the use of the kogito-addons-quarkus-persistence-jdbc add-on, which is based on Java Database Connectivity (JDBC) along with PostgreSQL. The kogito-addons-quarkus-persistence-jdbc add-on also extends on the Quarkus capabilities and you can use the available features directly from Quarkus JDBC support. For more information about Quarkus and JDBC, see Quarkus Datasources. You can also see the serverless-workflow-callback-quarkus example application in GitHub repository. To execute the serverless-workflow-callback-quarkus example application, you can follow the instructions mentioned in the README file. To clone the kogito-example repository, use the following command: Clone kogito-examples repository git clone git@github.com:kiegroup/kogito-examples.git Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Docker is installed. PostgreSQL is installed. For information about PostgreSQL installation and configuration, see PostgreSQL documentation. This document relies on running PostgreSQL as a Docker service, even though PostgreSQL installation is mentioned as a prerequisite. Procedure Add required dependencies to the pom.xml file of your project to use the persistence add-on: JDBC persistence add-on org.kie.kogito kogito-addons-quarkus-persistence-jdbc Quarkus JDBC PostgreSQL io.quarkus quarkus-jdbc-postgresql Quarkus Agroal data source io.quarkus quarkus-agroal Add the following properties to the application.properties file of your project: Persistence property kogito.persistence.type=jdbc Quarkus properties quarkus.datasource.db-kind=postgresql quarkus.datasource.username=postgres quarkus.datasource.password=pass quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/postgres Create PostgreSQL database schema. The persistence add-on uses Flyway to create the database schema. To enable the database schema creation during the runtime startup, you must set the following properties in the application.properties file. quarkus.flyway.migrate-at-start=true quarkus.datasource.db-kind=postgresql You can find more details regarding the PostgreSQL database schema migration in the Flyway migration guide. Optional: To handle the concurrent requests to shared workflow instances, enable the persistence-enabled optimistic locking for concurrency control using the version field in the database. Add kogito.persistence.optimistic.lock=true property in the application.properties file of your project to enable the optimistic locking. Change the version in the workflow file. Example workflow file { \"id\": \"applicantworkflow\", \"name\": \"Applicant Workflow\", \"version\": \"1.0\" } The versioning strategy is used to allow different workflow applications to run different versions of a process at the same time. The different versions of a process share the same database. This is useful when you migrate a process from one version to another. When allowing workflow instances to finish executing, a new version can be deployed using a new workflow application setup. By default, the engine considers the version specified in the workflow file as the current version of the asset. Therefore, you need to manually change the version in the workflow file, making the engine consider the specified version as a new version. As an alternative, you can set the kogito.workflow.version-strategy=project property in the application.properties file of your project. This enables the engine to consider the Maven or Gradle project version as the version of all workflows in the project. For instance, when you release a new version of your Maven project, the version in the workflow file is automatically updated. The following table serves as a quick reference of commonly used persistence configuration properties supported in SonataFlow. You can define these properties in the application.properties file of your project. Table 1. Persistence properties Configuration property Type Default value kogito.persistence.type string kogito.persistence.query.timeout.millis long 10000 kogito.persistence.optimistic.lock boolean false kogito.workflow.version-strategy string workflow SonataFlow integration test using PostgreSQL Migrating Your PostgreSQL Database with a Kogito upgrade If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Running a Quarkus Workflow Application using PostgreSQL","component":"serverlessworkflow","version":"1.43.0.Final","name":"persistence-with-postgresql","url":"/serverlessworkflow/latest/persistence/persistence-with-postgresql.html","titles":[{"text":"Persistence configuration quick reference","hash":"ref-postgresql-persistence-configuration","id":1},{"text":"Additional resources","hash":"postgresql-persistence-additional-resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"31":{"id":31,"text":"When working with SonataFlow PostgreSQL database, you can either opt to use Flyway or manually upgrade your database via DDL scripts. When you upgrade your SonataFlow version, by default it won’t pick up the latest changes available. Kogito provides a mechanism for migrating your database while updating the Kogito version using the following Flyway properties (default value is false, not upgrade): quarkus.flyway.migrate-at-start=true quarkus.datasource.db-kind=postgresql This will create a schema history table flyway_schema_history in your database to track the version of each database, recording in it every versioned migration file applied to build that version. When using kogito-addons-persistence-jdbc, it is mandatory to set the quarkus.datasource.db-kind property, so that Flyway can locate the appropriate scripts for the database. If you want to migrate manually you can use the Flyway migration CLI tool. Download Flyway migration command-line tool from the Download Flyway Community Edition website. Add the following properties in the /conf/flyway.conf file: flyway.url=jdbc:postgresql://localhost:5432/foobardb flyway.user=foo flyway.password=bar You can specify these options with commands as well. The Flyway CLI will prompt for the username and password if they are missing in the configuration. $ flyway migrate -url=jdbc:postgresql://localhost:5432/foobardb -user=foo -password=bar Download the Kogito DDL zip from this link, choose the correct version, extract the files and use the scripts from the postgresql folder. You can specify the location of the SQL files that need to be migrated using the flyway.locations option. For example, flyway.locations=classpath:com.mycomp.migration,database/migrations,filesystem:/sql-migrations,s3:migrationsBucket,gcs:migrationsBucket You can use the provided SQL scripts in the zip file to migrate the database by executing them one by one. You can find the Kogito DDL scripts by visiting this link. Download the zip file of the scripts from the needed version for the Kogito upgrade. Extract the files. Execute the sql files from postgresql folder. > psql -H host -U username -d database_name -a -f create_table.sql In order to apply migrations to an existing schema. It is necessary to establish the baseline from where Flyway should start executing new migrations. That means, in case your schema already contains a structure and from now on, new changes provided by Kogito should be applied via Flyway integration. In Flyway terms, only migrations above baselineVersion will then be applied. Using below properties you can initialize flyway schema table. quarkus.flyway.baseline-on-migrate=true quarkus.flyway.baseline-version=1.32.0 $ flyway -baselineOnMigrate=\"true\" -baselineVersion=\"1.32.0\" migrate Be careful when enabling this feature as it removes the safety net which ensures that Flyway does not migrate the wrong database in case of a configuration mistake. Baseline Migrations Documentation. Existing Database Setup Documentation. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"PostgreSQL Database Migration","component":"serverlessworkflow","version":"1.43.0.Final","name":"postgresql-flyway-migration","url":"/serverlessworkflow/latest/persistence/postgresql-flyway-migration.html","titles":[{"text":"How to migrate","hash":"_how_to_migrate","id":1},{"text":"Migrate using Flyway Config","hash":"_migrate_using_flyway_config","id":2},{"text":"Migrate using Flyway CLI","hash":"_migrate_using_flyway_cli","id":3},{"text":"Manually executing scripts","hash":"manually-executing-scripts","id":4},{"text":"Baseline migration","hash":"_baseline_migration","id":5},{"text":"Baseline using Quarkus Configuration:","hash":"_baseline_using_quarkus_configuration","id":6},{"text":"Baseline using Flyway CLI:","hash":"_baseline_using_flyway_cli","id":7},{"text":"More details on Flyway migrations","hash":"_more_details_on_flyway_migrations","id":8},{"text":"Found an issue?","hash":"_found_an_issue","id":9}]},"32":{"id":32,"text":"This document describes the supported authentication types and how to configure them to access the OpenAPI service operations that are used in workflows. For information about orchestrating and configuring the OpenAPI based services, you must see the following documents: Orchestrating the OpenAPI services Configuring the OpenAPI services endpoints The OpenAPI support for a workflow is based on the Quarkus OpenAPI generator extension. For more information about Quarkus OpenAPI generator, see Quarkus - OpenAPI Generator. According to the OpenAPI specification, you can secure an OpenAPI service operation by using a security scheme. These security schemes are defined in the Security Scheme Object definitions of the OpenAPI specification file. The security scheme type defined for an OpenAPI service operation is used to identify the required configuration, when a workflow invokes the same operation. The following shows the example of security scheme definitions: Example security-example.json file \"securitySchemes\": { \"http-basic-example\": { \"type\": \"http\", \"scheme\": \"basic\" } \"api-key-example\": { \"type\": \"apiKey\", \"name\": \"my-example-key\", \"in\": \"header\" } } If the OpenAPI specification file contains securitySchemes definitions, but not the Security Requirement Object definitions, the generator is configured to create the security requirement objects by default. In this case, for all the operations without a security requirement, the default one is created. Note that the property value must match the name of a security scheme object definition, such as http-basic-example or api-key-example in the previous securitySchemes list. Description Property key Example Create security for the referenced security scheme quarkus.openapi-generator.codegen.default.security.scheme quarkus.openapi-generator.codegen.default.security.scheme=http-basic-example To configure the credentials that are used to access the secured OpenAPI service operations and related parameters, you must use the application properties that are related to the security schemes. To compose the configuration keys, use the following format: Format for configuration keys quarkus.openapi-generator.[filename].auth.[security_scheme_name].[auth_property_name] The previous format includes the following parameters: filename is the sanitized name of the file containing the OpenAPI specification, such as security_example_json. security_scheme_name is the sanitized name of the security scheme object definition in the OpenAPI specification file, such as http_basic_example or api_key_example. auth_property_name is the name of the property to configure, such as username. This property depends on the defined security scheme type. To sanitize the previous parameters, you can follow the Environment Variables Mapping Rules from Microprofile Configuration. In the mapping rules, any non-alphabetic character is replaced by an underscore (_). The security schemes defined in an OpenAPI specification file are global to all the operations that are available in the same file. This means that the configurations set for a particular security scheme also apply to the other secured operations. You can use the alternatives defined in the Quarkus configuration reference guide to configure the required properties. A common usage is to define environment variables to set the authentication secrets. For a complete example, see Orchestration of third-party services using OAuth 2.0 authentication. The following example shows security-example.json file, defining a sayHelloBasic operation, which is secured using the http-basic-example security scheme and supported configurations: Example security-example.json file for HTTP authentication { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Http Basic Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-http-basic\": { \"get\": { \"operationId\": \"sayHelloBasic\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"http-basic-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"http-basic-example\": { \"type\": \"http\", \"scheme\": \"basic\" } } } } The following table shows the supported configurations that are used to secure the sayHelloBasic operation in the previous example: Table 1. Supported configuration examples for HTTP authentication Description Property key Example Username credentials quarkus.openapi-generator.[filename].auth.[security_scheme_name].username quarkus.openapi-generator.security_example_json.auth.http_basic_example.username=MY_USER Password credentials quarkus.openapi-generator.[filename].auth.[security_scheme_name].password quarkus.openapi-generator.security_example_json.auth.http_basic_example.password=MY_PASSWD The following example shows security-example.json file, defining a sayHelloBearer operation, which is secured using the http-bearer-example security scheme and supported configurations: Example security-example.json file for Bearer Token authentication { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Http Bearer Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-http-bearer\": { \"get\": { \"operationId\": \"sayHelloBearer\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"http-bearer-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"http-bearer-example\": { \"type\": \"http\", \"scheme\": \"bearer\" } } } } The following table shows the supported configurations that are used to secure the sayHelloBearer operation in the previous example: Table 2. Supported configuration examples for Bearer Token authentication Description Property key Example Bearer Token quarkus.openapi-generator.[filename].auth.[security_scheme_name].bearer-token quarkus.openapi-generator.security_example_json.auth.http_bearer_example.bearer-token=MY_TOKEN The following example shows security-example.json file, defining a sayHelloApiKey operation, which is secured using the api-key-example security scheme and supported configurations: Example security-example.json file for API key authentication { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Api Key Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-api-key\": { \"get\": { \"operationId\": \"sayHelloApiKey\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"api-key-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"api-key-example\": { \"type\": \"apiKey\", \"name\": \"api-key-name\", \"in\": \"header\" } } } } The following table shows the supported configurations that are used to secure the sayHelloApiKey operation in the previous example: Table 3. Supported configuration examples for API key authentication Description Property key Example API Key quarkus.openapi-generator.[filename].auth.[security_scheme_name].api-key quarkus.openapi-generator.security_example_json.auth.api_key_example.api-key=MY_KEY The API key scheme type contains an additional name property that configures the key name to use when the Open API service is invoked. Also, the format to pass the key depends on the value of the in property. When the value is header, the key is passed as an HTTP request parameter. When the value is cookie, the key is passed as an HTTP cookie. When the value is query, the key is passed as an HTTP query parameter. However, this is automatically managed without additional configurations. Following the previous example, the API key is passed as an http request parameter, such as api-key-name with the value MY_KEY. The following example shows security-example.json file, defining a sayHelloOauth2 operation, which is secured using the oauth-example security scheme and supported configurations: Example security-example.json file for OAuth 2.0 authentication { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Oauth2 Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-oauth2\": { \"get\": { \"operationId\": \"sayHelloOauth2\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"oauth-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"oauth-example\": { \"type\": \"oauth2\", \"flows\": { \"clientCredentials\": { \"authorizationUrl\": \"https://example.com/oauth\", \"tokenUrl\": \"https://example.com/oauth/token\", \"scopes\": { } } } } } } } Unlike the http basic, http bearer, and apiKey security schemes, the OAuth 2.0 authentication relies on the Quarkus OpenId Connect (OIDC) and OAuth 2.0 Clients and Filters. Therefore, you must add the Quarkus OIDC Client Filter Extension to your project as shown in the following example: Example of adding Quarkus OIDC client filter extension io.quarkus quarkus-oidc-client-filter You can also add the Quarkus OIDC client filter extension using the Quarkus CLI as shown in the following example: Add Quarkus OIDC client filter extension $ quarkus extension add quarkus-oidc-client-filter The token management operations are delegated to a Quarkus OidcClient using a simple naming convention. In the previous example, the token management operations that are used to access the sayHelloOauth2 operation are delegated to the OidcClient that is oauth_example. You can configure the OidcClient as shown in the following example: Example of configuring an OidcClient quarkus.oidc-client.oauth_example.auth-server-url=https://example.com/oauth quarkus.oidc-client.oauth_example.token-path=/tokens quarkus.oidc-client.oauth_example.discovery-enabled=false quarkus.oidc-client.oauth_example.client-id=kogito-app quarkus.oidc-client.oauth_example.grant.type=client quarkus.oidc-client.oauth_example.credentials.client-secret.method=basic quarkus.oidc-client.oauth_example.credentials.client-secret.value=secret The suffix (quarkus.oidc-client.oauth_example) used in the previous configuration example is exclusive for the security scheme defined in the OpenAPI service specification file and the scheme name is sanitized using the mapping rules. You can use the authorization token propagation with OpenAPI operations that are secured using the oauth2 or http bearer security scheme type. When the configuration is set, you can propagate the authorization tokens that are passed to your workflow during the workflow creation. The propagations must be configured individually for each security scheme, which enables you to configure the invocations that must propagate the token. Similar to other security scheme configurations, the token propagation applies to all the OpenAPI operations that are secured using the same security scheme. The following example shows security-example.json file, defining a sayHelloOauth2 operation, which is secured using the oauth-example security scheme and supported configurations: Example security-example.json file for authorization token propagation { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Oauth2 Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-oauth2\": { \"get\": { \"operationId\": \"sayHelloOauth2\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"oauth-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"oauth-example\": { \"type\": \"oauth2\", \"flows\": { \"clientCredentials\": { \"authorizationUrl\": \"https://example.com/oauth\", \"tokenUrl\": \"https://example.com/oauth/token\", \"scopes\": { } } } } } } } The following table shows the supported configurations that are used to secure the sayHelloOauth2 operation in the previous example: Table 4. Supported configuration examples for token propagation Property key Example quarkus.openapi-generator.[filename].auth.[security_scheme_name].token-propagation=[true,false] quarkus.openapi-generator.security_example_json.auth.oauth_example.token-propagation=true Enables the token propagation for all the operations that are secured using the oauth-example scheme in the security-example.json file. By default, the standard HTTP authorization header is propagated. quarkus.openapi-generator.[filename].auth.[security_scheme_name].header-name=[http_header_name] quarkus.openapi-generator.security_example_json.auth.oauth_example.header-name=MyHeaderName States that the authorization token is read from the MyHeaderName header instead of the standard HTTP authorization header. The authorization tokens are propagated till the workflow does not reach its waiting state. When the same workflow is resumed, the tokens will not be propagated. Orchestration of third-party services using OAuth 2.0 authentication in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Authentication for OpenAPI services in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"authention-support-for-openapi-services","url":"/serverlessworkflow/latest/security/authention-support-for-openapi-services.html","titles":[{"text":"Overview of OpenAPI services authentication","hash":"con-openapi-services-authentication","id":1},{"text":"Example of basic HTTP authentication","hash":"ref-example-http-authentication","id":2},{"text":"Example of Bearer Token authentication","hash":"ref-example-bearer-authentication","id":3},{"text":"Example of API key authentication","hash":"ref-example-api-key-authentication","id":4},{"text":"Example of OAuth 2.0 authentication","hash":"ref-example-oauth-authentication","id":5},{"text":"Example of authorization token propagation","hash":"ref-authorization-token-propagation","id":6},{"text":"Additional resources","hash":"_additional_resources","id":7},{"text":"Found an issue?","hash":"_found_an_issue","id":8}]},"33":{"id":33,"text":"This document describes the example of how you can implement and configure a workflow that orchestrates the interaction with an OAuth 2.0 secured REST service. For more information about orchestrating and configuring OpenAPI services, see Orchestrating the OpenAPI services, Configuring the OpenAPI services endpoints, and Authentication for OpenAPI services in SonataFlow. To understand the example of OAuth 2.0 orchestration in a workflow, you can use the serverless-workflow-oauth2-orchestration-quarkus example application. This example application implements a workflow related to currency exchange calculations, which orchestrates an OAuth 2.0 secured REST service provided by Acme Financial Services. Suppose you have a set of applications that must resolve the currency exchange calculations as their regular operations, and to resolve the currency exchange calculations, you need to get the accurate exchange rates. For this purpose, you can use the Acme Financial Services. When you use the Acme Financial Services, you can query the exchange rates using their OAuth 2.0 secured services, which you can access using the granted credentials. However, you do not want to expose the services provided by Acme to the applications. In this case, you can implement a workflow that resolves the following aspects: Orchestration with services provided by Acme and currency exchange calculations. Authentication requirements to access the services provided by Acme. Potential vendor lock-in problems, in case you want to change the provider in future. Domain-specific validations and optimizations. The further sections describes how an end-to-end solution is created in the serverless-workflow-oauth2-orchestration-quarkus example application. To see the source code of serverless-workflow-oauth2-orchestration-quarkus example application, you can clone the kogito-examples repository in GitHub and select the serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus directory. The serverless-workflow-oauth2-orchestration-quarkus example application contains the following services to compose the solution: currency-exchange-workflow: Workflow that implements the currency exchange calculations. acme-financial-service: REST service that provides the exchange rates. acme-oauth2-server: Keycloak server that secures the REST services from Acme Financial Services. The following figure describes the architecture of the solution in serverless-workflow-oauth2-orchestration-quarkus example application: Figure 1. Example architecture diagram of the solution The application creates a workflow instance to calculate the currency exchange. The workflow executes an OpenAPI operation to get the exchange rates information. Authorizations are produced to validate the access. The workflow receives the exchange rates information and executes the calculations. The execution of workflow is finalized by sending the result to the application. The workflow automatically manages the interactions with the OAuth 2.0 server. Also, you must configure a Quarkus OpenId Connect Client (OIDC). For more information, see Configuration in serverless-workflow-oauth2-orchestration-quarkus example application. currency-exchange-workflow The currency-exchange-workflow in serverless-workflow-oauth2-orchestration-quarkus example application is a workflow that implements the currency exchange calculations. The following figure describes the workflow in currency-exchange-workflow: Figure 2. Example currency-exchange-workflow First, validate the input data. Check the validation results: If validation is successful, then transition to (3). If validation is unsuccessful, then no transition and finalize the workflow with the error execution status. Send REST request to acme-financial-service to retrieve the exchange rates: If the request is successful, then transition to (4). If the request is unsuccessful, then transition to (6). Calculate the currency exchange and transition to (5). Set the successful execution status and finalize the currency-exchange-workflow execution. Set the error execution status and finalize the currency-exchange-workflow execution. The following currency-exchange-workflow.sw.json file shows the specification of the currency-exchange-workflow: currency-exchange-workflow.sw.json file { \"id\": \"currency_exchange_workflow\", \"version\": \"1.0\", \"name\": \"Currency Exchange SW\", \"dataInputSchema\": \"currency-exchange-workflow-schema.json\", \"start\": \"ValidateInputs\", \"functions\": [ { \"name\": \"validateInputs\", \"type\": \"custom\", \"operation\": \"service:org.kie.kogito.examples.ExchangeWorkflowHelper::validateInputs\" }, { \"name\": \"getExchangeRate\", \"type\": \"rest\", \"operation\": \"specs/acme-financial-service.yml#exchangeRate\" }, { \"name\": \"calculateExchange\", \"type\": \"expression\", \"operation\": \"${ { calculateExchangeResult: .amount * .exchangeRate } }\" } ], \"errors\": [ { \"name\": \"service_error\", \"code\": \"java.lang.Exception\" } ], \"states\": [ { \"name\": \"ValidateInputs\", (1) \"type\": \"operation\", \"actions\": [ { \"name\": \"validateInputsAction\", \"functionRef\": { \"refName\": \"validateInputs\", \"arguments\": { \"currencyFrom\": \"${ .currencyFrom }\", \"currencyTo\": \"${ .currencyTo }\", \"amount\": \"${ .amount }\", \"exchangeDate\": \"${ .exchangeDate }\" } } } ], \"transition\": \"CheckValidation\" }, { \"name\": \"CheckValidation\", (2) \"type\": \"switch\", \"dataConditions\": [ { \"condition\": \"${ .executionStatus == \\\"ERROR\\\" }\", \"end\": true } ], \"defaultCondition\": { \"transition\": \"GetExchangeRate\" } }, { \"name\": \"GetExchangeRate\", (3) \"type\": \"operation\", \"actions\": [ { \"name\": \"getExchangeRateAction\", \"functionRef\": { \"refName\": \"getExchangeRate\", \"arguments\": { \"currencyFrom\": \"${ .currencyFrom }\", \"currencyTo\": \"${ .currencyTo }\", \"exchangeDate\": \"${ .exchangeDate }\" } }, \"actionDataFilter\": { \"results\": \"${ {exchangeRate: .rate} }\" } } ], \"transition\": \"CalculateExchange\", \"onErrors\": [ { \"errorRef\": \"service_error\", \"transition\": \"EndWithError\" } ] }, { \"name\": \"CalculateExchange\", (4) \"type\": \"operation\", \"actions\": [ { \"name\": \"calculateExchangeAction\", \"functionRef\": { \"refName\": \"calculateExchange\" }, \"actionDataFilter\": { \"results\": \"${ {result: .calculateExchangeResult} }\" } } ], \"transition\": \"EndSuccessful\" }, { \"name\": \"EndWithError\", (5) \"type\": \"inject\", \"data\": { \"executionStatus\": \"ERROR\", \"executionStatusMessage\": \"Execution failed: The acme-financial-service invocation has failed, check that the service is running and that you have configured the OAuth2 client properly\" }, \"end\": true }, { \"name\": \"EndSuccessful\", (6) \"type\": \"inject\", \"data\": { \"executionStatus\": \"OK\", \"executionStatusMessage\": \"Execution successful\" }, \"end\": true } ] } 1 ValidateInputs state executes the validateInputs function to validate the input data. 2 CheckValidation state determines the next state to go by evaluating the validation results. 3 GetExchangeRate state executes the getExchangeRate function to retrieve the exchange rate from the remote server. 4 CalculateExchange state executes the calculateExchange function to calculate the currency exchange. 5 EndWithError state finalizes the workflow with an ERROR. 6 EndSuccessful state finalizes the workflow with successful OK status. The validateInputs function is used to execute the custom Java processing as part of the workflow. For more information about custom functions, see Serverless Workflow specification. The following is an example of validateInputs function definition: Example validateInputs function definition { \"name\": \"validateInputs\", (1) \"type\": \"custom\", (2) \"operation\": \"service:org.kie.kogito.examples.ExchangeWorkflowHelper::validateInputs\" (3) } 1 validateInputs function declaration. 2 custom type that enables you to use your own Java class to implement a function. 3 Specifies that the function is implemented by the method validateIntpus in the org.kie.kogito.examples.ExchangeWorkflowHelper Java class. To implement a custom function, you must create a Java class such as ExchangeWorkflowHelper in your project: Example ExchangeWorkflowHelper.java file package org.kie.kogito.examples; import javax.enterprise.context.ApplicationScoped; @ApplicationScoped public class ExchangeWorkflowHelper { public ValidationResult validateInputs(String currencyFrom, String currencyTo, double amount, String exchangeDate) { // Implement your custom Java processing here and return // a Java POJO to the Serverless Workflow. if (!good) { return new ValidationResult(\"ERROR\", \"Not good!\"); } return new ValidationResult(); } public static class ValidationResult { private String executionStatus; private String executionStatusMessage; // getters, setters, etc. } } To access the acme-financial-service REST service in currency-exchange-workflow, a workflow function such as getExchangeRate is used. For more information about using functions for REST services, see Serverless Workflow specification. Following is the function definition of getExchangeRate: Example getExchangeRate function definition { \"name\": \"getExchangeRate\", (1) \"type\": \"rest\", \"operation\": \"specs/acme-financial-service.yml#exchangeRate\" (2) } 1 getExchangeRate function declaration. 2 Specifies that the function is implemented by the exchangeRate operation in the acme-financial-service.yml file. For the previous configuration, the acme-financial-service.yml file must be located in the src/main/resources/specs directory of the project. In order to filter the information, which must be returned to the currency-exchange-workflow, an actionDataFilter is used: Example actionDataFilter to pass the getExchangeRate results \"actionDataFilter\": { \"results\": \"${ {exchangeRate: .rate} }\" (1) } 1 Merge the value of the rate property to the exchangeRate workflow data property. The value of the rate property is retrieved from the acme-financial-service invocation result. For more information about action data filters, see Action data filters in Serverless Workflow specification. To calculate the currency exchange rates in currency-exchange-workflow, a function named calculateExchange is used: Example calculateExchange function definition { \"name\": \"calculateExchange\", (1) \"type\": \"expression\", (2) \"operation\": \"${ { calculateExchangeResult: .amount * .exchangeRate } }\" (3) } 1 calculateExchange function declaration. 2 expression type that enables you to use an expression to implement a function. 3 Specifies that the function returns a JSON object with a calculateExchangeResult property, containing the calculation. For more information about using functions for expression evaluation, see Serverless Workflow specification. Similar to getExchangeRate to filter the information, which must be returned to the currency-exchange-workflow, an actionDataFilter is used: Example actionDataFilter to pass the calculateExchange results: \"actionDataFilter\": { \"results\": \"${ {result: .calculateExchangeResult} }\" (1) } 1 Merge the value of the calculateExchangeResult property to the result workflow data property. The value of the calculateExchangeResult property is retrieved from the expression result. acme-financial-service The acme-financial-service in serverless-workflow-oauth2-orchestration-quarkus example application is a REST service that provides the exchange rates. Following is the OpenAPI specification that defines the acme-financial-service: Example acme-financial-service.yml OpenAPI specification --- openapi: 3.0.3 info: title: Acme Financial Service API version: 1.0.1 paths: /financial-service/exchange-rate: (1) get: tags: - Acme Financial Resource operationId: exchangeRate parameters: (2) - name: currencyFrom in: query schema: type: string - name: currencyTo in: query schema: type: string - name: exchangeDate in: query schema: type: string responses: (3) \"200\": description: OK content: (4) application/json: schema: $ref: '#/components/schemas/ExchangeRateResult' security: - acme-financial-oauth: [ ] (5) components: schemas: ExchangeRateResult: (6) type: object properties: rate: format: double type: number securitySchemes: acme-financial-oauth: (7) type: oauth2 (8) flows: clientCredentials: (9) authorizationUrl: http://localhost:8281/auth/realms/kogito/protocol/openid-connect/auth tokenUrl: http://localhost:8281/auth/realms/kogito/protocol/openid-connect/token scopes: { } 1 REST path to access the exchangeRate operation in the remote server. 2 Parameter of the exchangeRate operation. 3 Responses of the exchangeRate operation. 4 Response type and data exchange format. 5 Specifies that the exchangeRate operation is secured using the acme-financial-oauth security scheme. 6 Response type specification. 7 Specification of the acme-financial-oauth security scheme. 8 Security scheme type. The security scheme type indicates that you must configure a Quarkus OpenId Connect Client (OIDC) using acme_financial_oauth name to execute the operation. 9 Authentication flow and related information. For more information about the acme-financial-service implementation, see acme-financial-service in serverless-workflow-oauth2-orchestration-quarkus example application. The configuration for the workflow used in serverless-workflow-oauth2-orchestration-quarkus example application includes defining required properties in application.properties file as shown in the following example: Example application.properties file configuration quarkus.openapi-generator.codegen.spec.acme_financial_service_yml.base-package=com.acme (1) quarkus.rest-client.acme_financial_service_yml.url=http://localhost:8483 (2) quarkus.oidc-client.acme_financial_oauth.discovery-enabled=false (3) quarkus.oidc-client.acme_financial_oauth.auth-server-url=http://localhost:8281/auth/realms/kogito/protocol/openid-connect/auth (4) quarkus.oidc-client.acme_financial_oauth.token-path=http://localhost:8281/auth/realms/kogito/protocol/openid-connect/token (5) quarkus.oidc-client.acme_financial_oauth.client-id=kogito-app (6) quarkus.oidc-client.acme_financial_oauth.grant.type=client quarkus.oidc-client.acme_financial_oauth.credentials.client-secret.method=basic (7) quarkus.oidc-client.acme_financial_oauth.credentials.client-secret.value=secret (8) 1 Package name for automatically generated classes that implement the access to all operations defined in the acme-financial-service.yml file. 2 Root URL to access all operations defined in the acme-financial-service.yml file. For the exchangeRate operation, a URL such as http://localhost:8483/financial-service/exchange-rate is automatically generated. 3 Disables the OAuth 2.0 server endpoints discovery as the endpoints provided in the acme-financial-service-yml file are used instead. 4 Authentication URL of the OAuth 2.0 server. 5 Relative path or URL of the OAuth 2.0 token endpoint, which allocates access and refreshes tokens. 6 Client ID to identify the workflow against the authorization service, such as kogito-app. This identifier must be provided by Acme. 7 Method that is used at the time of sending the client-secret for the authentications when the client grant type is used. 8 client-secret to authenticate the workflow against the authorization service when the client grant type is used. This secret must be provided by Acme. To configure the Quarkus OpenId Connect Client (OIDC) for acme_financial_service_oauth service, you must follow the rules described in Example of OAuth 2.0 authentication. Also, the particular attributes depend on the OAuth 2.0 server and authorization flow to use. You can get the information about the OAuth 2.0 server and authorization flow from the acme-financial-service.yml file. Also, you can use the alternatives defined in the Quarkus configuration reference guide to configure the properties in application.properties file. You can define environment variables to set the authentication secrets, and you can use the Quarkus Credentials Provider framework. Once you clone the serverless-workflow-oauth2-orchestration-quarkus example application from GitHub repository, you can run the example application. Prerequisites Java 11+ is installed. Maven 3.8.6 or later is installed. Docker 20.10.7 or later is installed. (Optional) Docker compose 1.27.2 or later is installed. Procedure In a command terminal, clone the kogito-examples repository and navigate to the cloned directory: Clone kogito-examples repository and navigate to the directory git clone https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus Run the following command to build the example application using Apache Maven: Build the example application mvn clean install In a separate command terminal window, start the Keycloak server: Start the Keycloak server cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/scripts ./startKeycloak.sh Alternatively, you can start the Docker Compose using the following command: Start Docker Compose cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/docker-compose docker-compose up In a separate command terminal window, navigate to the acme-financial-service directory and start the Quarkus application of Acme Financial Service: Start Acme Financial Service cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/acme-financial-service java -jar target/quarkus-app/quarkus-run.jar In a separate command terminal window, navigate to the currency-exchange-workflow directory and start the Quarkus application of currency exchange workflow: Start currency exchange workflow cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/currency-exchange-workflow java -jar target/quarkus-app/quarkus-run.jar When all the services are running, use the following curl commands to run the currency-exchange-workflow: The following is an example of successful execution when calculating the currency exchange from EUR to USD: Example request Example response curl -X 'POST' \\ 'http://localhost:8080/currency_exchange_workflow' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"currencyFrom\": \"EUR\", \"currencyTo\": \"USD\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0 }' { \"id\": \"399ce304-037c-486d-b4bf-1564baf907a1\", \"workflowdata\": { \"currencyFrom\": \"EUR\", \"currencyTo\": \"USD\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0, \"executionStatus\": \"OK\", \"executionStatusMessage\": \"Execution successful\", \"exchangeRate\": 1.0578, \"result\": 2.1156 } } The following is an example of an unsupported currency error when calculating the currency exchange from EUR to MXN: Example request Example response curl -X 'POST' \\ 'http://localhost:8080/currency_exchange_workflow' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"currencyFrom\": \"EUR\", \"currencyTo\": \"MXN\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0 }' { \"id\": \"e0e7708d-c82c-47d7-9354-09ccd1e972bb\", \"workflowdata\": { \"currencyFrom\": \"EUR\", \"currencyTo\": \"MXN\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2, \"executionStatus\": \"ERROR\", \"executionStatusMessage\": \"Invalid currencyTo: MXN, only the following currencies are supported [EUR, USD, JPY, GBP, CAD, BRL, AUD]\", \"exchangeRate\": null } } In the previous examples, the currencies supported by the currency-exchange-workflow include EUR, USD, JPY, GBP, CAD, BRL, and AUD. However, the acme-financial-service REST service can resolve any type of currency exchange. This is an example of a workflow implementing the intermediate data filtering, transforming, and validations. The following is an example of the occurrence of unexpected errors when accessing acme-financial-service: Before you launch the command, you must go to the terminal window where you started the acme-financial-service and stop the service using CTRL+C. Example request Example response curl -X 'POST' \\ 'http://localhost:8080/currency_exchange_workflow' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"currencyFrom\": \"EUR\", \"currencyTo\": \"USD\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0 }' { \"id\": \"0044ffa0-7b2b-4fdc-af60-cd98c6bd3ade\", \"workflowdata\": { \"currencyFrom\": \"EUR\", \"currencyTo\": \"USD\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0, \"executionStatus\": \"ERROR\", \"executionStatusMessage\": \"Execution failed: The acme-financial-service invocation has failed, check that the service is running and that you have configured the OAuth2 client properly\", \"exchangeRate\": null } } In this example the error indicates that it was not possible to contact the acme-financial-service. Orchestrating the OpenAPI services If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Orchestration of third-party services using OAuth 2.0 authentication","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestrating-third-party-services-with-oauth2","url":"/serverlessworkflow/latest/security/orchestrating-third-party-services-with-oauth2.html","titles":[{"text":"Example of OAuth 2.0 orchestration in a workflow","hash":"ref-example-oauth2-orchestration","id":1},{"text":"Configuration in serverless-workflow-oauth2-orchestration-quarkus example application","hash":"con-example-sw-configuration","id":2},{"text":"Running the example application","hash":"proc-run-example-application","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"34":{"id":34,"text":"This document describes how you can configure OpenAPI service endpoints in SonataFlow. SonataFlow leverages MicroProfile REST Client to invoke OpenAPI services. Therefore, you can configure the OpenAPI services by following the MicroProfile Config specification. For the list of properties to configure in the MicroProfile REST Client specification, see Support for MicroProfile Config in MicroProfile REST Client documentation. SonataFlow follows the strategy defined in the kogito.sw.operationIdStrategy property to generate the REST Client. The possible values of the kogito.sw.operationIdStrategy property include: FILE_NAME(Default value): SonataFlow uses the configuration key based on the OpenAPI document file name as shown in the following example: Example property quarkus.rest-client.stock_portfolio_svc_yaml.url=http://localhost:8282/ In the previous example, SonataFlow uses stock_portfolio_svc_yaml as configuration key as the OpenAPI document is available at src/main/resources/openapi/stock-portfolio-svc.yaml. FULL_URI: SonataFlow uses the full URI path as configuration key as shown in the following example: Example Serverless Workflow { \"id\": \"myworkflow\", \"functions\": [ { \"name\": \"myfunction\", \"operation\": \"https://my.remote.host/apicatalog/apis/123/document\" (1) } ] ... } 1 URI path of the OpenAPI document Example property quarkus.rest-client.apicatalog_apis_123_document.url=http://localhost:8282/ In the previous example, SonataFlow uses apicatalog_apis_123_document as configuration key. FUNCTION_NAME: SonataFlow uses the workflow ID and the function name that references the OpenAPI document as shown in the following examples: Example Serverless Workflow { \"id\": \"myworkflow\", \"functions\": [ { \"name\": \"myfunction\", \"operation\": \"https://my.remote.host/apicatalog/apis/123/document\" } ] ... } Example property quarkus.rest-client.myworkflow_myfunction.url=http://localhost:8282/ In the previous example, SonataFlow uses \"myworkflow_myfunction\" as configuration key. SPEC_TITLE: SonataFlow uses the value of info.title in the OpenAPI document as shown in the following examples: Example OpenAPI document --- openapi: 3.0.3 info: title: stock-service API version: 2.0.0-SNAPSHOT paths: /stock-price/{symbol}: ... Example property quarkus.rest-client.stock-service_API.url=http://localhost:8282/ In the previous example, SonataFlow uses stock-service_API as configuration key. A Kubernetes service endpoint can be used as a service URL if the target service is within the same cluster, such as http://myservice.mynamespace.cluster.svc.local. As an alternative to kogito.sw.operationIdStrategy, you can assign an alias name to an URI by using workflow-uri-definitions custom extension. Then you can use that alias as configuration key and in function definitions. Example workflow \"extensions\" : [ { \"extensionid\": \"workflow-uri-definitions\", \"definitions\": { \"remoteCatalog\": \"https://my.remote.host/apicatalog/apis/123/document\", } } ], \"functions\": [ { \"name\": \"operation1\", \"operation\": \"remoteCatalog#operation1\" }, { \"name\": \"operation2\", \"operation\": \"remoteCatalog#operation2\" } ] Example property quarkus.rest-client.remoteCatalog.url=http://localhost:8282/ In the previous example, SonataFlow uses remoteCatalog as configuration key. You can use different MicroProfile ConfigSources, such as environment variables and Kubernetes ConfigMaps, and MicroProfile Config profiles to configure the OpenAPI services in different environments. For more information about MicoProfile ConfigSources, see ConfigSources. Some operating systems allow only alphabetic characters or an underscore (_), in environment variables. Other characters such as . and / are not allowed. You must use the Environment Variables Mapping Rules, to set the value of a configuration property that contains a name with such characters. The testing procedure described in this document is based on the serverless-workflow-stock-profit example application in GitHub repository. The serverless-workflow-stock-profit example application is a workflow that computes the profit for a given stock based on an existing stock portfolio. The serverless-workflow-stock-profit example application sends request to the following services: stock-portfolio-service: Calculates the stock portfolio profit for a given stock based on the current stock price. stock-service: Retrieves the current stock price. Developing an application using a service that returns different results every time can be difficult, therefore the stock-service uses the following implementations depending on the environment. real-stock-service (default implementation): Returns the real stock price. This service returns a random price every time to simulate a real stock service. This implementation is used in normal or production environment. fake-stock-service: Returns the same price every time. This implementation is used in the development environment. The stock-profit service contains the following workflow definition: Workflow definition in stock-profit service { \"id\": \"stockprofit\", \"specVersion\": \"0.8\", \"version\": \"2.0.0-SNAPSHOT\", \"name\": \"Stock profit Workflow\", \"start\": \"GetStockPrice\", \"functions\": [ { \"name\": \"getStockPriceFunction\", \"operation\": \"openapi/stock-svc.yaml#getStockPrice\" (1) }, { \"name\": \"getProfitFunction\", \"operation\": \"openapi/stock-portfolio-svc.yaml#getStockProfit\" (2) } ], \"states\": [ { \"name\": \"GetStockPrice\", \"type\": \"operation\", \"actionMode\": \"sequential\", \"actions\": [ { \"name\": \"getStockPrice\", \"functionRef\": { \"refName\": \"getStockPriceFunction\", \"arguments\": { \"symbol\": \".symbol\" } } } ], \"transition\": \"ComputeProfit\" }, { \"name\": \"ComputeProfit\", \"type\": \"operation\", \"actionMode\": \"sequential\", \"actions\": [ { \"name\": \"getStockProfit\", \"functionRef\": { \"refName\": \"getProfitFunction\", \"arguments\": { \"symbol\": \".symbol\", \"currentPrice\": \".currentPrice\" } } } ], \"end\": true } ] } 1 Defines the stock-service service operation 2 Defines the stock-portfolio-service service operation SonataFlow leverages Quarkus profiles to configure the workflow application depending on the target environment. To set properties for different profiles, each property needs to be prefixed with a percentage (%) followed by the profile name and a period (.) in the syntax as %.config.name. By default, Quarkus provides the following profiles that activate automatically in certain conditions: dev: Activates in development mode, such as quarkus:dev test: Activates when tests are running prod (default profile): Activates when not running in development or test mode You can also create additional profiles and activate them using the quarkus.profile configuration property. For more information about Quarkus profiles, see Profiles in the Quarkus Configuration reference guide. You can define the URLs of the services in different environments by using profiles. Procedure Create a file named application.properties in the src/main/resources directory of the workflow project, if the file does not exist. In the application.properties file, add the OpenAPI configuration for the default environment: Example properties in application.properties file quarkus.rest-client.stock_svc_yaml.url=http://localhost:8383/ (1) quarkus.rest-client.stock_portfolio_svc_yaml.url=http://localhost:8282/ 1 URL of the real-stock-service service In the application.properties file, add the OpenAPI configuration for the dev environment: Example properties for development environment %dev.quarkus.rest-client.stock_svc_yaml.url=http://localhost:8181/ (1) 1 URL of the fake-stock-service service The %dev. prefix indicates the dev profile configuration, which is used when you run mvn quarkus:dev or quarkus dev. After defining the URLs of the services, you can run the services that the workflow sends request to. Prerequisites URLs of the services in the different environments are defined. For more information, see Defining the URLs of the services in different environments. Procedure In a separate command terminal window, run the stock-portfolio-service service: Run the stock-portfolio-service service cd stock-portfolio-service mvn quarkus:dev -Ddebug=false You can access the stock-portfolio-service service at http://localhost:8282/. In a separate command terminal window, run the real-stock-service service: Run real-stock-service service cd real-stock-service mvn quarkus:dev -Ddebug=false You can access the real-stock-service service at http://localhost:8383/. In a separate command terminal window, run the fake-stock-service service: Run fake-stock-service service cd fake-stock-service mvn quarkus:dev -Ddebug=false You can access the fake-stock-service service at http://localhost:8181/. When you define %dev.quarkus.rest-client.stock_svc_yaml.url=http://localhost:8181/, the fake-stock-service service is used in the development mode and you get the same result every time you run the workflow. Using this example, you can run the workflow application in development mode. Prerequisites Services that the workflow application sends requests to are started. For more information, see Running the services. Procedure In a separate command terminal window, run the workflow application in development mode: Run workflow application in development mode cd stock-profit mvn quarkus:dev -Ddebug=false In a separate command terminal window, send a request to the workflow application: Example request curl -X 'POST' \\ 'http://localhost:8080/stockprofit' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"symbol\": \"KGTO\" }' Example response {\"id\":\"5ab5dcb8-5952-4730-b526-cace363774bb\",\"workflowdata\":{\"symbol\":\"KGTO\",\"currentPrice\":75,\"profit\":\"50%\"}} Note that, in the previous example fake-stock-service is used, therefore, the computed profit property is same no matter how many times you run the workflow. When you define quarkus.rest-client.stock_svc_yaml.url=http://localhost:8383/, the real-stock-service service is used in the normal or production mode and you get different results every time you run the workflow. Using this example, you can run the workflow application in normal or production mode. Prerequisites Services that the workflow application sends requests to are started. For more information, see Running the services. Procedure In a separate command terminal window, package the workflow application to be run as fat JAR: Package workflow application cd stock-profit mvn package In a separate command terminal window, run the workflow application in normal or production mode: Run workflow application in normal or production mode java -jar target/quarkus-app/quarkus-run.jar In a separate command terminal window, send a request to the workflow application: Example request curl -X 'POST' \\ 'http://localhost:8080/stockprofit' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"symbol\": \"KGTO\" }' Example response {\"id\":\"a80c95d6-51fd-4ca9-b689-f779929c9937\",\"workflowdata\":{\"symbol\":\"KGTO\",\"currentPrice\":59.36,\"profit\":\"19%\"}} Note that, in the previous example, the real-stock-service is used, therefore, the computed profit property is different every time you run the workflow. You can define the URLs of the services in different environments using profiles and environment variables. Prerequisites Services that the workflow application sends requests to are started. For more information, see Running the services. Procedure In a separate command terminal window, run the workflow application in development mode, overwriting the property defined in the application.properties file using an environment variable: Run the workflow application in development mode cd stock-profit export _DEV_QUARKUS_REST_CLIENT_STOCK_SVC_YAML_URL=http://localhost:8383/ (1) mvn quarkus:dev -Ddebug=false 1 Overwrite the %dev.quarkus.rest-client.stock_svc_yaml.url=http://localhost:8181/ defined in the application.properties file using an environment variable, which is pointing to real-stock-service. In a separate command terminal window, send a request to the workflow application: Example request curl -X 'POST' \\ 'http://localhost:8080/stockprofit' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"symbol\": \"KGTO\" }' Example response {\"id\":\"5ab5dcb8-5952-4730-b526-cace363774bb\",\"workflowdata\":{\"symbol\":\"KGTO\",\"currentPrice\":56.35,\"profit\":\"13%\"}} Note that, in the previous example, you overwrote the property defined in the application.properties file to point to real-stock-service, therefore, the computed profit property is different every time you run the workflow. Orchestrating the OpenAPI services Quarkus configuration guide If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Configuring OpenAPI Services Endpoints","component":"serverlessworkflow","version":"1.43.0.Final","name":"configuring-openapi-services-endpoints","url":"/serverlessworkflow/latest/service-orchestration/configuring-openapi-services-endpoints.html","titles":[{"text":"Overview","hash":"con-config-openapi-services-endpoints","id":1},{"text":"Using URI alias","hash":"_using_uri_alias","id":2},{"text":"Configuring the OpenAPI services endpoints in different environments","hash":"proc-configure-openapi-services-endpoints-different-environments","id":3},{"text":"Defining URLs of the services in different environments","hash":"proc-config-openapi-services-defining-urls","id":4},{"text":"Running the services","hash":"proc-config-openapi-services-running-the-services","id":5},{"text":"Running workflow application in development mode","hash":"proc-config-openapi-services-running-sw-application-in-development-mode","id":6},{"text":"Running workflow application in production mode","hash":"proc-config-openapi-services-running-sw-application-in-production-mode","id":7},{"text":"Defining URLs of services in different environments using environment variables","hash":"proc-define-urls-using-environment-variables","id":8},{"text":"Additional resources","hash":"_additional_resources","id":9},{"text":"Found an issue?","hash":"_found_an_issue","id":10}]},"35":{"id":35,"text":"As a developer, you can invoke a gRPC service using a workflow application that runs with Quarkus. This document describes how to create a workflow that invokes a running gRPC service and how to configure properties to locate that running gRPC service. For information about gRPC concepts, see gRPC. In order to illustrate how gRPC integration works, this Serverless Workflow application is used. This example greets a user in their preferred language by invoking a gRPC service. Relevant files of the workflow application include: gRPC proto file: This file defines a greeter service, which consists of sayHello methods, each covering a different gRPC scenario: The sayHello method accepts two parameters, including name of the user and an optional language to use in the greeting message (English by default). The sayHello method returns the greeting message in the appropriate language. The SayHelloAllLanguages accepts just the name parameter and streams greetings in all languages supported by the service. This represents the server-side streaming scenario. The SayHelloMultipleLanguagesAtOnce accepts a stream of name-language pairs as parameters and returns corresponding greetings as one block of text after the streaming is finished. This is the client-side streaming scenario. The SayHelloMultipleLanguages accepts a stream of name-language pairs and streams back greetings with a respective name and in a respective language. // The greeter service definition. service Greeter { // Sends a greeting rpc SayHello (HelloRequest) returns (HelloReply) {} rpc SayHelloAllLanguages (HelloRequest) returns (stream HelloReply) {} rpc SayHelloMultipleLanguagesAtOnce (stream HelloRequest) returns (HelloReply) {} rpc SayHelloMultipleLanguages (stream HelloRequest) returns (stream HelloReply) {} ... } // The request message containing the user's name. message HelloRequest { string name = 1; string language=2; } // The response message containing the greetings message HelloReply { string message = 1; } Workflow definition file: This file defines an RPC function. \"functions\": [ { \"name\": \"sayHello\", \"type\": \"rpc\", \"operation\": \"greeting.proto#Greeter#SayHello\" } ] In this rpc function, the operation property is composed of three tokens separated by #. The three tokens include: URI of the proto file (greeting.proto) Name of the service (Greeter) Name of the method (SayHello) SonataFlow supports three URI schemes, including http, file, and classpath (default). Therefore, in the previous example, the greeting.proto is expected to be found in the project classpath. The execution of the workflow consists of a single operation state, which is composed of one action. { \"name\": \"sayHello\", \"functionRef\" : { \"refName\": \"sayHello\", \"arguments\": { \"name\": \".name\", \"language\": \".language\" } } } In the previous example, the action invokes the sayHello RPC method using two model variables: name and language. These parameters are provided as part of the REST call that starts the workflow. The response of the method execution is mapped to a JSON object and merged with the workflow model. For the remaining scenarios, see the following workflow definition files: Server streaming Client streaming Bidirectional streaming The only difference to the basic scenario is that workflows with client streaming expect an array of requests as arguments of the gRPC function: { \"name\": \"SayHelloMultipleLanguagesAtOnce\", \"functionRef\" : { \"refName\": \"SayHelloMultipleLanguagesAtOnce\", \"arguments\": \".helloRequests\" } } The function expects an array of requests which is mapped under the helloRequests key in the workflow model. In case of server streaming, the response is returned as an array as well and merged with the workflow model. In these examples, because no stateDataFilter is defined, the response is merged under the default response key in the workflow model. Maven POM: The gRPC functionality is included within workflow dependencies, which means you do not need to add specific dependencies for gRPC to work with SonataFlow. This pom.xml file contains the following resource node: ${project.basedir}/../serverless-workflow-greeting-server-rpc-quarkus/src/main/proto greeting.proto The reason for this snippet to exist is to guarantee that the proto file is included in the classpath. Remember that in the workflow file, the URI for the proto file does not contain any scheme, therefore the proto file is expected to be accessible in the classpath. The previous, Maven based, approach can be used when the source code of the workflow and the gRPC server are stored in the same repository, but normally this will not be the case. If the proto file can be downloaded from a remote server, you might use the http scheme. If the proto file is not remotely accessible, you will need to manually obtain a copy of it and store in a directory that is included in the classpath (for example src/main/resources). Another possibility is to copy the proto file in a well known absolute path (that might be a shared network file system) and use the file scheme. Application properties: In the application.properties file, you can add the information for the workflow application to locate the gRPC server. Internally, the workflow implementation uses the same set of properties as Quarkus gRPC client. The client-name used by SonataFlow is the service name declared in the proto file. Therefore, since in this example a service called Greeter is invoked, the following code is added to the properties. quarkus.grpc.clients.Greeter.host=localhost quarkus.grpc.clients.Greeter.port=50051 In the same GitHub repository as the example application, there is a Maven project which provides a simple implementation of the Greeter service. By default, this gRPC server runs on port 50051. Therefore, the same port is used in the application.properties file. gRPC specification requires enumeration types to have a default value. The default value is not included in the server response payload. Therefore, use an empty value such as UNKNOWN as default. If, for any reason, your default value is semantically valid and you want the value to be included in the workflow model, you must set kogito.grpc.enum.includeDefault property to true. This way enumeration fields are always filled by the workflow if the server response does not include them. Before running the workflow application, you need to start the gRPC server the workflow invokes. To run the gRPC server, navigate to the serverless-workflow-greeting-server-rpc-quarkus directory in a command terminal and enter the command: mvn compile exec:java -Dexec.mainClass=\"org.kie.kogito.examples.sw.greeting.GreeterService\" Once the server is running, you must navigate to the serverless-workflow-greeting-client-rpc-quarkus directory in a separate command terminal and run the workflow application by entering the following command: mvn clean quarkus:dev Once the workflow application is started, you can invoke the workflow instance using any HTTP client, such as curl, from a separate command terminal. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://localhost:8080/jsongreet Example response {\"id\":\"4376cc50-42d4-45ef-8a5e-6e403a654a30\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"message\":\"Hello from gRPC service John\"}} You can also try greeting in a different language. curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"Javi\", \"language\": \"Spanish\"}' http://localhost:8080/jsongreet In response, you will see the greeting in Spanish language. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\"}' http://localhost:8080/jsongreetserverstream Example response {\"id\":\"665911c5-36ee-40b7-93dd-a2328f969c73\",\"workflowdata\":{\"name\":\"John\",\"response\":[{\"message\":\"Hello from gRPC service John\"},{\"message\":\"Saludos desde gRPC service John\"}]}} Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"helloRequests\" : [{\"name\" : \"Javierito\", \"language\":\"Spanish\"}, {\"name\" : \"John\", \"language\":\"English\"}, {\"name\" : \"Jan\", \"language\":\"Czech\"}]}' http://localhost:8080/jsongreetclientstream Example response {\"workflowdata\" : { \"helloRequests\" : [ {\"name\" : \"Javierito\", \"language\":\"Spanish\"}, {\"name\" : \"John\", \"language\":\"English\"}, {\"name\" : \"Jan\", \"language\":\"Czech\"}], \"message\":\"Saludos desde gRPC service Javierito\\nHello from gRPC service John\\nHello from gRPC service Jan\" } } Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"helloRequests\" : [{\"name\" : \"Javierito\", \"language\":\"Spanish\"},{\"name\" : \"John\", \"language\":\"English\"},{\"name\" : \"Jan\", \"language\":\"Czech\"}]}' http://localhost:8080/jsongreetbidistream Example response {\"workflowdata\" : { \"helloRequests\" : [ {\"name\" : \"Javierito\", \"language\":\"Spanish\"}, {\"name\" : \"John\", \"language\":\"English\"}, {\"name\" : \"Jan\", \"language\":\"Czech\"}], \"response\":[ {\"message\":\"Saludos desde gRPC service Javierito\"}, {\"message\":\"Hello from gRPC service John\"}, {\"message\":\"Hello from gRPC service Jan\"} ] } } If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Orchestrating gRPC based Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestration-of-grpc-services","url":"/serverlessworkflow/latest/service-orchestration/orchestration-of-grpc-services.html","titles":[{"text":"Default enum values","hash":"_default_enum_values","id":1},{"text":"Running the workflow application","hash":"running-serverless-workflow-application","id":2},{"text":"Simple gRPC","hash":"_simple_grpc","id":3},{"text":"Server-side streaming gRPC","hash":"_server_side_streaming_grpc","id":4},{"text":"Client-side streaming gRPC","hash":"_client_side_streaming_grpc","id":5},{"text":"Bidirectional streaming gRPC","hash":"_bidirectional_streaming_grpc","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"36":{"id":36,"text":"This document describes how to call REST services using an OpenAPI specification file. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. You have installed the tooling. For more information about the tooling, see Getting familiar with SonataFlow tooling. SonataFlow follows the CNCF Serverless Workflow specification function definition to send requests to remote REST services using an OpenAPI specification reference as shown in the following example: Example of an OpenAPI function definition { \"functions\":[ { \"name\":\"myFunction1\", \"operation\":\"classpath:/myopenapi-file.yaml#myFunction1\" } ] } In the previous example function definition, the type attribute can be omitted as the default value is rest. In the previous example, the operation attribute is a string, which is composed using the following parameters: URI that the engine uses to locate the specification file, such as classpath. Operation identifier. You can find the operation identifier in the OpenAPI specification file. SonataFlow supports the following URI schemes: classpath: This URI scheme is supported for the files that are located in the src/main/resources folder of the application project. The classpath is the default URI scheme. If you do not define a URI scheme as shown in the following examples, the file location is defined as src/main/resources/myopenapifile.yaml: /myopenapifile.yaml file: This URI scheme is supported for the files that are located in the file system. http or https: This URI scheme is supported for remotely located files. The OpenAPI specification files must be available during the build time, because SonataFlow leverages the internal code generation feature to send requests on runtime. Therefore, once you have built the application image, SonataFlow will not have access to the files. For more information about building workflow images, see Building workflow images using Quarkus CLI. To get started with orchestrating the OpenAPI based services, you must locate the REST services OpenAPI specification files. Usually, REST services expose their interface using the OpenAPI specification. For example, see the Petstore API. In case, the OpenAPI service that you want to add to the workflow does not contain a specification file, you can either create a specification file or update the OpenAPI service to generate and expose the file. There are various REST frameworks that support the OpenAPI specification generation, including: Java Quarkus - Using OpenAPI and Swagger UI Spring Boot Documentation Go Go Swagger Documentation Python Flasgger .NET ASP.NET Core web API documentation with Swagger/OpenAPI TypeScript Swagger UI Express PHP swagger-php If you do not have access to the REST service, which is used to add the OpenAPI specification generator, you can use Swagger Inspector. The Swagger Inspector generates the specification file based on HTTP traffic. To send REST requests that are based on the OpenAPI specification files, you need to perform the following procedures: Define the function references Access the defined functions in the workflow states To send requests with the REST calls, first you need to define the OpenAPI functions. Prerequisites You have access to the OpenAPI specification files. Once you have access to the OpenAPI specification files, you can define the functions in the workflow. You can also use the serverless-workflow-temperature-conversion example application as a reference. Procedure Copy the OpenAPI specification files of the service(s) you want to invoke into your workflow service directory, which can be src/main/resources/specs. In the serverless-workflow-temperature-conversion example application, the services that are invoked include multiplication and subtraction services. The OpenAPI specification files in serverless-workflow-temperature-conversion example application are extracted from the running multiplication and subtraction services. The REST Quarkus applications expose the related OpenAPI specification files using the Quarkus Swagger extension. Following is an example OpenAPI specification of the multiplication REST service: Example multiplication REST service OpenAPI specification openapi: 3.0.3 info: title: Generated API version: \"1.0\" paths: /: post: operationId: doOperation (1) parameters: - in: header name: notUsed schema: type: string required: false requestBody: content: application/json: schema: $ref: '#/components/schemas/MultiplicationOperation' responses: \"200\": description: OK content: application/json: schema: type: object properties: product: format: float type: number components: schemas: MultiplicationOperation: (2) type: object properties: leftElement: format: float type: number rightElement: format: float type: number 1 operationId of the REST operation. The operationId in an OpenAPI specification is necessary to add a reference to the operation that you want to use in REST invocation. 2 Data structure of the REST operation. Use the same operationId to compose the final URI in the function definition as shown in the following example: OpenAPI functions definition in the Temperature Conversion example { \"functions\": [ { \"name\": \"multiplication\", \"operation\": \"specs/multiplication.yaml#doOperation\" (1) }, { \"name\": \"subtraction\", \"operation\": \"specs/subtraction.yaml#doOperation\" (2) } ] } 1 Function definition for OpenAPI multiplication function 2 Function definition for OpenAPI subtraction function Note that in the previous example, the multiplication and subtraction OpenAPI files are stored in the src/main/resources/specs folder of the application. After defining the function definitions, you can access the defined functions in the workflow states. Prerequisites You have defined the OpenAPI functions in a workflow. For more information, see Defining OpenAPI functions in a workflow. Procedure Use a workflow action to call a function definition that you added. Any workflow action that consists of a similar approach of referencing the functions that you used in the function definition can call a defined function. To map the arguments of a function, you can refer to the parameters described in the Operation Object section of OpenAPI specification. Also, the engine maps the parameter naming according to the OpenAPI specification. After that, you can use jq expressions to extract the payload data and map the data to the required parameters. In the following example, the parameters are part of the request body: Example of mapping a function arguments { \"states\": [ { \"name\": \"SetConstants\", \"type\": \"inject\", \"data\": { \"subtractValue\": 32.0, \"multiplyValue\": 0.5556 }, \"transition\": \"Computation\" }, { \"name\": \"Computation\", \"actionMode\": \"sequential\", \"type\": \"operation\", (1) \"actions\": [ { \"name\": \"subtract\", \"functionRef\": { \"refName\": \"subtraction\", (2) \"arguments\": { (3) \"leftElement\": \".fahrenheit\", \"rightElement\": \".subtractValue\" } } }, { \"name\": \"multiply\", \"functionRef\": { \"refName\": \"multiplication\", (4) \"arguments\": { (5) \"leftElement\": \".difference\", \"rightElement\": \".multiplyValue\" } } } ], \"end\": { \"terminate\": \"true\" } } ] } 1 Operation State definition 2 Reference to the subtraction function 3 Definition of the subtraction function arguments 4 Reference to the multiplication function 5 Definition of the multiplication function arguments In the serverless-workflow-temperature-conversion example application, the functions are called sequentially in an Operation State as shown in the previous example. For more information about mapping parameters in the request path instead of request body, you can refer to the following PetStore API example: Example Petstore OpenAPI specification excerpt { \"/pet/{petId}\": { \"get\": { \"tags\": [ \"pet\" ], \"summary\": \"Find pet by ID\", \"description\": \"Returns a single pet\", \"operationId\": \"getPetById\", \"parameters\": [ { \"name\": \"petId\", \"in\": \"path\", \"description\": \"ID of pet to return\", \"required\": true, \"schema\": { \"type\": \"integer\", \"format\": \"int64\" } } ] } } } Following is an example invocation of a function, in which only one parameter named petId is added in the request path: Example of calling the PetStore function { \"name\": \"CallPetStore\", (1) \"actionMode\": \"sequential\", \"type\": \"operation\", \"actions\": [ { \"name\": \"getPet\", \"functionRef\": { \"refName\": \"getPetById\", (2) \"arguments\": { (3) \"petId\": \".petId\" } } } ] } 1 State definition, such as CallPetStore. 2 Function definition reference. In the previous example, the function definition getPetById is for PetStore OpenAPI specification. 3 Arguments definition. In the previous example, SonataFlow adds the argument petId to the request path before sending a request. After accessing the function definitions in workflow states, you can configure the endpoint URL of OpenAPI services. SonataFlow uses the Quarkus OpenAPI Generator extension and the Quarkus REST Client, and all the configurations are based on these components, which are backed using Quarkus Configuration. Prerequisites You have defined the function definitions in the workflow. For more information, see Defining OpenAPI functions in a workflow. You have the access to the defined functions in the workflow states. For more information, see Accessing functions in the workflow states. Procedure To configure the endpoints, you must use the sanitized OpenAPI specification file name as the REST client configuration key. The configuration key must be set as a valid environment variable. For example, a file named as subtraction.yaml contains the configuration key as subtraction_yaml. For more information about how to sanitize file names, see Environment Variables Mapping Rules. You can use the same configuration key on each property that is related to the Quarkus REST client as shown in the following URL configuration example: Example of URL configuration quarkus.rest-client.subtraction_yaml.url=http://myserver.com To avoid hardcoding the URL in the application.properties file, you can use environment variables substitution, as shown in the following example: Example of URL configuration with environment variables quarkus.rest-client.subtraction_yaml.url=${SUBTRACTION_URL:http://myserver.com} In case the environment variable SUBTRACTION_URL is not found in the previous example, the URL redirects to http://myserver.com. You can also use environment variables to configure the application in Kubernetes environments, in which variables can be injected into the pod of the application. For more information about endpoints and general configuration, see Configuring the OpenAPI services endpoints. In a future release, SonataFlow will provide support for Kubernetes Service Discovery feature. Using the Kubernetes Service Discovery feature, you can point to a Kubernetes or Knative object that you want to call. After that, the engine will automatically configure the endpoints once you deploy the endpoints in the cluster. Configuring OpenAPI services endpoints Authentication for OpenAPI services in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Orchestrating OpenAPI Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestration-of-openapi-based-services","url":"/serverlessworkflow/latest/service-orchestration/orchestration-of-openapi-based-services.html","titles":[{"text":"OpenAPI function definition","hash":"con-openapi-function-definition","id":1},{"text":"Sending REST requests based on the OpenAPI specification","hash":"proc-send-request-rest-call-openapi-spec","id":2},{"text":"Defining OpenAPI functions in a workflow","hash":"proc-define-openapi-functions","id":3},{"text":"Accessing functions in the workflow states","hash":"proc-access-function-sw-states","id":4},{"text":"Configuring the endpoint URL of OpenAPI services","hash":"proc-configuring-openapi-service-endpoint-url","id":5},{"text":"Additional resources","hash":"_additional_resources","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"37":{"id":37,"text":"This document describes the OpenAPI Callback and related examples. Also, it covers the difference between OpenAPI Callback and the Serverless Workflow Callback state. The Serverless Workflow callback state can be implemented using both the OpenAPI callback and the Callback state functionalities. Both the functionalities perform an action and wait for an event to be produced as a result of the action to resume the workflow, but each of them follows a different approach in achieving it. Therefore, both OpenAPI callback and the Callback state approaches are suitable to perform fire & wait-for-result operations. The OpenAPI callback is an asynchronous, out-of-band request that your service will send to some other service in response to specific events. In contrast, the Callback state performs an action that triggers an external activity/service which is responsible for sending a cloud event to the workflow. Both ways aim to send an event to the workflow to resume the flow. As mentioned in the OpenAPI Callback document, when the workflow makes an asynchronous service call, you must provide the callback URL in the request body. The external service invokes the callback URL and sends a CloudEvent to the workflow. From a workflow perspective, asynchronous service indicates that the control is returned to the caller immediately without waiting for the action to be completed. Once the action is completed, a CloudEvent needs to be published to resume the workflow. For the workflow to identify the published CloudEvent it is waiting for, the external service developer includes the workflow instance ID in the CloudEvent header or uses the Event correlation. The following figure displays the process: The workflow correlation described in this document focuses on the former mechanism that is based on the fact that each workflow instance contains a unique identifier, which is generated automatically. To understand the OpenAPI Callback, see the serverless-workflow-callback-events-over-http-quarkus example application in GitHub repository. This example contains a simple workflow-service that illustrates callback state using OpenAPI callbacks functionality. A callback is a state that invokes an action and wait for an event (event that will be eventually fired by the external service notified by the action). This example consists of a callback state that waits for an event to arrive at the wait channel. Its action calls an external service named callback-event-service that publishes the wait event over HTTP. After consuming the wait event, the workflow prints the message received in the wait event and ends the workflow. The serverless-workflow-callback-events-over-http-quarkus application is initiated with the following request to http://localhost:8080/callback: { \"message\": \"Hello\" } Once the workflow is started, it makes an external service call with the callback URL and the workflow instance ID in the request body to callback-event-service. Then, as configured in the OpenAPI file, the callback URL is invoked to send a CloudEvent to the workflow. Once the wait type CloudEvent is received by the callback-workflow-service, the workflow moves to the next state and ends successfully. The following figure shows the serverless-workflow-callback-events-over-http-quarkus image: To use the OpenAPI callback in a workflow, the OpenAPI YAML file is configured with the callback as specified in the OpenAPI file. To use the Callback state in a workflow, first CloudEvent type wait is declared that the workflow uses. Following is an example of CloudEvents declaration in a workflow definition: Example of CloudEvent declaration in a workflow definition \"events\": [ { \"name\": \"waitEvent\", \"source\": \"\", \"type\": \"wait\" } After that, a Callback state is declared, which waits for a CloudEvent with the wait type. Following is an example of declaring a Callback state that handles the wait type CloudEvent: Example of a Callback State declaration handling the wait CloudEvent { \"name\": \"waitForEvent\", \"type\": \"callback\", \"action\": { \"functionRef\": { \"refName\": \"callBack\", \"arguments\": { \"uri\": \"http://localhost:8080/wait\", \"processInstanceId\": \"$WORKFLOW.instanceId\" } } }, \"eventRef\": \"waitEvent\", \"transition\": \"finish\" } Please refer configure openapi service endpoints document to set the URL dynamically using an environment variable. An event listener publishes a new wait type CloudEvent. Following is an example of a Java method that publishes the wait type CloudEvent: Example of a Java method that makes a call to Callback URL and publishes the wait CloudEvent @POST @Consumes(MediaType.APPLICATION_JSON) public void wait(EventInput eventInput) throws JsonProcessingException { logger.info(\"About to generate event for {}\",eventInput); CloudEventBuilder builder = CloudEventBuilder.v1() .withId(UUID.randomUUID().toString()) .withSource(URI.create(\"\")) .withType(\"wait\") .withTime(OffsetDateTime.now()) .withExtension(CloudEventExtensionConstants.PROCESS_REFERENCE_ID, eventInput.getProcessInstanceId()) .withData(objectMapper.writeValueAsBytes(Collections.singletonMap(\"message\", \"New Event\"))); webClient.postAbs(eventInput.getUri()).sendJson(builder.build()).toCompletionStage(); } The callback-workflow-service consumes the CloudEvent, it contains an attribute named kogitoprocrefid, which holds the instance ID of the workflow. The kogitoprocrefid attribute is crucial because when the correlation is not used, then this attribute is the only way for the Callback state to identify that the related CloudEvent needs to be used to resume the workflow. For more information about correlation, see Event correlation in SonataFlow. Note that each workflow is identified by a unique instance ID, which is automatically included in any published CloudEvent, as kogitoprocinstanceid CloudEvent extension. The serverless-workflow-callback-events-over-http-quarkus example application consumes the Cloudevents using Knative Eventing. For more information about incoming and outgoing CloudEvents oer HTTP, see Consuming and Producing CloudEvents over HTTP. The HTTP path where the workflow application will listen for the CloudEvents in the serverless-workflow-callback-events-over-http-quarkus example application, is configured in the application.properties file as shown below: mp.messaging.incoming.wait.connector=quarkus-http mp.messaging.incoming.wait.path=/wait Creating your first workflow service Event correlation in SonataFlow OpenAPI Callback Example If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"OpenAPI Callback in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"working-with-openapi-callbacks","url":"/serverlessworkflow/latest/service-orchestration/working-with-openapi-callbacks.html","titles":[{"text":"Example of the OpenAPI Callback","hash":"ref-example-callback","id":1},{"text":"HTTP transport configuration","hash":"_http_transport_configuration","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"38":{"id":38,"text":"This document describes how to test your workflow application using REST Assured. REST Assured enables you to test REST APIs using Java libraries and integrates with Apache Maven. For more information about REST Assured, see REST Assured page. The testing procedure in this document is based on the serverless-workflow-examples/serverless-workflow-testing-with-rest-assured example application. You can access this example application in Kogito Examples GitHub repository. The following procedure describes how to test a workflow application that exposes the hello endpoint, which expects a name as a request parameter and returns greeting value: Example request body { \"name\": \"John Doe\" } Example response { \"id\": \"00ce5c1d-4936-4e18-998c-f5c5d5d784ad\", \"workflowdata\": { \"greeting\": \"Hello, John Doe\" } } Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. This document is based on the serverless-workflow-testing-with-rest-assured example application from the GitHub repository. Procedure Check if your project has the REST Assured dependency in your pom.xml file. If it doesn’t, add it like the following: io.rest-assured rest-assured test Create a test class named HelloTest in the src/test/java/org/kie/kogito/examples/ directory, containing the following content: Example HelloTest.java file package org.kie.kogito.examples; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import io.restassured.http.ContentType; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; @QuarkusTest class HelloTest { @BeforeAll static void init() { RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); (1) } @Test void testHello() { given() .contentType(ContentType.JSON) (2) .accept(ContentType.JSON) (3) .body(\"{\\\"name\\\": \\\"John Doe\\\"}\") (4) .when() .post(\"/hello\") (5) .then() .statusCode(201) (6) .body(\"workflowdata.greeting\", equalTo(\"Hello, John Doe\")); (7) } } 1 Enables logging of the request and response when the test fails. 2 Defines JSON as the content type of the request. 3 Specifies the accept header of the request. This is an alternative for header(\"Accept\", \"application/json\"). 4 Defines the request body as {\"name\": \"John Doe\"}. 5 Specifies the request as a POST method to the /hello URL. 6 Defines 201 as the expected response status code. 7 Defines that Hello, John Doe is expected in the workflowdata.greeting JSON path. To run your test, execute the following command: Command to run a test mvn clean verify Example output [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running org.kie.kogito.examples.HelloTest 2022-06-03 16:36:11,461 INFO [org.jbo.threads] (main) JBoss Threads version 3.4.2.Final 2022-06-03 16:36:11,708 INFO [org.kie.kog.cod.api.uti.AddonsConfigDiscovery] (build-1) Performed addonsConfig discovery, found: AddonsConfig{usePersistence=false, useTracing=false, useMonitoring=false, usePrometheusMonitoring=false, useCloudEvents=true, useExplainability=false, useProcessSVG=false, useEventDrivenDecisions=false, useEventDrivenRules=false} 2022-06-03 16:36:12,004 INFO [org.kie.kog.cod.cor.uti.ApplicationGeneratorDiscovery] (build-9) Generator discovery performed, found [processes] 2022-06-03 16:36:14,486 INFO [org.kie.kog.add.qua.mes.com.QuarkusKogitoExtensionInitializer] (main) Registered Kogito CloudEvent extension 2022-06-03 16:36:14,612 INFO [io.quarkus] (main) serverless-workflow-testing-with-rest-assured 1.0 on JVM (powered by Quarkus 2.9.2.Final) started in 3.635s. Listening on: http://localhost:8081 2022-06-03 16:36:14,613 INFO [io.quarkus] (main) Profile test activated. 2022-06-03 16:36:14,613 INFO [io.quarkus] (main) Installed features: [cache, cdi, jackson-jq, kogito-addon-messaging-extension, kogito-processes, kogito-serverless-workflow, reactive-routes, rest-client, rest-client-jackson, resteasy, resteasy-jackson, smallrye-context-propagation, smallrye-reactive-messaging, smallrye-reactive-messaging-http, vertx] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.819 s - in org.kie.kogito.examples.HelloTest 2022-06-03 16:36:16,559 INFO [io.quarkus] (main) serverless-workflow-testing-with-rest-assured stopped in 0.028s [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ serverless-workflow-testing-with-rest-assured --- [INFO] Building jar: /home/user/dev/kiegroup/kogito-examples/serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/target/serverless-workflow-testing-with-rest-assured-1.0.jar [INFO] [INFO] --- quarkus-maven-plugin:2.9.2.Final:build (default) @ serverless-workflow-testing-with-rest-assured --- [INFO] Performed addonsConfig discovery, found: AddonsConfig{usePersistence=false, useTracing=false, useMonitoring=false, usePrometheusMonitoring=false, useCloudEvents=true, useExplainability=false, useProcessSVG=false, useEventDrivenDecisions=false, useEventDrivenRules=false} [INFO] Generator discovery performed, found [processes] [INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 2669ms [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 15.558 s [INFO] Finished at: 2022-06-03T16:36:19-03:00 [INFO] ------------------------------------------------------------------------ If you see a similar output, this means your test is executed successfully. Mocking OpenAPI services using WireMock Mocking HTTP CloudEvents sink using WireMock SonataFlow integration test using PostgreSQL Testing a Quarkus application REST Assured Documentation If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Testing your Quarkus Workflow Application using REST Assured","component":"serverlessworkflow","version":"1.43.0.Final","name":"basic-integration-tests-with-restassured","url":"/serverlessworkflow/latest/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","titles":[{"text":"Additional resources","hash":"_additional_resources","id":1},{"text":"Found an issue?","hash":"_found_an_issue","id":2}]},"39":{"id":39,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"debugging-workflow-execution-runtime","url":"/serverlessworkflow/latest/testing-and-troubleshooting/debugging-workflow-execution-runtime.html","titles":[]},"40":{"id":40,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"development-tools-for-troubleshooting","url":"/serverlessworkflow/latest/testing-and-troubleshooting/development-tools-for-troubleshooting.html","titles":[]},"41":{"id":41,"text":"SonataFlow provides a plug-in named kn-plugin-workflow for Knative CLI, which enables you to set up a local workflow project quickly using the command line. This document describes how you can install and use the kn-plugin-workflow plug-in in SonataFlow. You can use the SonataFlow plug-in to set up your local workflow project quickly using Knative CLI. Prerequisites Java 11+ is installed. Maven 3.8.6 or later is installed. (Optional) Docker is installed. (Optional) Podman is installed. Kubernetes CLI is installed. Procedure Download the latest binaries from the KIE Tooling Releases page. Run the kn workflow command using one of the following methods: Add kn workflow command in your system path and ensure that it is executable. Install kn workflow command as a plug-in of the Knative CLI using the following steps: Install the Knative CLI. For installation instructions, see Installing kn documentation. Copy the kn-workflow binary to a directory in your PATH, such as /usr/local/bin and ensure that the file name is kn-workflow. On Mac, add execution permission as follows: chmod +x /usr/local/bin/kn-workflow Some systems might block the application to run due to Apple enforcing policies. To fix this problem, check the Security & Privacy section in the System Preferences → General tab to approve the application to run. For more information, see Apple support article: Open a Mac app from an unidentified developer. Run the following command to verify that kn-workflow plug-in is installed successfully: kn plugin list After installing the plug-in, you can use kn workflow to run the related subcommands. Use the workflow subcommand in Knative CLI as follows: Methods to use workflow subcommand kn workflow kn-workflow Example output Manage Kogito Serverless Workflow projects Usage: kn workflow [command] Available Commands: build Build a Kogito Serverless Workflow project and generate a container image completion Generate the autocompletion script for the specified shell create Create a Kogito Serverless Workflow project deploy Deploy a Kogito Serverless Workflow project help Help about any command Flags: -h, --help help for kn-workflow -v, --verbose Print verbose logs Use \"kn workflow [command] --help\" for more information about a command. After installing the SonataFlow plug-in, you can use the create command with kn workflow to scaffold a new workflow project in your current directory. The create command sets up Quarkus project containing minimal extensions to build a workflow project. Also, the generated workflow project contains a \"hello world\" workflow.sw.json file in your .//src/main/resources directory. Prerequisites SonataFlow plug-in for Knative CLI is installed. For more information about installing the plug-in, see Installing the SonataFlow plug-in for Knative CLI. Procedure In Knative CLI, enter the following command to create a new project: Creates a project named new-project kn workflow create By default, the generated project is named as new-project. You can overwrite the project name by using the [-n|--name] flag as follows: Create a project named my-project kn workflow create --name my-project Add more extensions to the Quarkus project during its creation by using the [-e|--extension] flag as follows: Create a project with quarkus-jsonp and quarkus-smallrye-openapi extensions kn workflow create --extension quarkus-jsonp,quarkus-smallrye-openapi You can add multiple extensions using the comma-separated names of the extensions in the previous command. When you run the create command for the first time, it might take a while due to the necessity of downloading the required dependencies for the Quarkus project. After creating your workflow project, you can use the build command with kn workflow to build your workflow project in your current directory and to generate a container image. The process of building your workflow project produces a knative.yml file in the ./target/kubernetes folder. If your workflow contains events, then the building process also generates a kogito.yml file. Prerequisites SonataFlow plug-in for Knative CLI is installed. For more information about installing the plug-in, see Installing the SonataFlow plug-in for Knative CLI. A workflow project is created. For more information about creating a workflow project, see Creating workflow project using Knative CLI. Procedure In Knative CLI, enter the following command to build your workflow project: Build the project and generate a local image named dev.local/my-project kn workflow build --image dev.local/my-project By using dev.local as repository, you can deploy your SonataFlow project in a local environment without having to push the image to a container registry. To use the build command, you need to provide either --image or --image-name flag. In the previous command, you can use the [-i|--image] in several ways, such as: --image=[name] --image=[name]:[tag] --image=[repository]/[name] --image=[repository]/[name]:[tag] --image=[registry]/[repository]/[name] --image=[registry]/[repository]/[name]:[tag] The default value for registry and tag is quay.io and latest respectively. Also, you can use specific flags to compose the full name of the image as follows: --image-registry --image-repository --image-name --image-tag In case the --image flag is composed with specific flags as shown in the following command, then the specific value overrides the --image flag: Build the project and generate a local image named quay.io/other-user/my-project:1.0.1 kn workflow build --image my-user/my-project:1.0.0 --image-repository other-user --image-tag 1.0.1 You can use the following strategies to build a workflow project and to generate the container image: Using Jib Jib is an extension that builds a container image without the necessity of a container runtime. When using the Jib extension, the rebuilds are fast and the resultant container image is optimized. You can use the following commands to build a workflow project and to generate a local image using Jib: Build a project and generate a local image using Jib kn workflow build --image dev.local/my-project --jib The generated container image can be saved in the Docker runtime. Build a project and generate a local image using Jib kn workflow build --image dev.local/my-project --jib-podman Using the previous command, the generated container image can be saved in the Podman runtime. If you do not want to use any container runtime, then use --push to push the generated container image to the respective registry as shown in the following command: Build a project and push the image using Jib kn workflow build --image my-project --jib --push Before using the --push option, ensure that you have access to your registry. You can get the access using Docker or Podman login. Using Docker The process of building your workflow project using Docker is straightforward and also a default approach. When using Docker, you can automatically push the container image to the respective registry by using the --push option as shown in the following command: Build a project and push the image using Docker kn workflow build --image my-project --push You can use the deploy command combined with kn workflow to deploy your workflow project in your current directory. However, before deploying the project, you must build your workflow project as the build process produces deployment files, such as knative.yml and kogito.yml (In case of events) in the ./target/kubernetes folder. Prerequisites SonataFlow plug-in for Knative CLI is installed. For more information about installing the plug-in, see Installing the SonataFlow plug-in for Knative CLI. A workflow project is created. For more information about created a workflow project, see Creating workflow project using Knative CLI. A workflow project is built. For more information about building your workflow project, see Building workflow project using Knative CLI. Procedure In Knative CLI, enter the following command to deploy your workflow project: Deploy a workflow project kn workflow deploy If the deployment files (knative.yml and kogito.yml) are saved in any other folder instead of ./target/kubernetes, then you can override the path using the --path flag with deployment command as follows: Deploy a workflow project using --path kn workflow deploy --path other-path Also, ensure that you have access to your cluster and your cluster can access the generated container image. You can use the kubectl command line if you want to use a complex deployment setup for your workflow project. Creating your first workflow service If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"SonataFlow plug-in for Knative CLI","component":"serverlessworkflow","version":"1.43.0.Final","name":"kn-plugin-workflow-overview","url":"/serverlessworkflow/latest/testing-and-troubleshooting/kn-plugin-workflow-overview.html","titles":[{"text":"Installing the SonataFlow plug-in for Knative CLI","hash":"proc-install-sw-plugin-kn-cli","id":1},{"text":"Creating a workflow project using Knative CLI","hash":"proc-create-sw-project-kn-cli","id":2},{"text":"Building a workflow project using Knative CLI","hash":"proc-build-sw-project-kn-cli","id":3},{"text":"Strategy for building a workflow project","hash":"con-build-strategy-kn-cli","id":4},{"text":"Deploying a workflow project using Knative CLI","hash":"proc-deploy-sw-project-kn-cli","id":5},{"text":"Additional resources","hash":"_additional_resources","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"42":{"id":42,"text":"This document describes how you can test your workflow application that uses HTTP CloudEvents and Knative SinkBinding. The example described in this document is based on the serverless-workflow-order-processing example application. The workflow application that you want to test must be configured to use Knative Eventing. You must configure Knative Eventing using standard HTTP POST requests to send and receive events between event producers and sinks. The events between the event producers and sinks follow the CloudEvents specification, which enables creating, parsing, sending, and receiving events in any programming language. When you create an event source, you can specify a sink where events are sent to, from the source. A sink is a transferable or a callable resource that can receive incoming events from other resources. The examples of sink include Kubernetes deployments, Knative services, channels, and brokers. This document describes the testing of Knative service that is configured as a sink, and the same Knative service is mocked to verify if the CloudEvents are received correctly by the sink. In this process, the WireMock framework adds the mocked server, verifying the CloudEvents received by the sink during the workflow service execution. You can test a workflow application using SinkBinding. Prerequisites Your workflow application is working. For more information about creating a workflow application, see Creating your first workflow service. Your workflow application is configured to use HTTP CloudEvents using SinkBinding. For more information about enabling event-driven architecture in your workflow application using Knative Eventing, see Consuming and producing events on Knative Eventing. Procedure Add the required test dependencies to the pom.xml file of your workflow application: Add test dependencies to pom.xml file io.quarkus quarkus-junit5 (1) test io.rest-assured rest-assured (1) test com.github.tomakehurst wiremock-jre8 (2) test org.awaitility awaitility (3) test 1 quarkus-junit5 and rest-assured dependencies are required for HTTP-based testing in JVM mode. 2 wiremock-jre8 dependency allows you to mock the server that acts as a sink. 3 awaitility dependency is used to express the expectations of an asynchronous system. For more information, see Awaitility website. You can also see the dependencies added in pom.xml file of serverless-workflow-order-processing example application. Add failsafe maven plug-in to run integration tests: maven-failsafe-plugin in the pom.xml plug-in section maven-failsafe-plugin ${version.failsafe.plugin} org.jboss.logmanager.LogManager ${maven.home} integration-test verify More information in maven-failsafe-plugin documentation. Create a test class that mocks the sink using WireMock as shown in the following example: Example of a test class @QuarkusTest(1) public class VerifyWorkflowExecutionIT { (2) private static WireMockServer sink; (3) static { (4) RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); } /** * Starts the \"sink\" server, which is the endpoint that will receive our produced events */ @BeforeAll (5) public static void startSink() { sink = new WireMockServer(options().port(8181)); (6) sink.start(); (7) sink.stubFor(post(\"/\").willReturn(aResponse().withBody(\"ok\").withStatus(200))); (8) } @AfterAll (9) public static void stopSink() { if (sink != null) { sink.stop(); (10) } } @Test void processDomesticOrderUnderFraudEval() throws JsonProcessingException, InterruptedException { final ObjectMapper objectMapper = new ObjectMapper(); final Order order = new Order(); order.setId(UUID.randomUUID().toString()); order.setDescription(\"iPhone 12\"); order.setTotal(1001); order.setCountry(\"US\"); given() (4) .header(\"ce-specversion\", \"1.0\") .header(\"ce-id\", order.getId()) .header(\"ce-source\", \"/from/test\") .header(\"ce-type\", \"orderEvent\") .contentType(MediaType.APPLICATION_JSON) .body(objectMapper.writeValueAsString(order)) .post(\"/\") .then() .statusCode(200); await() (11) .atMost(60, SECONDS) .with().pollInterval(1, SECONDS) .untilAsserted(() -> { sink.verify(2, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(order.getId()))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"fraudEvaluation\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"domesticShipping\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); }); (12) } } 1 @QuarkusTest starts the Quarkus server for the lifetime of the test execution run. For more information, see Quarkus - Testing your application. 2 The test name ends with IT to identify which test needs to be executed as an integration test. More details in maven-failsafe-plugin documentation. 3 WireMockServer is a mocked server instance that is used for SinkBinding for testing. 4 given() is used to test interactions with the application. For more information about testing interactions, see Testing your workflow application using REST Assured. 5 @BeforeAll annotation is used to signal that the annotated method must be executed before running all the tests. 6 Creates a WireMockServer instance, listening at the port that is passed as a parameter and must match with the sink configuration. 7 Starts the server before the tests are executed. 8 Stubs the mocked API response. It accepts a MappingBuilder instance that is used to build API mapping information, such as URL, request parameters, body, headers, and authorization. 9 @AfterAll annotation is used to signal that the annotated method must be executed after executing all the tests. 10 Stops the server after executing all the tests. 11 await() is added to wait for asynchronous operations. 12 verify verifies if the request hits the mock API using the expected event content. You can check the VerifyWorkflowExecutionIT class of serverless-workflow-order-processing example application. Start the server before executing the tests, and stop the server once the tests are completed. You can also reset the mock stubs between the tests. Configure your test application to use the WireMockServer as a sink. Also, add the reference of WireMockServer in the application.properties file as shown in the following example: Example adding sink connection property in application.properties file mp.messaging.outgoing.kogito_outgoing_stream.url=http://0.0.0.0:8181 (1) 1 The port that needs to match with the passed parameter. The parameter is passed when the WireMockServer is created in the test class. For more information, see application.properties file of serverless-workflow-order-processing example application. To run the tests, execute the following command: Run the tests mvn clean verify The testing example in this document is based on the serverless-workflow-order-processing example application. The serverless-workflow-order-processing example application contains three workflows as shown in the following figure: Figure 1. Workflows in serverless-workflow-order-processing example The Order Workflow in the serverless-workflow-order-processing example application processes the incoming order event and starts a parallel state, which sends requests to two workflows including Fraud Handling and Shipping Handling. The Order Workflow ends when both Fraud Handling and Shipping Handling workflows are completed. The Fraud Handling workflow produces a FraudEvaluation event if the received order is more than 1000 USD. In the workflow architecture, any other system or service can read the FraudEvaluation event and react upon it, such as canceling the order. Simultaneously, regardless of evaluating the fraud, the Shipping Handling workflow produces events that classify the required shipping service, such as international or domestic. In this example, domestic shipping is classified for any order, containing the address within the United States. The following figure shows the event flow among the components in the serverless-workflow-order-processing example application: Figure 2. Example of event flow among components Also, the testing components replicate the interactions to verify the events that are received by the sink as shown in the following figure: Figure 3. Example of testing events flow Before executing a test, the WireMockServer starts listening to the configured port as the sink. The sink listens to the events that are produced by the workflows. When a workflow produces an event to the sink, the produced event is received by the WireMockServer, and then the test verifies the event content. The processDomesticOrderUnderFraudEval in the VerifyWorkflowExecutionIT class, produces events, such as fraudEvaluation (Total > 1000) and domesticShipping (country = \"US\"). Also, the order event consumed by the Order Workflow needs to match the requirements as shown in the following example: Example requirements for Order Workflow final ObjectMapper objectMapper = new ObjectMapper(); final Order order = new Order(); order.setId(UUID.randomUUID().toString()); order.setDescription(\"iPhone 12\"); order.setTotal(1001); order.setCountry(\"US\"); given() .header(\"ce-specversion\", \"1.0\") .header(\"ce-id\", order.getId()) .header(\"ce-source\", \"/from/test\") .header(\"ce-type\", \"orderEvent\") .contentType(MediaType.APPLICATION_JSON) .body(objectMapper.writeValueAsString(order)) .post(\"/\") .then() .statusCode(200); After matching the requirements, the test verifies if the sink is receiving the expected events as shown in the following example: Example of a sink verification await() .atMost(60, SECONDS) .with().pollInterval(1, SECONDS) .untilAsserted(() -> { sink.verify(2, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(order.getId()))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"fraudEvaluation\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"domesticShipping\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); }); The await() method in the previous example allows the test to retry the validations until the verifications are declared or until the specified time is expired. In this example, the specified time is 60 seconds. The following example shows how to check if the sink (WireMockServer) receives two events for the same order ID: Example if sink receives the events sink.verify(2, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(order.getId()))); To check the content of the received events, the following verifications can be declared or performed on the types: Example of verifications sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"fraudEvaluation\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"domesticShipping\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); After declaring the verifications on received events, the test successfully ends and the WireMockServer stops. Creating your first workflow service Testing your workflow application using REST Assured Mocking OpenAPI services using WireMock Testing a Quarkus application Knative Eventing components interaction: Source, Trigger, Broker, and Sink If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Mocking HTTP CloudEvents sink using WireMock","component":"serverlessworkflow","version":"1.43.0.Final","name":"mocking-http-cloudevents-with-wiremock","url":"/serverlessworkflow/latest/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","titles":[{"text":"Overview","hash":"con-sinkbinding-test-overview","id":1},{"text":"Testing a workflow application using SinkBinding","hash":"proc-test-sw-application-sinkbinding","id":2},{"text":"Example of test execution cycle","hash":"ref-example-test-execution-cycle","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"43":{"id":43,"text":"This document describes how to mock OpenAPI services using WireMock. The testing procedure described in this document is based on the serverless-workflow-service-calls-quarkus example application. WireMock is an open source Mocking API for unit, integration, and performance tests. You can use WireMock to isolate your tests from third party APIs and prototype APIs that do not exist. Prerequisites The examples used in this document assumes that you have the following prerequisites: Required tooling is installed. For more information, see Getting familiar with SonataFlow tooling. A workflow project is created and orchestrates OpenAPI services. For more information about orchestrating OpenAPI services, see Orchestrating the OpenAPI services. The procedure in this section describes how you can add WireMock to your workflow application. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Procedure Add the following WireMock dependency to the pom.xml file of your project: Add WireMock dependency to pom.xml com.github.tomakehurst wiremock-jre8 {wiremock.version} test Replace {wiremock.version} variable with the version of WireMock that you want to use. Select one of the following methods to start your WireMock server: You can start the WireMock server as a QuarkusTestResource. If you select this method, then the WireMock server is started once before you run any test, and the server is stopped when the test finishes. This option is suitable for most use cases. You can start the WireMock server independently for each test. This option is useful when you want each test to behave differently. For more information about starting the WireMock server, see Starting WireMock server as a QuarkusTestResource and Starting WireMock server for a specific test. Start the WireMock server as shown in the following example: Example of starting a WireMock server WireMockConfiguration config = WireMockConfiguration.wireMockConfig().dynamicPort(); (1) WireMockServer wireMockServer = new WireMockServer(config); (2) wireMockServer.start(); (3) 1 Creates the configuration for the WireMock server. You can use a dynamic port since it prevents the tests from failing due to port conflicts. When you cannot use a dynamic port, you can use the WireMockConfiguration#port(int) method to use a fixed port number. 2 Creates the WireMock server instance. 3 Starts the WireMock server. Mock the endpoints as shown in the following example: Example of mocking endpoints ObjectMapper objectMapper = new ObjectMapper(); JsonNode greecePayload = objectMapper.readTree(getClass().getResourceAsStream(\"/country_mock.json\")); (1) wireMockServer.stubFor(WireMock.get(WireMock.urlEqualTo(\"/rest/v2/name/Greece\")) (2) .willReturn(WireMock.aResponse() (3) .withStatus(200) (4) .withHeader(\"Content-Type\", \"application/json\") (5) .withJsonBody(greecePayload))); (6) 1 Creates the JSON payload, which the WireMock server returns. Alternatively, you can use the ResponseDefinitionBuilder#withBody method to define a String or a byte[] as the response body. 2 Defines a stub for the /rest/v2/name/Greece endpoint. 3 Defines the response for the stub. 4 Defines the response status. 5 Defines the response headers. 6 Defines the response body. Stop the WireMock server as shown in the following example: Example of stopping a WireMock server wireMockServer.stop(); In the process of adding a mocked OpenAPI service to your tests, you need to start the WireMock server. You can start the WireMock server either as a QuarkusTestResource or you can start the server for each test. The procedure in this section describes how you can start the WireMock server as a QuarkusTestResource. For more information about QuarkusTestResource, see Starting services before the Quarkus application starts document. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. WireMock dependency is added in the pom.xml file. Procedure Create a class that implements the QuarkusTestResource interface as shown in the following example: Example implementation of QuarkusTestResource import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.core.WireMockConfiguration; import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; import java.io.IOException; import java.io.UncheckedIOException; import java.util.Map; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.get; import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; public class RestCountriesMockServer implements QuarkusTestResourceLifecycleManager { private WireMockServer wireMockServer; @Override public Map start() { (1) configureWiremockServer(); return Map.of(\"quarkus.rest-client.restcountries_json.url\", wireMockServer.baseUrl() + \"/rest\"); (2) } private void configureWiremockServer() { wireMockServer = new WireMockServer(WireMockConfiguration.wireMockConfig().dynamicPort()); wireMockServer.start(); ObjectMapper objectMapper = new ObjectMapper(); JsonNode greecePayload; try { greecePayload = objectMapper.readTree(getClass().getResourceAsStream(\"/country_mock.json\")); } catch (IOException e) { throw new UncheckedIOException(e); } wireMockServer.stubFor(get(urlEqualTo(\"/rest/v2/name/Greece\")) .willReturn(aResponse() .withStatus(200) .withHeader(\"Content-Type\", \"application/json\") .withJsonBody(greecePayload))); } @Override public void stop() { (3) if (wireMockServer != null) { wireMockServer.stop(); } } } 1 Starts the test resource. This method is called once before running all the tests. 2 Returns a map of application properties that are set in the test environment. In this case, the quarkus.rest-client.restcountries_json.url property is set as the base URL of the WireMock server. 3 Stops the test resource. This method is called once after running all the tests. Use the QuarkusTestResource implementation in your test class as shown in the following example: Example of a test class using the QuarkusTestResource implementation import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; @QuarkusTest @QuarkusTestResource(RestCountriesMockServer.class) (1) class CountryServiceWorkflowTest { @Test void testFeatureA() { // ... } @Test void testFeatureB() { // ... } } 1 Uses the RestCountriesMockServer class as a test resource. You can also start the WireMock server to be used in a specific test. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. WireMock dependency is added in the pom.xml file. Procedure Wrap the logic of a test between starting and stopping the WireMock server as shown in the following example: Example of a test using a specific WireMock server instance import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.core.WireMockConfiguration; import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.get; import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; @QuarkusTest class CountryServiceWorkflowTest { @Test void testFeatureA() throws IOException { WireMockServer wireMockServer = startWiremockServerForFeatureA(); try { // test logic } finally { wireMockServer.stop(); } } @Test void testFeatureB() { WireMockServer wireMockServer = startWiremockServerForFeatureB(); try { // test logic } finally { wireMockServer.stop(); } } private static WireMockServer startWiremockServerForFeatureA() throws IOException { WireMockServer wireMockServer = new WireMockServer(WireMockConfiguration.wireMockConfig().dynamicPort()); wireMockServer.start(); ObjectMapper objectMapper = new ObjectMapper(); JsonNode greecePayload = objectMapper.readTree(CountryServiceWorkflowTest.class.getResourceAsStream(\"/country_mock_feature_a.json\")); wireMockServer.stubFor(get(urlEqualTo(\"/rest/v2/name/Greece\")) .willReturn(aResponse() .withStatus(200) .withHeader(\"Content-Type\", \"application/json\") .withJsonBody(greecePayload))); return wireMockServer; } private static WireMockServer startWiremockServerForFeatureB() { WireMockServer wireMockServer = new WireMockServer(WireMockConfiguration.wireMockConfig().dynamicPort()); wireMockServer.start(); wireMockServer.stubFor(get(urlEqualTo(\"/rest/v2/name/Greece\")) .willReturn(aResponse().withStatus(404))); return wireMockServer; } } You can test your workflow application using the instructions described in Testing your workflow application using REST Assured document. Creating your first workflow service Testing your workflow application using REST Assured If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Mocking OpenAPI services using WireMock","component":"serverlessworkflow","version":"1.43.0.Final","name":"mocking-openapi-services-with-wiremock","url":"/serverlessworkflow/latest/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","titles":[{"text":"Adding a mocked OpenAPI service to your tests","hash":"proc-add-mocked-openapi-service-tests","id":1},{"text":"Starting WireMock server as a QuarkusTestResource","hash":"proc-start-wiremock-server-quarkustestresource","id":2},{"text":"Starting WireMock server for a specific test","hash":"proc-start-wiremock-server-specific-test","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"44":{"id":44,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"tooling","url":"/serverlessworkflow/latest/tooling/tooling.html","titles":[]},"45":{"id":45,"text":"The Saga design pattern manages data consistency across participants that are available in distributed transaction scenarios. For more information about Saga pattern, see the initial publication. In a microservice architecture, you can define a participant as microservice, which is responsible to perform actions related to the business domain. The Saga pattern manages the transactions using a sequence of steps. If a failure occurs while executing a step, then a sequence of compensating actions is executed to undo the changes that are made during the execution. As an alternative, you can leave the system in a known termination state to be consistent. To understand the implementation of Saga pattern in a workflow, you can use the serverless-workflow-saga-quarkus example application in GitHub repository. The serverless-workflow-saga-quarkus example application is based on the order fulfillment process and describes how to define the Saga pattern using SonataFlow. In the order fulfillment example, a user buys an item from an e-commerce application. The user adds the delivery information and payment details, and waits for the item to be delivered. The following figure shows the sequence of steps that are executed to complete an order: Figure 1. Example of order fulfillment process The previous figure contains the following steps: Order checkout: User confirms the order with selected items, payment method, and delivery address. Stock reservation: The selected items in the order are reserved in the stock. Payment processing: Payment is processed based on the selected payment method and user information. For example, in case of processing payment using credit card, then the credit is verified and allocated to the payment. Shipping processing: The shipping processing represents a mechanism, which communicates with a third-party or an internal system who are responsible for logistics and delivery. The following figure describes the Saga pattern using the success and failure workflows in the order fulfillment process: Figure 2. Example of Saga pattern in Order fulfillment process The success workflow in the previous figure consists of the following steps: Reserve item stock Process the payment Schedule the order shipping However, in the failure workflow an error occurred during the shipping process. In this situation, a sequence of compensation actions is executed, including canceling the payment and releasing the stock for the items in the order. In the serverless-workflow-saga-quarkus example application, a workflow is used that implements the Saga pattern, in which all the steps and compensation actions are defined. Also, the workflow plays the role of Saga Executor Coordinator (SEC), which orchestrates the calls to the participants in the Saga pattern. The workflow definition used to define the Saga pattern is available in the order-saga-error-handling.sw.json file. Figure 3. Example of order fulfillment Saga workflow In the previous example figure of workflow, the calls are orchestrated to the participants (for example, order service, payment service), each participant can throw possible errors, and compensations for each step are defined, that are executed once an error appears during the workflow execution. To define the interactions among participants in the Saga pattern using Serverless Workflow specification, you can use workflow states with transitions. In Serverless Workflow specification, each workflow state represents a step to be completed in the Saga pattern. Also, an action associated with the workflow state represents how a participant is invoked to execute a given step. Example of workflow state declaration representing the payment process in Saga { \"name\":\"processPayment\", \"type\":\"operation\", \"actions\":[ { \"name\":\"processPaymentAction\", \"functionRef\":{ \"refName\":\"processPayment\", \"arguments\":{ \"orderId\":\".orderId\", \"failService\":\".failService\" } }, \"actionDataFilter\":{ \"results\":\".\", \"toStateData\":\".paymentResponse\" } } ], \"transition\":\"scheduleShipping\", \"compensatedBy\":\"CancelPayment\", \"onErrors\":[ { \"errorRef\":\"process payment failed\", \"transition\":\"ServiceError\" } ] } In the previous example, the processPayment state contains a processPaymentAction action, which invokes a function to execute the payment processing that Payment Service participant might process. The transition attribute represents the next step to be started, which schedules the order shipping for the Saga pattern. Compensation actions When designing a Saga pattern, compensation actions for each step is considered as a core functionality, which is executed by a participant. In SonataFlow each workflow state must define a compensation action using compensatedBy attribute, indicating another workflow state that performs the compensation action. For example, in serverless-workflow-saga-quarkus, processPayment state defines CancelPayment as a compensation action in the payment process. Example of defining a compensation action \"compensatedBy\": \"CancelPayment\" Errors In SonataFlow errors are identified by a name and can be associated with a workflow state. For example, a process payment failed error is associated with the processPayment state. Following is an example of error declaration in the workflow definition: Example the error declaration for the Saga { \"errors\":[ { \"name\":\"reserve stock failed\", \"code\":\"org.kie.kogito.ServiceException\" }, { \"name\":\"process payment failed\", \"code\":\"org.kie.kogito.ServiceException\" }, { \"name\":\"shipping failed\", \"code\":\"org.kie.kogito.ServiceException\" } ] } Once an error occurs during the workflow execution, the associated compensation action is triggered. An error definition uses the fully qualified class name (FQCN) for Java exceptions that are thrown by functions. In the previous example of error definition, org.kie.kogito.ServiceException is thrown by the service calls that are defined as Java methods in the PaymentService.java file. Example custom function using a Java class and method { \"name\":\"reserveStock\", \"type\":\"custom\", \"operation\":\"service:org.kie.kogito.PaymentService::processPayment\" } The function that are throwing errors can be any type of functions, such as REST, OpenAPI, or gRPC. For information about error handling, see Error handling in SonataFlow. The workflow engine controls the execution of the flow and keeps the track of the steps that need to be compensated. Also, the engine ensures that compensated states are executed in reverse order of each completed step. The engine is a stateful, allowing Saga to contain wait states, such as callbacks. After each wait state, the workflow is persisted and can continue once it receives a request or event. The serverless-workflow-saga-quarkus example application shows a Saga workflow that is executed as request-response. This is called a straight through process, in which an entire workflow is executed in a single request. You can use the following examples as a reference to run and test the Saga pattern in a workflow: Create new success order You can use the following example to send a request for creating an order: Example request to create an order curl -L -X POST \"http://localhost:8080/order_saga_error_workflow\" -H 'Content-Type: application/json' --data-raw '{ \"orderId\": \"03e6cf79-3301-434b-b5e1-d6899b5639aa\" }' Example response { \"id\":\"b5c0bf16-1e37-4d7a-82cd-610809090d9c\", \"workflowdata\":{ \"orderId\":\"03e6cf79-3301-434b-b5e1-d6899b5639aa\", \"stockResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"dc32abe6-9706-4061-8e96-910d8e06728d\" }, \"paymentResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"505259d9-1c12-40ea-af5d-679e2cd89394\" }, \"shippingResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"d6e2d538-0229-4b8e-a363-17ebabdb3585\" }, \"orderResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"03e6cf79-3301-434b-b5e1-d6899b5639aa\" } } } The response contains the workflow data with nested attributes, which represent the responses from the execution of each step including success or failure. In the previous example, the orderResponse attribute indicates if the order can be confirmed by the client by initiating the Saga workflow. Therefore, if the value of the orderResponse attribute is success, then the order can be confirmed, otherwise the order can be canceled. When executing the application, you can also verify the log with information related to the executed steps as shown in the following example: Example console output 2022-06-24 13:44:36,666 INFO [org.kie.kog.StockService] (executor-thread-0) Reserve Stock for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:44:36,669 INFO [org.kie.kog.PaymentService] (executor-thread-0) Process Payment for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:44:36,673 INFO [org.kie.kog.ShippingService] (executor-thread-0) Schedule Shipping for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:44:36,676 INFO [org.kie.kog.OrderService] (executor-thread-0) Order Success 03e6cf79-3301-434b-b5e1-d6899b5639aa Activate compensation actions To test the workflow, an optional failService attribute is introduced, indicating which participant must respond with an error. In the following example, the ShippingService state throws an error, which breaks the workflow execution and triggers the compensation actions: Example compensation request curl -L -X POST 'http://localhost:8080/order_saga_error_workflow' -H 'Content-Type: application/json' --data-raw '{ \"orderId\": \"03e6cf79-3301-434b-b5e1-d6899b5639aa\", \"failService\": \"ShippingService\" }' Example response { \"id\":\"217050a3-6676-4c0e-8555-2fcda936e00e\", \"workflowdata\":{ \"orderId\":\"03e6cf79-3301-434b-b5e1-d6899b5639aa\", \"failService\":\"ShippingService\", \"stockResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"6ab362c6-a6c4-4517-b232-3349741271d5\" }, \"paymentResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"2114cc5b-1912-4b34-b869-734907f0fef2\" }, \"cancelPaymentResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"2114cc5b-1912-4b34-b869-734907f0fef2\" }, \"cancelStockResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"6ab362c6-a6c4-4517-b232-3349741271d5\" }, \"orderResponse\":{ \"type\":\"ERROR\", \"resourceId\":\"03e6cf79-3301-434b-b5e1-d6899b5639aa\" } } } When executing the application, you can also verify the log with information related to the executed steps as shown in the following example: Example console output 2022-06-24 13:43:45,077 INFO [org.kie.kog.StockService] (executor-thread-0) Reserve Stock for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:43:45,215 INFO [org.kie.kog.PaymentService] (executor-thread-0) Process Payment for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:43:45,219 INFO [org.kie.kog.ShippingService] (executor-thread-0) Schedule Shipping for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:43:45,219 ERROR [org.kie.kog.MockService] (executor-thread-0) Error in ShippingService for 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:43:45,230 INFO [org.kie.kog.PaymentService] (executor-thread-0) Cancel Payment 4b94408d-8cad-432d-85bb-63dd79c4071e 2022-06-24 13:43:45,239 INFO [org.kie.kog.StockService] (executor-thread-0) Cancel Stock 9d543764-8a8b-4d94-aaee-e6ccbe9c94c3 2022-06-24 13:43:45,244 INFO [org.kie.kog.OrderService] (executor-thread-0) Order Failed 03e6cf79-3301-434b-b5e1-d6899b5639aa Error handling in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Saga orchestration example in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestration-based-saga-pattern","url":"/serverlessworkflow/latest/use-cases/orchestration-based-saga-pattern.html","titles":[{"text":"Overview of Saga pattern","hash":"con-saga-overview","id":1},{"text":"Example of Saga pattern a workflow","hash":"ref-sw-example-saga-pattern","id":2},{"text":"Examples of running and testing the Saga pattern in a workflow","hash":"ref-sw-run-test-saga-example","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"46":{"id":46,"text":"The timeouts showcase is designed to show how to configure and execute workflows that use timeouts, according to different deployment scenarios. While all the scenarios contain the same set of workflows, they are provided as independent example projects, to facilitate the execution and understanding of each case. The following workflows are provided: callback_state_timeouts switch_state_timeouts event_state_timeouts It is a simple workflow that, when the execution reaches the state CallbackState, an action is executed, and it waits for the event callbackEvent to arrive in order to continue the execution. However, a timeout is configured to set the maximum waiting time for that event. Figure 1. callback_state_timeouts workflow Callback event definition { \"name\": \"callbackEvent\", \"source\": \"\", \"type\": \"callback_event_type\" } CallbackState definition { \"name\": \"CallbackState\", \"type\": \"callback\", \"action\": { \"name\": \"callbackAction\", \"functionRef\": { \"refName\": \"callbackFunction\", \"arguments\": { \"input\": \"${\\\"callback-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" has executed the callbackFunction.\\\"}\" } } }, \"eventRef\": \"callbackEvent\", \"transition\": \"CheckEventArrival\", \"onErrors\": [ { \"errorRef\": \"callbackError\", \"transition\": \"FinalizeWithError\" } ], \"timeouts\": { \"eventTimeout\": \"PT30S\" } } The timeout is configured with a duration of 30 seconds, and if no event arrives during this time, the flow execution moves to the next state, and the workflow’s data remains unchanged. On the other hand, if the event arrive, the event payload is merged into the workflow’s data, and thus, the eventData property of the workflow’s data, will contain the information carried by the event payload. Using this simple configuration strategy, the workflow can collect the event information, and use it for example to determine the path to go in the next state. See the callback state definition for more information. For more information about how the incoming event information can be merged into the workflow’s data you can see Event data filters. This workflow is similar to the callback_state_timeouts, but when the execution reaches the state ChooseOneEvent, it waits for one of the two configured events, visaDeniedEvent or visaApprovedEvent to arrive. If any of the configured events arrives before the timeout is overdue, the workflow execution moves to the next state defined in the corresponding transition. If none of the events arrives before the timeout is overdue, the workflow execution moves to the state defined in the defaultCondition transition. See the switch state definition for more information. Figure 2. switch_state_timeouts workflow ChooseOneEvent definition { \"name\": \"ChooseOnEvent\", \"type\": \"switch\", \"eventConditions\": [ { \"eventRef\": \"visaApprovedEvent\", \"transition\": \"ApprovedVisa\" }, { \"eventRef\": \"visaDeniedEvent\", \"transition\": \"DeniedVisa\" } ], \"defaultCondition\": { \"transition\": \"HandleNoVisaDecision\" }, \"timeouts\": { \"eventTimeout\": \"PT30S\" } } This workflow is similar to the switch_state_timeouts, but when the execution reaches the state WaitForEvent, it waits for one of the configured events, event1 or event2, to arrive. Each event has a number of configured actions to execute, but unlike the switch state, only one possible transition exists. If none of the configured events arrives before the timeout is overdue, the workflow execution moves to the next state defined in the transition property, skipping the events that were not received in time together with actions configured for them. If one of the events arrives before the timeout is overdue, the workflow executes the corresponding actions, and finally moves to the state defined in transition. The semantic of this state might vary depending on the exclusive flag, in the example the default value of true will be applied, and thus, the workflow will transition as soon as the first event arrives. See the event state definition for more information. Figure 3. event_state_timeouts workflow WaitForEvent definition { \"name\": \"WaitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"event1\" ], \"eventDataFilter\": { \"data\": \"${ \\\"The event1 was received.\\\" }\", \"toStateData\": \"${ .exitMessage }\" }, \"actions\": [ { \"name\": \"printAfterEvent1\", \"functionRef\": { \"refName\": \"systemOut\", \"arguments\": { \"message\": \"${\\\"event-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" executing actions for event1.\\\"}\" } } } ] }, { \"eventRefs\": [ \"event2\" ], \"eventDataFilter\": { \"data\": \"${ \\\"The event2 was received.\\\" }\", \"toStateData\": \"${ .exitMessage }\" }, \"actions\": [ { \"name\": \"printAfterEvent2\", \"functionRef\": { \"refName\": \"systemOut\", \"arguments\": { \"message\": \"${\\\"event-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" executing actions for event2.\\\"}\" } } } ] } ], \"timeouts\": { \"eventTimeout\": \"PT30S\" }, \"transition\": \"PrintExitMessage\" } To execute the workflows you can use any of the available deployment scenarios: SonataFlow Operator Dev Profile Quarkus Workflow Project with embedded services Quarkus Workflow Project with standalone services When you work with the SonataFlow Operator Dev Profile, the operator will automatically provision an execution environment that contains an embedded job service instance, as well as an instance of the data index service. And thus, there is no need for additional configurations when you use timeouts. To execute the workflows you must: In a command terminal, clone the kogito-examples repository, navigate to the cloned directory, and follow these steps: git clone https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-timeouts-showcase-operator-devprofile Similar to the SonataFlow Operator Dev Profile, this scenario shows how to configure the embedded job service and data index service, when you work with a Quarkus Workflow Project. And is also intended for development purposes. In a command terminal, clone the kogito-examples repository, navigate to the cloned directory, and follow these steps: git clone https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-timeouts-showcase-embedded This is the most complex and close to a production scenario. In this case, the workflows, the job service, the data index service, and the database, are deployed as standalone services in the kubernetes/knative cluster. Additionally, the communications from the workflows to the job service, and from the jobs service to the data index service, are resolved via the knative eventing system. By using the knative eventing system the underlying low level communication system is transparent to the integration. The following diagram shows the architecture for this use case: Every time a workflow needs to program a timer for a given timeout, a cloud event is sent to the job service for that purpose. When a timer is overdue, a rest call is executed to notify the workflow, which then must execute accordingly to the given state semantic. Workflow and job status changes are propagated to the Data Index Service via cloud events. Figure 4. Knative Workflow with Job Service architecture timeouts-showcase-extended: Is the Quarkus Workflow Project that contains the workflows, that must be maven build, and deployed into the kubernetes cluster. jobs-service-postresql: Is the job service that will be deployed into the kubernetes cluster. data-index-service-postgresql: Is the data index service that will be deployed into the kubernetes cluster. timeouts-showcase-database: Is the PostgreSQL instance that will be deployed into the kubernetes cluster. For simplification purposes, a single database instance is used for both services to store the information about the workflow instances, and the timers. However, in a production environment is recommended to have independent database instances. To execute the workflows you must: In a command terminal, clone the kogito-examples repository, navigate to the cloned directory, and follow these steps: git clone https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-timeouts-showcase-extended Timeouts support in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Timeouts Showcase in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"timeout-showcase-example","url":"/serverlessworkflow/latest/use-cases/timeout-showcase-example.html","titles":[{"text":"callback_state_timeouts workflow","hash":"callback_state_timeouts_workflow","id":1},{"text":"switch_state_timeouts workflow","hash":"switch_state_timeouts_workflow","id":2},{"text":"event_state_timeouts workflow","hash":"event_state_timeouts_workflow","id":3},{"text":"Executing the workflows","hash":"_executing_the_workflows","id":4},{"text":"SonataFlow Operator Dev Profile","hash":"execute-operator-dev-profile","id":5},{"text":"Quarkus Workflow Project with embedded services","hash":"execute-quarkus-project-embedded-services","id":6},{"text":"Quarkus Workflow Project with standalone services","hash":"execute-quarkus-project-standalone-services","id":7},{"text":"Architecture","hash":"_architecture","id":8},{"text":"Running the example","hash":"_running_the_example","id":9},{"text":"Additional resources","hash":"_additional_resources","id":10},{"text":"Found an issue?","hash":"_found_an_issue","id":11}]},"47":{"id":47,"text":"This document describes how to build and deploy your workflow on a cluster using the SonataFlow Operator only by having a SonataFlow custom resource. Every time you need to change the workflow definition the system will (re)build a new immutable version of the workflow. If you’re still in development phase, please see the Developing Workflow with the Operator guide. Follow the Kubernetes or OpenShift sections of this document based on the cluster you wish to build your workflows on. SonataFlow Operator is under active development with features yet to be implemented. Please see SonataFlow Operator Known Issues, Limitations and Roadmap. Prerequisites A Workflow definition. The SonataFlow Operator installed. See Install the SonataFlow Operator guide The operator can build workflows on Kubernetes or OpenShift. On Kubernetes, it uses Kaniko and on OpenShift a standard BuildConfig. The operator build system is not tailored for advanced use cases and you can do only a few customizations. If your scenario has strict policies for image usage, such as security or hardening constraints, you can replace the default image used by the operator to build the final workflow container image. Alternatively, you might want to test a nightly build with a bug fix or a custom image containing your customizations. By default, the operator will use the image distributed upstream to run the workflows in the development profile. You can change this image by editing the SonataFlowPlatform custom resource in the namespace where you deployed your workflows: Patching the current SonataFlowPlatform with the new builder image # use `kubectl get sonataflowplatform` to get the SonataFlowPlatform name kubectl patch sonataflowplatform --patch 'spec:\\n build:\\n config:\\n baseImage: ' -n The operator uses the sonataflow-operator-builder-config ConfigMap in the operator’s installation namespace (sonataflow-operator-system) to configure and run the workflow build process. You can change the Dockerfile entry in this ConfigMap to tailor the Dockerfile to your needs. Just be aware that this can break the build process. Example of the sonataflow-operator-builder-config ConfigMap apiVersion: v1 data: DEFAULT_BUILDER_RESOURCE_NAME: Dockerfile DEFAULT_WORKFLOW_EXTENSION: .sw.json Dockerfile: \"FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS builder\\n \\ \\n # Copy from build context to skeleton resources project\\nCOPY * ./resources/\\n\\nRUN /home/kogito/launch/build-app.sh ./resources\\n \\n #=============================\\n \\ # Runtime Run\\n #=============================\\nFROM registry.access.redhat.com/ubi8/openjdk-11:latest\\n\\nENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'\\n \\n # We make four distinct layers so if there are application changes the library layers can be re-used\\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/lib/ /deployments/lib/\\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/*.jar /deployments/\\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/app/ /deployments/app/\\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/quarkus/ /deployments/quarkus/\\n\\nEXPOSE 8080\\nUSER 185\\nENV AB_JOLOKIA_OFF=\\\"\\\"\\nENV JAVA_OPTS=\\\"-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager\\\"\\nENV JAVA_APP_JAR=\\\"/deployments/quarkus-run.jar\\\"\\n\" kind: ConfigMap metadata: name: sonataflow-operator-builder-config The excerpt above is just an example. The current version might have a slightly different version. Don’t use this example in your installation. You can create or edit a SonataFlowPlatform in the workflow namespace specifying the resources requirements for the internal builder pods: Example of SonataFlowPlatform apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: template: resources: requests: memory: \"64Mi\" cpu: \"250m\" limits: memory: \"128Mi\" cpu: \"500m\" Every build process will reuse this configuration and start new instances based on it from now on. Only one SonataFlowPlatform is allowed per namespace. Try fetching the one the operator created for you and edit it instead of trying to create another one. You can fine tune the resources requirements for a particular workflow. Every workflow instance will have a SonataFlowBuild instance created with the same name as the workflow. You can edit the SonataFlowBuild custom resource and specify the same parameters. For example: Example of SonataFlowBuild apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowBuild metadata: name: my-workflow spec: resources: requests: memory: \"64Mi\" cpu: \"250m\" limits: memory: \"128Mi\" cpu: \"500m\" This parameters will only apply to new build instances. You can skip this section if you’re running on OpenShift. Follow these steps to configure your Kubernetes namespace to build workflow images with the operator. Create a new namespace that will hold all the resources that the operator will create (Pods, Deployments, Services, Secrets, ConfigMap, and Custom Resources) in this guide. Create a Namespace for the workflow to build and run in kubectl create namespace workflows # set the workflows namespace to your context kubectl config set-context --current --namespace=workflows You can follow these steps to publish on external registry that requires authentication. If you’re running on Minikube, just enable the internal registry. You can skip this whole section since the internal Minikube registry doesn’t require authentication. Create a secret for the container registry authentication kubectl create secret docker-registry regcred --docker-server= --docker-username= --docker-password= --docker-email= -n workflows or you can directly import your local Docker config into your Kubernetes cluster: Create a Secret for the container registry authentication based on local Docker config kubectl create secret generic regcred --from-file=.dockerconfigjson=${HOME}/.docker/config.json --type=kubernetes.io/dockerconfigjson -n workflows Double-check your ${HOME}/.docker/config.json. If you’re using local desktop authentication, this configuration won’t work in the cluster. You can initialize this by logging in to the target registry, e.g. docker login. The SonataFlowPlatform is the Custom Resource used to control the behavior of the SonataFlow Operator. It defines the behavior of the operator when handling all SonataFlow Custom Resources (Workflow and Build) in the given namespace. Since the operator is installed in global mode, you will need to specify a SonataFlowPlatform in each Namespace where you want to deploy Workflows. If you have deployed a workflow for development you already have a SonataFlowPlatform custom resource since the operator created one for you. Just edit the one you have. Following is a very basic SonataFlowPlatform Custom Resource example to work on Kubernetes: Example of a basic SonataFlowPlatform on Kubernetes apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: config: strategyOptions: KanikoBuildCacheEnabled: \"true\" registry: address: quay.io/kiegroup (1) secret: regcred (2) 1 Your registry address 2 The secret name created in the steps above On Minikube, you can remove the registry information entirely since you don’t need credentials for pushing to the internal registry: Example of a basic SonataFlowPlatform on Minikube apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: config: strategyOptions: KanikoBuildCacheEnabled: \"true\" The spec.build.config.strategyOptions.KanikoBuildCacheEnabled enables the internal Kaniko process to cache builder images to try to speed up the building execution. You can save this file locally and run the following command: Create a SonataFlowPlatform kubectl apply -f my-sonataflowplatform.yaml -n workflows You can also update \"on-the-fly\" the SonataFlowPlatform registry field with this command (change ) Create a SonataFlowPlatform with a specific registry cat my-sonataflowplatform.yaml | sed \"s|address: .*|address: \" | kubectl apply -f - You don’t need to do anything to build on OpenShift since the operator will configure everything for you. There are a few customizations you can do described in the Configuring the build system section. In general, the operator will create a BuildConfig to build the workflow using the mapped resource files and your workflow definition. After the build is finished, the image will be pushed to the internal OpenShift registry backed by an ImageStream object. If you are running on OpenShift, you have access to the Red Hat’s supported registry. You can change the default builder image by editing the sonataflow-operator-builder-config ConfigMap. oc edit cm/sonataflow-operator-builder-config -n sonataflow-operator-system In your editor, change the first line in the Dockerfile entry where it reads FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest to the desired image. This image must be compatible with your operator’s installation. You can now send your workflow definition (SonataFlow) to the operator. You can find a basic SonataFlow bellow: Example of the greetings workflow example apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: greeting annotations: sonataflow.org/description: Greeting example on k8s! sonataflow.org/version: 0.0.1 spec: flow: start: ChooseOnLanguage functions: - name: greetFunction type: custom operation: sysout states: - name: ChooseOnLanguage type: switch dataConditions: - condition: \"${ .language == \\\"English\\\" }\" transition: GreetInEnglish - condition: \"${ .language == \\\"Spanish\\\" }\" transition: GreetInSpanish defaultCondition: GreetInEnglish - name: GreetInEnglish type: inject data: greeting: \"Hello from JSON Workflow, \" transition: GreetPerson - name: GreetInSpanish type: inject data: greeting: \"Saludos desde JSON Workflow, \" transition: GreetPerson - name: GreetPerson type: operation actions: - name: greetAction functionRef: refName: greetFunction arguments: message: \".greeting+.name\" end: true Save a file in your local file system with this contents named greetings-workflow.yaml then run: kubectl apply -f greetings-workflow.yaml -n workflows You can check the logs of the build of your Workflow via: Get the Workflow pod logs # on Kubernetes kubectl logs kogito-greeting-builder -n workflows # on OpenShift oc logs buildconfig/greeting -n workflows The final pushed image must be printed into the logs at the end of the build. In order to check that the SonataFlow Greeting is up and running, you can try to perform a test HTTP call, from the greeting Pod. Procedure Expose the workflow so you can access it: Exposing the greeting workflow on Minikube # On Minikube you can use Nodeport kubectl patch svc greeting -n workflows -p '{\"spec\": {\"type\": \"NodePort\"}}' GREETING_SVC=$(minikube service greeting -n workflows --url) Exposing the greeting workflow on OpenShift # On OpenShift you can expose a route: https://docs.openshift.com/container-platform/4.13/networking/routes/route-configuration.html#nw-creating-a-route_route-configuration oc expose svc greeting -n workflows # get the public URL GREETING_SVC=$(oc get route/greeting --template='{{.spec.host}}') Make the HTTP call using curl: Check if the greeting workflow is running curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' $GREETING_SVC/greeting If everything is working, you should receive a response like this: Response from the greeting workflow {\"id\":\"b5fbfaa3-b125-4e6c-9311-fe5a3577efdd\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Building and Deploying Workflows with the Operator","component":"serverlessworkflow","version":"1.43.0.Final","name":"build-and-deploy-workflows","url":"/serverlessworkflow/latest/cloud/operator/build-and-deploy-workflows.html","titles":[{"text":"Configuring the build system","hash":"configure-build-system","id":1},{"text":"Using another Workflow base builder image","hash":"_using_another_workflow_base_builder_image","id":2},{"text":"Customize the base build Dockerfile","hash":"_customize_the_base_build_dockerfile","id":3},{"text":"Changing resources requirements","hash":"_changing_resources_requirements","id":4},{"text":"Building on Kubernetes","hash":"building-kubernetes","id":5},{"text":"Create a Namespace for the building phase","hash":"_create_a_namespace_for_the_building_phase","id":6},{"text":"Create a Secret for the container registry authentication","hash":"_create_a_secret_for_the_container_registry_authentication","id":7},{"text":"Configure the SonataFlow Operator (i.e. registry address, secret) for building your Workflows","hash":"_configure_the_sonataflow_operator_i_e_registry_address_secret_for_building_your_workflows","id":8},{"text":"Building on OpenShift","hash":"building-openshift","id":9},{"text":"Changing the base builder image","hash":"_changing_the_base_builder_image","id":10},{"text":"Build and deploy your workflow","hash":"build-deploy-workflow","id":11},{"text":"Check if the Workflow is running","hash":"_check_if_the_workflow_is_running","id":12},{"text":"Additional resources","hash":"_additional_resources","id":13},{"text":"Found an issue?","hash":"_found_an_issue","id":14}]},"48":{"id":48,"text":"This document describes how to configure a Workflow service with the SonataFlow Operator. When the operator deploys the Workflow service, it also creates a ConfigMap named after the SonataFlow object with the suffix -props. For example, if your Workflow name is greeting, then the ConfigMap name is greeting-props. You can use the Kubernetes object editor of your preference to add or edit the properties in the Workflow configuration. Using kubectl you can do: Editing the Workflow Properties kubectl edit cm -props Note that it’s important to respect the properties format, otherwise the operator will replace your configuration with the default one. Here’s an example of a Workflow properties stored within a ConfigMap: Example of a Workflow ConfigMap Properties apiVersion: v1 kind: ConfigMap metadata: labels: app: greeting name: greeting-props namespace: default data: application.properties: | my.properties.key = any-value The underlying runtime engine that executes the Workflow service is based on Quarkus. The application.properties key in the ConfigMap means that you can configure the Workflow as you would any Quarkus application. Any SonataFlow configuration that the documentation describes or general Quarkus application property can be configured using this method. A few properties cannot be changed in this configuration. Usually, they are already defined in the properties file. The table below lists them. Table 1. List of immutable properties Property Key Immutable Value Profile quarkus.http.port 8080 all quarkus.http.host 0.0.0.0 all org.kie.kogito.addons.knative.eventing.health-enabled false dev If you try to change any of them, the operator will override them with the default, but preserving your changes in other property keys. Configuration properties in SonataFlow SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator Building and Deploying Workflows with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Configuring Workflow Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"configuring-workflows","url":"/serverlessworkflow/latest/cloud/operator/configuring-workflows.html","titles":[{"text":"Editing the Workflow Configuration","hash":"_editing_the_workflow_configuration","id":1},{"text":"Immutable properties","hash":"_immutable_properties","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"49":{"id":49,"text":"This document describes how you can develop your Workflows directly on Kubernetes with the SonataFlow Operator. Workflows in the development profile are not tailored for production environments. To build and deploy an immutable Workflow with the operator, see Building and Deploying Workflows with the Operator. SonataFlow Operator is under active development with features yet to be implemented. Please see SonataFlow Operator Known Issues, Limitations and Roadmap. The development profile is the easiest way to start playing around with Workflows and the operator. To get started, you can use an editor of your choice to create a new SonataFlow Custom Resource YAML definition. For example: Example of a Kubernetes SonataFlow YAML definition apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: greeting annotations: sonataflow.org/description: Greeting example on k8s! sonataflow.org/version: 0.0.1 sonataflow.org/profile: dev (1) spec: flow: (2) start: ChooseOnLanguage functions: - name: greetFunction type: custom operation: sysout states: - name: ChooseOnLanguage type: switch dataConditions: - condition: \"${ .language == \\\"English\\\" }\" transition: GreetInEnglish - condition: \"${ .language == \\\"Spanish\\\" }\" transition: GreetInSpanish defaultCondition: GreetInEnglish - name: GreetInEnglish type: inject data: greeting: \"Hello from JSON Workflow, \" transition: GreetPerson - name: GreetInSpanish type: inject data: greeting: \"Saludos desde JSON Workflow, \" transition: GreetPerson - name: GreetPerson type: operation actions: - name: greetAction functionRef: refName: greetFunction arguments: message: \".greeting+.name\" end: true 1 The annotation sonataflow.org/profile: dev tells the operator to deploy the Workflow using the development profile. This means that the operator will build a running instance of the Workflow ready to receive changes during your development cycle. 2 In the flow attribute goes the Workflow definition as described by the CNCF Serverless Workflow specification. So if you already have a workflow definition, you can use it there. Alternatively, you can use the editors to create your workflow definition. Prerequisites You have installed the SonataFlow Operator You have created a new SonataFlow Kubernetes YAML file Having a new Kubernetes Workflow definition in a YAML file (you can use the above example), you can deploy it in your cluster with the following command: Deploying a new SonataFlow Custom Resource in Kubernetes kubectl apply -f -n Alternatively, you can try one of the examples available in the operator repository: Deploying the greeting Workflow example kubectl apply -f https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/v1.43.0/test/testdata/sw.kogito_v1alpha08_sonataflow_devmode.yaml -n Replace with the Namespace you’re using to deploy your workflows You can follow the Workflow status to check if everything is fine with: Checking the Workflow status kubectl get workflow -n -w You should see the Workflow conditions evolving to READY in a few seconds: Example workflow deployment status NAME PROFILE VERSION ADDRESS READY REASON greeting dev 0.0.1 False WaitingForDeployment greeting dev 0.0.1 True The REASON field gives you a cue about the current Workflow status. You can make changes to the Workflow YAML using any Kubernetes editor. For example, you can use kubectl and the following command: kubectl edit workflow/greeting -n and changing the Workflow definition inside the Custom Resource Spec section. Alternatively, you can save the Custom Resource definition file and edit it with your desired editor and re-apply it. For example using VSCode, there are the commands needed: curl -S https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/v1.43.0/config/samples/sw.kogito_v1alpha08_sonataflow_devmode.yaml > workflow_devmode.yaml code workflow_devmode.yaml kubectl apply -f workflow_devmode.yaml -n The operator ensures that the latest Workflow definition is running and ready. This way, you can include the Workflow in your development scenario and start making requests to it. In order to check that the SonataFlow Greeting workflow is up and running, you can try to perform a test HTTP call. First, you must get the service URL: Exposing the Workflow minikube service greeting -n --url http://127.0.0.1:57053 # use the above output to get the current Workflow URL in your environment When running on Minikube, the service is already exposed for you via NodePort. On OpenShift, a Route is automatically created in devmode. If you’re running on Kubernetes you can expose your service using an Ingress. You can now point your browser to the Swagger UI and start making requests with the REST interface. For example, using the above command execution you can access the Swagger UI via http://127.0.0.1:57053/q/swagger-ui/. At the Swagger UI, click on \"POST /greeting\", then on \"Try it out!\". Copy the following JSON message and hit execute: Operation Greeting result { \"name\": \"Jane Doe\" } Figure 1. The Swagger UI executing the POST /greeting operation You should see a result similar to this: Operation Greeting result { \"id\": \"984b5c6c-36ef-48ba-aa11-89fa54d25e98\", \"workflowdata\": { \"name\": \"Jane Doe\", \"greeting\": \"Hello from JSON Workflow, \" } } You can even make changes to your SonataFlow YAML file and see the results using the Swagger UI. In order to remove the SonataFlow Greeting, you can execute the following command: Removing the Workflow kubectl delete -f -n See the Referencing Additional Files in the Workflow guide for more complex scenarios where you may need to reference other resources in the workflow definition. If your scenario has strict policies for image usage, such as security or hardening constraints, you can replace the default image used by the operator. Alternatively, you might want to test a nightly build with a bug fix or a custom image containing your customizations. By default, the operator will use the image distributed upstream to run the workflows in the development profile. You can change this image by editing the SonataFlowPlatform custom resource in the namespace where you deployed your workflows: Patching the current SonataFlowPlatform with the new image # use `kubectl get sonataflowplatform` to get the SonataFlowPlatform name kubectl patch sonataflowplatform --patch 'spec:\\n devMode:\\n baseImage: ' -n From now on, every deployment in the development profile will use this image to run the workflow. The default image was created to run a Quarkus Java application in dev mode. You can replace this image with another one as long as it has the same concept. One way of doing this is using the default as the base image. As you make changes to your workflow during development, it’s likely that you will need to troubleshoot it when something goes wrong. To ensure the Workflow is running in a healthy state, the operator deploys its Pod with health check probes. If the changes you make to your Workflow cause the health checks to fail, the Pod executing the Workflow will stop responding. The following will help you discover the reason for any failure during development. Analyze the Workflow status with: Get the Workflow status conditions kubectl get workflow -o jsonpath={.status.conditions} | jq . It can give you a clue about what might be happening. See Understanding Workflow Services Status Conditions for more information. Fetch the logs and look for ERROR messages: Watch the workflow logs kubectl logs deployment/ -f If you decide to open an issue or ask for help in SonataFlow communication channels, this logging information is always useful for the person who will try to help you. The SonataFlow Operator is under active development. Sometimes a feature might not be available yet. Please see SonataFlow Operator Known Issues, Limitations and Roadmap for a comprehensive list of available features. If you identify that you are attempting to use a feature that is not available yet, you can file a new issue, so we can prioritize it. Alternatively, you can ask in SonataFlow communication channels. A wrong configuration (or lack of one) might prevent your Workflow from running correctly. The operator deploys a ConfigMap that holds the workflow properties for the Workflow. Get the properties ConfigMap kubectl get cm -props The ConfigMap name pattern is the Workflow name followed by -props. Make sure that the configuration is correct and you’re not missing any required properties for a given feature to work. You can make any changes to the configuration by simply editing the content of the ConfigMap. Once you have updated the configuration in the ConfigMap, the operator ensures that these properties are applied to the workflow. See Configuring Workflow Services for more information. The SonataFlow Operator validates the Workflow definition at the moment you create or edit the YAML file, preventing you from creating an invalid workflow. As the operator is under active development, errors during the validation might occur. In the case where validation has not prevented your error, you might have to make a few modifications to the Workflow definition to fix any problems. You can identify such problems by looking at the deployed Workflow logs as explained here. If you find an issue with a cause is not listed in this section, please let us know. Referencing Additional Files in the Workflow Building and Deploying Workflows with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Developing Workflow with the Operator","component":"serverlessworkflow","version":"1.43.0.Final","name":"developing-workflows","url":"/serverlessworkflow/latest/cloud/operator/developing-workflows.html","titles":[{"text":"Introduction to the Development Profile","hash":"_introduction_to_the_development_profile","id":1},{"text":"Deploying a New Workflow","hash":"_deploying_a_new_workflow","id":2},{"text":"Check if the Workflow is running","hash":"_check_if_the_workflow_is_running","id":3},{"text":"Remove the Workflow","hash":"_remove_the_workflow","id":4},{"text":"Referencing resources in the Workflow","hash":"_referencing_resources_in_the_workflow","id":5},{"text":"Using another Workflow base image","hash":"_using_another_workflow_base_image","id":6},{"text":"Troubleshooting the Workflow","hash":"troubleshooting","id":7},{"text":"Basic Troubleshooting","hash":"basic-troubleshooting","id":8},{"text":"Possible Failure Scenarios","hash":"_possible_failure_scenarios","id":9},{"text":"Feature Not Yet Supported","hash":"_feature_not_yet_supported","id":10},{"text":"Wrong Workflow Configuration","hash":"_wrong_workflow_configuration","id":11},{"text":"Wrong Workflow Definition","hash":"_wrong_workflow_definition","id":12},{"text":"Additional resources","hash":"_additional_resources","id":13},{"text":"Found an issue?","hash":"_found_an_issue","id":14}]},"50":{"id":50,"text":"This guide describes how to install the SonataFlow Operator in a Kubernetes or OpenShift cluster. The operator is in an early development stage (community only) and has been tested on OpenShift 4.11+, Kubernetes 1.22+, and Minikube. Prerequisites A Kubernetes or OpenShift cluster with admin privileges. Alternatively, you can use Minikube or KIND. kubectl command-line tool is installed. Otherwise, Minikube provides it. To install the operator on OpenShift refer to the \"Adding Operators to a cluster\" from the OpenShift’s documentation. When searching for the operator in the Filter by keyword field, use the word sonataflow. If you’re installing from the CLI, the operator’s catalog name is sonataflow-operator. To remove the operator on OpenShift refer to the \"Deleting Operators from a cluster\" from the OpenShift’s documentation. To install the operator on Kubernetes refer to the \"How to install an Operator from OperatorHub.io\" from the OperatorHub’s documentation. When searching for the operator in the Search OperatorHub field, use the word sonataflow. To remove the operator on Kubernetes follow the document \"Uninstall your operator\" from the OLM’s documentation. When searching for the subscription to remove, use the word my-sonataflow-operator. If you’re running on Kubernetes or OpenShift, it is highly recommended to install the operator from the OperatorHub or OpenShift Console instead since the installation is managed by OLM. Use this method only if you need a snapshot version or you’re running locally on Minikube or KIND. You can safely skip this section if you’re not using Minikube. Prerequisites A machine with at least 8GB memory and a CPU with 8 cores Docker or Podman installed Run the following command to create a new instance capable of installing the operator and deploy workflows: minikube start --cpus 4 --memory 4096 --addons registry --addons metrics-server --insecure-registry \"10.0.0.0/24\" --insecure-registry \"localhost:5000\" To speed up the build time, you can increase the CPUs and memory options so that your Minikube instance will have more resources. For example, use --cpus 12 --memory 16384. If you have already created your Minikube instance, you will need to recreate it for these changes to apply. If Minikube does not work with the default driver, also known as docker, you can try to start with the podman driver as follows: Start Minikube with the Podman driver minikube start [...] --driver podman To install the SonataFlow Operator, you can use the following command: Install SonataFlow Operator on Kubernetes kubectl create -f https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/v1.43.0/operator.yaml You can follow the deployment of the SonataFlow Operator: Watch the SonataFlow Operator pod kubectl get pod -n sonataflow-operator-system --watch A successful installation should have an output like this: Successful Installation Output NAME READY STATUS RESTARTS AGE sonataflow-operator-controller-manager-948547ffd-sr2j2 0/2 ContainerCreating 0 6s sonataflow-operator-controller-manager-948547ffd-sr2j2 1/2 Running 0 7s sonataflow-operator-controller-manager-948547ffd-sr2j2 2/2 Running 0 20s You can also follow the operator’s log: Watch the SonataFlow Operator pod logs kubectl logs deployment/sonataflow-operator-controller-manager -n sonataflow-operator-system -f Once the operator is running, it will watch for instances of the SonataFlow Custom Resources (CR). Using CRs, you can configure your SonataFlow environment and define Workflows and builds to be handled by the operator. To uninstall the SonataFlow Operator, first, you must delete all the SonataFlow Custom Resources (CR) instances managed by it. Once the CRs are deleted, you can then delete all resources created during the operator installation. To delete every CR managed by the operator in your cluster, you can run these series of commands: Delete all SonataFlow CR instances kubectl delete --all workflow --all-namespaces kubectl delete --all sonataflowbuild --all-namespaces kubectl delete --all sonataflowplatform --all-namespaces Alternatively, if you created everything under the same Namespace, deleting the given namespace has the same outcome. To uninstall the correct version of the operator, first you must get the current version by running: Getting the operator version kubectl get deployment sonataflow-operator-controller-manager -n sonataflow-operator-system -o jsonpath=\"{.spec.template.spec.containers[?(@.name=='manager')].image}\" quay.io/kiegroup/kogito-serverless-operator-nightly:1.41.0 The operator manager image reflects the current operator’s version. Replace the major and minor version names in the command below. For example, if the image version is 1.41.0 use 1.41 in the placeholder: Uninstalling the operator kubectl delete -f https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/.x/operator.yaml If you’re running a snapshot version, use this URL instead https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/main/operator.yaml. SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Install the SonataFlow Operator","component":"serverlessworkflow","version":"1.43.0.Final","name":"install-serverless-operator","url":"/serverlessworkflow/latest/cloud/operator/install-serverless-operator.html","titles":[{"text":"SonataFlow Operator OpenShift installation","hash":"_sonataflow_operator_openshift_installation","id":1},{"text":"Uninstall","hash":"_uninstall","id":2},{"text":"SonataFlow Operator Kubernetes installation","hash":"_sonataflow_operator_kubernetes_installation","id":3},{"text":"Uninstall","hash":"_uninstall_2","id":4},{"text":"SonataFlow Operator Manual Installation","hash":"_sonataflow_operator_manual_installation","id":5},{"text":"Prepare a Minikube instance","hash":"_prepare_a_minikube_instance","id":6},{"text":"Install","hash":"_install","id":7},{"text":"Uninstall","hash":"_uninstall_3","id":8},{"text":"Additional resources","hash":"_additional_resources","id":9},{"text":"Found an issue?","hash":"_found_an_issue","id":10}]},"51":{"id":51,"text":"The SonataFlow Operator is currently in Alpha version, is under active development. The following issues are currently being prioritized: Implement admission webhooks for workflow validation Manage the Functions included in a Workflow with Operator Enable toggle Workflow CR from devmode to production mode and vice-versa Review build failures and signal the reasoning in the Events API Evaluate internal registry integration on OpenShift, Kubernetes and Minikube Add support to GET method to Knative custom function Review the need of the knative/kubernetes addons inside the dev profile builder image Knative eventing addon should not provide defaults for incoming/outgoing","title":"SonataFlow Operator Known Issues, Limitations and Roadmap","component":"serverlessworkflow","version":"1.43.0.Final","name":"known-issues","url":"/serverlessworkflow/latest/cloud/operator/known-issues.html","titles":[{"text":"Roadmap","hash":"_roadmap","id":1},{"text":"CNCF Specification v0.8 Alignment","hash":"_cncf_specification_v0_8_alignment","id":2},{"text":"Workflow Productization Profile","hash":"_workflow_productization_profile","id":3},{"text":"Knative Integration","hash":"_knative_integration","id":4}]},"52":{"id":52,"text":"When migrating to version 1.43.0, you must review the SonataFlowPlatform instances. Procedure Change the .spec.platform to .spec.build.config. For example, given that you have: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: platform: registry: address: quay.io/kiegroup secret: regcred You should change it to: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: config: registry: address: quay.io/kiegroup secret: regcred Change the .spec.build to .spec.build.template. For example, given that you have: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: resources: requests: memory: \"64Mi\" cpu: \"250m\" limits: memory: \"128Mi\" cpu: \"500m\" You should change it to: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: template: resources: requests: memory: \"64Mi\" cpu: \"250m\" limits: memory: \"128Mi\" cpu: \"500m\" Change the .spec.devModeBaseImage to spec.devMode.baseImage. For example, given that you have: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: devModeBaseImage: quay.io/johndoe/myworkflow:latest You should change it to: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: devMode: baseImage: quay.io/johndoe/myworkflow:latest","title":"Migration Guide","component":"serverlessworkflow","version":"1.43.0.Final","name":"migration-guide","url":"/serverlessworkflow/latest/cloud/operator/migration-guide.html","titles":[{"text":"Version 1.43.0","hash":"_version_1_43_0","id":1}]},"53":{"id":53,"text":"This document describes how to reference additional files in the SonataFlow Custom Resource (CR). Most of the time, a workflow definition will require not only the flow definition, but also OpenAPI or AsyncAPI specification descriptors, schemas, subflows definitions, and etc. For example, when doing service orchestration using OpenAPI descriptors, you need to tell the workflow where to find these descriptors in your context. If these files are not in a remote location that can be accessed via the HTTP protocol, you must describe in the SonataFlow CR where to find them within the cluster. This is done via ConfigMaps. Prerequisites You have the files available in your file system You have permissions to create ConfigMaps in the target namespace Given that you already have the file you want to add to your workflow definition, you can create a ConfigMap as you normally would with the contents of the file. For example, given the following workflow: Example of a workflow referencing additional files apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: service annotations: sonataflow.org/description: Hello Service! sonataflow.org/version: 0.0.1 sonataflow.org/profile: dev spec: flow: start: Service dataInputSchema: specs/workflow-service-schema.json (1) functions: - name: isWinner operation: specs/workflow-service-openapi.json#isWinner (2) type: rest states: - name: Service type: operation actions: - name: CallService functionRef: refName: isWinner end: true 1 The workflow defines an input schema 2 The workflow requires an OpenAPI specification file to make a REST invocation For this example, you have two options. You can either create two ConfigMaps to have a clear separation of concerns or only one with both files. From the operator perspective, it won’t make any difference since both files will be available for the workflow application at runtime. To make it simple, you can create only one ConfigMap. Given that the files are available in the current directory: Creating a ConfigMap from the current directory kubectl create configmap service-files --from-file=$(pwd) -n Replace with the namespace where you are going to deploy the workflow. The operator won’t access ConfigMaps in other namespaces. You should have a ConfigMap with two data entries similar to this one: Example of a ConfigMap containing the data for the worflow kind: ConfigMap apiVersion: v1 metadata: name: service-files data: workflow-service-schema.json: # data was removed to save space workflow-service-openapi.json: # data was removed to save space Now you can reference this ConfigMap to your SonataFlow CR: SonataFlow CR referencing a ConfigMap resource apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: service annotations: sonataflow.org/description: Hello Service! sonataflow.org/version: 0.0.1 sonataflow.org/profile: dev spec: resources: (1) configMaps: - configMap: name: service-files (2) workflowPath: specs (3) flow: start: Service dataInputSchema: specs/workflow-service-schema.json functions: - name: isWinner operation: specs/workflow-service-openapi.json#isWinner type: rest states: - name: Service type: operation actions: - name: CallService functionRef: refName: isWinner end: true 1 Introduced a new attribute .spec.resources where you can bind the ConfigMap to the SonataFlow CR 2 The name of the ConfigMap in the same namespace 3 The path where we want to reference these files Note that the workflowPath is specs. This is the path where you want to reference the files within the ConfigMap in the workflow definition. Always create your ConfigMaps before the SonataFlow since not having the files available during startup might break the deployment. Any files you have to map to the flow definition can be added to the SonataFlow CR using this procedure. The ConfigMap containing workflow files are not tied to a particular SonataFlow instance, just referenced by it. It means that the operator won’t edit or delete them if the SonataFlow CR is updated or deleted. You have total control of the ConfigMap instance. You can organize your ConfigMaps in a way that other workflows could reuse them. In other words, one ConfigMap can be mapped to many SonataFlow Custom Resources. For example, if you have many OpenAPI or AsyncAPI specification files that your workflows can access, you can group them by domain. This way you create a static Service Registry using ConfigMaps. Other developers within your company can reuse the same specification files when designing workflows. The same applies for data input and output schemas, subflows definitions, and so on. SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator Configuring Workflow Services If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Referencing Additional Files in the Workflow","component":"serverlessworkflow","version":"1.43.0.Final","name":"referencing-resource-files","url":"/serverlessworkflow/latest/cloud/operator/referencing-resource-files.html","titles":[{"text":"Creating ConfigMaps with Workflow Additional Files","hash":"_creating_configmaps_with_workflow_additional_files","id":1},{"text":"Creating a Static Service Registry","hash":"_creating_a_static_service_registry","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"54":{"id":54,"text":"This document describes the Status and Conditions of a SonataFlow object managed by the SonataFlow Operator. Kubernetes Status is an important property to observe in order to understand what is currently happening with the object. It can also help you troubleshoot or integrate with other objects in the cluster. You can inspect the Status of any Workflow object using the following command: Checking the Workflow Status kubectl get workflow -n -o jsonpath={.status} The table below lists the general structure of a Workflow status: Table 1. Description of SonataFlow Status object Status Description ObservedGeneration Last object generation observed by the operator Conditions Current observed Workflow Conditions Address External or internal Workflow access endpoint. Implements the Knative Addressable Interface RecoverFailureAttempts How many attempts the operator tried to recover from a failure The Conditions property might vary depending on the Workflow profile. The next sections describe the current implementation. When you deploy a Workflow with the development profile, the operator deploys a ready-to-use container with a running Workflow instance. The following table lists the possible Conditions. Table 2. Conditions Scenarios in Development Condition Status Reason Description Built Unknown In development profile there’s no build process, so this state remains in Unknown status Running True The Workflow is running and in healthy state Running False WaitingForDeployment The Workflow is waiting for the underlying deployment object to have a minimum availability Running False DeploymentFailure There was a problem with the underlying deployment object. Check the message in this Condition and the Workflow Pod logs for more info Running False DeploymentIsUnavailable The underlying deployment object doesn’t have the minimum availability for this Workflow. Check the message in this condition and the Workflow Pod logs for more info Running False AttemptToRedeployFailed If the Workflow Deployment is not available, the operator will try to rollout the Deployment three times before entering this stage. Check the message in this Condition and the Workflow Pod logs for more info In normal conditions, the Workflow will transition from Running, WaitingForDeployment condition to Running. In case something wrong happens, consult the section Workflow Troubleshooting in Development. Deploying the Workflow in Production profile makes the operator build an immutable image for the Workflow application. The progress of the immutable image build can be followed by observing the Workflow Conditions. Table 3. Condition Scenarios in Production Condition Status Reason Description Built False BuildIsRunningReason The build is currently running Built False BuildFailedReason The build has failed and any attempts to have it run failed Built True Last build has finished successfully Running True The Workflow is running and in healthy state Running False WaitingForPlatform The Workflow can’t have a Pod running until a SonataFlowPlatform is ready Running False WaitingForBuildReason The Workflow is waiting for the build to finish to start running Running False WaitingForDeployment The Workflow is waiting for the underlying Deployment object to have a minimum availability Running False DeploymentFailure There was a problem with the underlying Deployment object. Check the message in this Condition and the Workflow Pod logs for more info Running False DeploymentIsUnavailable The underlying Deployment object doesn’t have the minimum availability for this Workflow. Check the message in this Condition and the Workflow Pod logs for more info Running False AttemptToRedeployFailed If the Workflow Deployment is not available, the operator will try to roll out the Deployment three times before entering this stage. Check the message in this Condition and the Workflow Pod logs for more info When building an image for a Workflow resource, a SonataFlowBuild will first be created and the operator will wait for the associated build to finish. Once the build is complete, the Workflow transitions to the deployment phase, which will provide a new Workflow service Pod to run with the built image. SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator Building and Deploying Workflows with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Understanding Workflow Services Status Conditions","component":"serverlessworkflow","version":"1.43.0.Final","name":"workflow-status-conditions","url":"/serverlessworkflow/latest/cloud/operator/workflow-status-conditions.html","titles":[{"text":"General Status","hash":"_general_status","id":1},{"text":"Development Profile Conditions","hash":"_development_profile_conditions","id":2},{"text":"Production Profile Conditions","hash":"_production_profile_conditions","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"55":{"id":55,"text":"This document describes how to build a Serverless Application Container image using the Quarkus CLI. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Latest version of Docker is installed. Alternatively, you can use Jib to build container images. However, Docker is required to build GraalVM native image using the Quarkus native builder image. Optionally, GraalVM 22.3.0 is installed. Quarkus provides a few extensions to build container images, such as Jib, docker, s2i, and buildpacks. For more information about the Quarkus extensions, see the Quarkus documentation. The examples in this document assume that you have the Quarkus tooling installed. For more information about the tooling, see Getting familiar with SonataFlow tooling. To get started with building workflow images, you can use the serverless-workflow-greeting-quarkus example application. You can skip the following procedure if you already have a workflow application. Procedure Clone the kogito-examples repository and navigate to the serverless-workflow-greeting-quarkus example application. Clone an example application git clone --branch main https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-greeting-quarkus To run the example application, follow the instructions in Creating your first workflow service. Install the Quarkus command line interface (CLI). For more information, see Installing the Quarkus CLI. Add the required Quarkus extension using Quarkus CLI: Add the Jib extension The kogito-examples already have this extension added by default, and can be activated with the container Maven profile. The steps to add the extension in your Serverless Workflow application are: quarkus extension add 'container-image-jib' After adding the Jib extension, you can verify the newly added dependency in the pom.xml file: Verify the Jib extension io.quarkus quarkus-container-image-jib After installing the required tooling, you can start building your workflow application. Prerequisites You have created a Quarkus project. Quarkus CLI is installed. For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure In a command terminal, navigate to your Quarkus project. To build your workflow application on Quarkus, set the quarkus.container-image.build property value to true and run the following command: Build your workflow application quarkus build -Dquarkus.container-image.build=true The previous command builds your image with name: {system_username}/{project_artifactId}:{project_version}. Optionally, you can set the following properties to specify the image: quarkus.container-image.registry: To define the registry address of the image, such as quay.io. When using OpenShift use the provided registry. quarkus.container-image.group: To define the registry namespace of the image. For example, context/namespace or in case of Kubernetes or OpenShift namespace/project. quarkus.container-image.name: To override the image name. By default, this property uses artifact ID. Build your workflow application with specific image information quarkus build -Dquarkus.container-image.build=true \\ -Dquarkus.container-image.group=kogito \\ -Dquarkus.container-image.name=serverless-workflow-greeting-quarkus \\ -Dquarkus.container-image.tag=1.0 \\ -Dquarkus.container-image.registry=quay.io The added Jib extension caches the target/lib directory. Based on the size of your project, Jib speeds up the rebuilds. You can also push your workflow application to the defined registry. You need to set the quarkus.container-image.push property value to true (default value is false). Example of pushing the built workflow application to a registry quarkus build -Dquarkus.container-image.build=true \\ -Dquarkus.container-image.group=kogito \\ -Dquarkus.container-image.name=serverless-workflow-greeting-quarkus \\ -Dquarkus.container-image.tag=1.0 \\ -Dquarkus.container-image.registry=quay.io \\ -Dquarkus.container-image.push=true The previous command results in the following container image pushed to quay.io: quay.io/kogito/serverless-workflow-greeting-quarkus:1.0 Alternatively, you can create an Apache Maven profile to build the container image, which can be triggered by setting the target profile. Example Apache Maven profile build-container true kogito serverless-workflow-greeting-quarkus 1.0 quay.io true You can activate the created Apache Maven profile using Quarkus CLI: Activate the Apache Maven profile quarkus build -- -Pbuild-container When it comes to workflows, a small startup footprint is expected, which can be better when using the native builds to build a workflow application. Prerequisites You have created a Quarkus project. Quarkus CLI is installed. For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure In a command terminal, navigate to your Quarkus project. To build a native image, pass the --native flag using Quarkus CLI: Example of building a native image quarkus build --native -Dquarkus.container-image.build=true \\ -Dquarkus.container-image.group=kogito \\ -Dquarkus.container-image.name=serverless-workflow-greeting-quarkus \\ -Dquarkus.container-image.tag=1.0-native \\ -Dquarkus.container-image.registry=quay.io The previous command results in the following container image: quay.io/kogito/serverless-workflow-greeting-quarkus:1.0-native In case GraalVM is not installed, you can set the -Dquarkus.native.container-build=true system property, which creates a Linux executable. Configure Docker to use the in-cluster (Remote) Docker daemon When build Container Images using a remote Docker Daemon, i.e. Minikube, you need to use the following system property instead of -Dquarkus.native.container-build=true System property to use a remote Docker Daemon -Dquarkus.native.remote-container-build=true For more information about native builds, see Building a native executable. After building your workflow image using Quarkus CLI, you can test the built image. Prerequisites Latest version of Docker is installed. Procedure Start JVM and native Container Images. Example JVM image Example native image docker run -it -p 8080:8080 quay.io/kogito/serverless-workflow-greeting-quarkus:1.0 ... INFO [io.quarkus] (main) serverless-workflow-greeting-quarkus 1.22.1.Final on JVM (powered by Quarkus 2.9.2.Final) started in 1.302s docker run -it -p 8080:8080 quay.io/kogito/serverless-workflow-greeting-quarkus:1.0-native ... INFO [io.quarkus] (main) serverless-workflow-greeting-quarkus 1.22.1.Final native (powered by Quarkus 2.9.2.Final) started in 0.039s Note that the startup of native image is faster than the JVM image. To invoke the workflow application, execute the following command once the container is started: Example request Example response curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://localhost:8080/jsongreet { \"id\": \"2acf710d-7e4a-481d-925c-dfd85a369987\", \"workflowdata\": { \"name\": \"John\", \"language\": \"English\", \"greeting\": \"Hello from JSON Workflow, \" } } Deploying your SonataFlow application on Minikube Deploying your SonataFlow application on Kubernetes Deploying your SonataFlow application on OpenShift If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Building workflow images using Quarkus CLI","component":"serverlessworkflow","version":"1.43.0.Final","name":"build-workflow-image-with-quarkus-cli","url":"/serverlessworkflow/latest/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","titles":[{"text":"Using an example application","hash":"proc-using-example-application","id":1},{"text":"Building the workflow application","hash":"proc-building-serverless-workflow-application","id":2},{"text":"Building the workflow application using a native image","hash":"proc-building-serverless-workflow-application-using-native-image","id":3},{"text":"Testing your workflow image","hash":"proc-testing-serverless-workflow-image","id":4},{"text":"Additional resources","hash":"_additional_resources","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"56":{"id":56,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"build-workflow-images-with-tekton","url":"/serverlessworkflow/latest/cloud/quarkus/build-workflow-images-with-tekton.html","titles":[]},"57":{"id":57,"text":"This document describes how to deploy a SonataFlow application using a Kubernetes cluster, along with a procedure to run the Knative platform. Prerequisites Your SonataFlow application is ready to use. For more information about building the application container, see Building workflow images using Quarkus CLI. Kubernetes Cluster is available kubectl command-line tool is installed Knative CLI is installed. For more information, see Install the Knative CLI. Knative workflow CLI is installed. For more information see Serverless Workflow plug-in for Knative CLI. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Before proceeding further, make sure that you have access to the Kubernetes cluster with Knative available. To make sure Knative is available, it can be checked with the commands below: Verify if Knative is available kubectl get services -n knative-serving NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE activator-service ClusterIP 10.97.110.167 9090/TCP,8008/TCP,80/TCP,81/TCP,443/TCP 44m autoscaler ClusterIP 10.98.64.78 9090/TCP,8008/TCP,8080/TCP 44m autoscaler-bucket-00-of-01 ClusterIP 10.111.19.134 8080/TCP 44m controller ClusterIP 10.98.150.141 9090/TCP,8008/TCP 44m default-domain-service ClusterIP 10.106.202.150 80/TCP 43m domainmapping-webhook ClusterIP 10.102.87.208 9090/TCP,8008/TCP,443/TCP 44m net-kourier-controller ClusterIP 10.100.120.208 18000/TCP 43m webhook ClusterIP 10.108.153.180 9090/TCP,8008/TCP,443/TCP 44m For more information on how to figure out if Knative is installed please refer to this link. If not, follow the installation steps described in the Knative documentation. Once Knative is ready, you can initiate the process of deploying your SonataFlow application on Kubernetes. Prerequisites Kubernetes with Knative is ready. Knative is ready. For more information, see Verifying Knative on Kubernetes. Knative CLI is installed. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Your SonataFlow application is ready to use. By default, Kubernetes does not have any registry installed. You can check with the administrator if a private registry is available. Otherwise, you can publish the Application Container image on the Quay.io, or on any other registry of your preference. If the registry requires authentication you need to create a Pull Secret with the registry credentials, for more information please take a look in this link. Procedure Create serverless-workflow-greeting-quarkus namespace using the following command: Create namespace kubectl create namespace serverless-workflow-greeting-quarkus Set the Kubernetes context to the newly created namespace using the following command: Set Kubernetes context to a namespace kubectl config set-context --current --namespace=serverless-workflow-greeting-quarkus After setting the context, all kubectl commands will use the selected namespace. You can use the following command to verify the current namespace: Verify the current namespace kubectl config view --minify -o jsonpath='{..namespace}' Deploy your SonataFlow application on Kubernetes. The next step is to deploy your workflow application and execute it. You can read the further sections on the different procedures to deploy your SonataFlow application. You can use the native image due to the faster startup. In the following procedures, you can find different approaches to deploy your workflow application, such as: Using Knative CLI (kn) Using kubectl command-line tool Using Quarkus CLI For this tutorial, we use the default-domain provided by Knative that configures Knative Serving to use the Magic DNS for naming resolution, for more details please check the Knative documentation. Once you have pushed your workflow application into the target registry, you can use the command-line tools, such as Knative CLI or Kubernetes CLI to initiate the deployment process. Prerequisites Workflow application is installed. Knative CLI is installed. For more information, see Install the Knative CLI. Procedure In a command terminal, execute the following command to deploy your workflow application using Knative CLI: Example of deploying workflow application using Knative CLI kn service create hello-workflow \\ --image=quay.io/kiegroup/serverless-workflow-greeting-quarkus:1.0 \\ --pull-policy=IfNotPresent \\ --port 8080 Example output Creating service 'hello-workflow' in namespace 'serverless-workflow-greeting-quarkus': 0.066s The Route is still working to reflect the latest desired specification. 0.099s ... 0.322s Configuration \"hello-workflow\" is waiting for a Revision to become ready. 4.885s ... 5.061s Ingress has not yet been reconciled. 5.322s Waiting for load balancer to be ready 5.460s Ready to serve. Service 'hello-workflow' created to latest revision 'hello-workflow-00001' is available at URL: http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io Depending on the cluster type where you have deployed the workflow application, the service URL might be different. Pay attention to the output to use the correct URL in the next topic. Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} You can also use kubectl command-line interface and plain Kubernetes objects to deploy your workflow application. And, instead of creating knative yaml|json descriptors, you can leverage the Quarkus Kubernetes extension and Kogito Knative add-on to generate the descriptors. Prerequisites Kogito Workflow application ready to use. Kubernetes CLI command-line tool is installed. (Optional) Quarkus CLI is installed For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure Add the Quarkus extensions to generate knative yaml|json descriptors. To use the Quarkus Kubernetes extension and Kogito Knative add-on, ensure that the following dependencies are available in the pom.xml file and Gradle: pom.xml Gradle Quarkus CLI org.kie.kogito kogito-addons-quarkus-knative-eventing io.quarkus quarkus-kubernetes quarkus-kubernetes 'io.quarkus:quarkus-kubernetes:2.16.9.Final' quarkus-kubernetes 'org.kie.kogito:kogito-addons-quarkus-knative-eventing:1.43.0.Final' quarkus ext add org.kie.kogito:kogito-addons-quarkus-knative-eventing quarkus-openshift1.43.0.Final' To generate the knative yaml|json descriptors, set the following properties in the application.properties file of your workflow application: System properties to generate knative descriptors quarkus.kubernetes.deployment-target=knative quarkus.knative.name=hello-workflow Build your workflow application. Once you have built your application, you can find the generated descriptors files in the target/kubernetes directory: knative.json knative.yml The image used in this section is the one built in the following guide: Build Workflow Image with Quarkus CLI. Following is an example of the generated files: Knative descriptor example for a workflow application --- apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: app.quarkus.io/commit-id: 06c3fe8e2dfc42e2211cbcc41224f5a3d6bd1f26 app.quarkus.io/build-timestamp: 2022-06-23 - 23:53:38 +0000 labels: app.kubernetes.io/name: hello-workflow name: hello-workflow spec: template: metadata: labels: app.kubernetes.io/name: hello-workflow spec: containerConcurrency: 0 containers: - image: quay.io/kiegroup/serverless-workflow-greeting-quarkus:1.0-native livenessProbe: failureThreshold: 3 httpGet: path: /q/health/live port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 name: hello-workflow ports: - containerPort: 8080 name: http1 protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /q/health/ready port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 Once the files are generated, you must add the imagePullPolicy manually before deploying the workflow application. Enter the following command to deploy the workflow application using kubectl: Deploy the workflow application using kubectl kubectl apply -f target/kubernetes/knative.yml Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} Prerequisites Workflow application is ready. Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Procedure Add the Quarkus extensions to deploy the knative service. You can add the Kubernetes and the Kogito Knative extensions to your project with the Quarkus CLI: Add Kubernetes and Kogito Knative extensions to the project with Quarkus CLI quarkus ext add quarkus-kubernetes kogito-addons-quarkus-knative-eventing To deploy the workflow application using Quarkus CLI, set the following system properties in application.properties file: Required system properties quarkus.knative.name=hello-workflow (1) quarkus.kubernetes.deployment-target=knative (2) quarkus.kubernetes.deploy=true (3) quarkus.container-image.push=true (4) quarkus.container-image.group=kiegroup (5) quarkus.container-image.registry=quay.io (6) quarkus.container-image.tag=1.0-SNAPSHOT (7) 1 Property to set the Knative service name 2 Property to set the target deployment type 3 Property to set whether or not deploy on an active Kubernetes cluster 4 Property to push or not the Container image to the given registry 5 Property to define which registry group/namespace the built image belongs to 6 Property to define to which registry the built image will be pushed to 7 Sets the built Container Image tag This feature works with Quarkus 2.10.2.Final or later. For more information, see link. Build and Deploy your workflow application quarkus build -DskipTests The kogito-examples already have this extension added by default, and can be activated with the container Maven profile. Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Deploying your Serverless Workflow application on Kubernetes","component":"serverlessworkflow","version":"1.43.0.Final","name":"deploying-on-kubernetes","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-kubernetes.html","titles":[{"text":"Verifying Knative availability on Kubernetes","hash":"proc-verify-knative-kubernetes","id":1},{"text":"Deploying your workflow application on Kubernetes","hash":"proc-deploy-sw-application-kubernetes","id":2},{"text":"Deploying your workflow application using Knative CLI","hash":"proc-deploy-sw-application-knative-cli","id":3},{"text":"Deploying your workflow application using Kubernetes CLI","hash":"proc-deploy-sw-application-kubectl","id":4},{"text":"Deploying your workflow application using Quarkus CLI","hash":"proc-deploy-sw-application-quarkus-cli","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"58":{"id":58,"text":"This document describes how to deploy your workflow application using a local Kubernetes cluster, such as Minikube, along with a procedure to run the Knative platform. For more information about Minikube and related system requirements, see Getting started with Minikube documentation. Prerequisites Your SonataFlow application is ready to use. For more information about building the application container, see Building workflow images using Quarkus CLI. Minikube is installed kubectl command-line tool is installed. Otherwise, Minikube handles it. Knative CLI is installed. For more information, see Install the Knative CLI. Knative workflow CLI is installed. For more information see Serverless Workflow plug-in for Knative CLI. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). To deploy your workflow application on Minikube, you need to install Knative on Minikube. However, first you need to ensure that Minikube is installed correctly. You can check the Minikube installation by entering the following commands in a command terminal: Verify Minikube version minikube version Verify Knative CLI version kn version Verify kubectl CLI version kubectl version If kubectl is not installed, then Minikube handles it when you execute the following command: kubectl is available using Minikube alias kubectl=\"minikube kubectl --\" Once you verify the Minikube and Knative CLI installation, you can install Knative on Minikube. Prerequisites Minikube is installed. Knative CLI is installed. For more information, see Install the Knative CLI. Procedure Open a command terminal and install Knative on Minikube. Configure Knative on Minikube. Knative CLI offers quickstart plug-in, which provides the required configurations. For information about installing the quickstart plug-in, see Install Knative using quickstart. After configuring the plug-in, execute the following command to configure a Minikube profile: Configure a Minikube profile kn quickstart minikube The previous command configures a Minikube profile called knative. After creating a Minikube profile, all Minikube commands use the created profile. To list the available Minikube profiles, enter the following command: List the available Minikube profiles minikube profile list Enter the following command to open the Minikube web console on the knative profile: Open Minikube web console minikube dashboard --profile knative The previous command opens the Kubernetes Management console in your browser. If the console is not opened, you can go to the URL that is returned. To follow the manual process of installing Knative on Minikube, see Knative tutorial on Minikube. Once you install Knative on Minikube, you can initiate the process of deploying your workflow application on Minikube. Prerequisites Minikube is installed. Knative is ready. For more information, see Installing Knative on Minikube. Knative CLI is installed. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Your SonataFlow application is ready to use. Procedure In a command terminal, enter the following command to configure Docker to use the in-cluster Docker daemon: Configure Docker to use in-cluster Docker Daemon eval $(minikube -p minikube docker-env --profile knative) Build your application to store it in the Minikube registry. If your workflow application container image is built before configuring Docker to use the in-cluster Docker daemon, then you might need to build the image again so that the image is available in the Minikube registry. If you are building native container images, ensure that you use the following system property to use Minikube Docker Daemon: System property to build container images -Dquarkus.native.remote-container-build=true You might be required to tag the container images using one of the following registry: ko.local dev.local For more information, see How to use locally built docker image. In that case, use the -Dquarkus.container-image.registry=some_of_the_values_above property to enable Knative fetch the container images from Minikube Docker Daemon. If you do not use the values, you might need to set the imagePullPolicy to Never or IfNotPresent, otherwise, Minikube pulls the images from a remote registry. This behavior can be avoided by tagging the image using previously listed domains. In a separate command terminal window, start the Minikube tunnel using the Knative profile to prepare the environment: Start Minikube tunnel using Knative profile minikube tunnel --profile knative The previous command starts in a loop. Therefore, this command must be running throughout the process mentioned in this document. On Mac and Windows, you might be required to provide the user password. Example tunnel output Status: machine: knative pid: 124859 route: 10.96.0.0/12 -> 192.168.58.2 minikube: Running services: [kourier] errors: minikube: no errors router: no errors loadbalancer emulator: no errors After starting the Minikube tunnel, create serverless-workflow-greeting-quarkus namespace using the following command: Create namespace kubectl create namespace serverless-workflow-greeting-quarkus Set the Kubernetes context to the newly created namespace using the following command: Set Kubernetes context to a namespace kubectl config set-context --current --namespace=serverless-workflow-greeting-quarkus After setting the context, all kubectl commands will use the selected namespace. You can use the following command to verify the current namespace: Verify the current namespace kubectl config view --minify -o jsonpath='{..namespace}' Deploy your SonataFlow application using the Minikube registry. The next step is to deploy your workflow application and execute it. You can read the further sections on the different procedures to deploy your SonataFlow application. You can use the native image due to the faster startup. In the following procedures, you can find different approaches to deploy your workflow application, such as: Using Knative CLI (kn) Using kubectl command-line tool Using Quarkus CLI Once you have pushed your workflow application into the Minikube’s registry, you can use the command-line tools, such as Knative CLI or Kubernetes CLI to initiate the deployment process. Prerequisites Workflow application is installed. Knative CLI is installed. For more information, see Install the Knative CLI. Procedure In a command terminal, execute the following command to deploy your workflow application using Knative CLI: Example of deploying workflow application using Knative CLI kn service create hello-workflow \\ --image=dev.local/kogito/serverless-workflow-greeting-quarkus:1.0 \\ --pull-policy=IfNotPresent \\ --port 8080 Example output Creating service 'hello-workflow' in namespace 'serverless-workflow-greeting-quarkus': 0.066s The Route is still working to reflect the latest desired specification. 0.099s ... 0.322s Configuration \"hello-workflow\" is waiting for a Revision to become ready. 4.885s ... 5.061s Ingress has not yet been reconciled. 5.322s Waiting for load balancer to be ready 5.460s Ready to serve. Service 'hello-workflow' created to latest revision 'hello-workflow-00001' is available at URL: http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io Depending on the cluster type where you have deployed the workflow application, the service URL might be different. Pay attention to the output to use the correct URL in the next topic. Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} You can also use kubectl command-line interface and plain Kubernetes objects to deploy your workflow application. And, instead of creating knative yaml|json descriptors, you can leverage the Quarkus Kubernetes extension and Kogito Knative add-on to generate the descriptors. Prerequisites Kogito Workflow application ready to use. Kubernetes CLI command-line tool is installed. (Optional) Quarkus CLI is installed For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure Add the Quarkus extensions to generate knative yaml|json descriptors. To use the Quarkus Kubernetes extension and Kogito Knative add-on, ensure that the following dependencies are available in the pom.xml file and Gradle: pom.xml Gradle Quarkus CLI org.kie.kogito kogito-addons-quarkus-knative-eventing io.quarkus quarkus-kubernetes quarkus-kubernetes 'io.quarkus:quarkus-kubernetes:2.16.9.Final' quarkus-kubernetes 'org.kie.kogito:kogito-addons-quarkus-knative-eventing:1.43.0.Final' quarkus ext add org.kie.kogito:kogito-addons-quarkus-knative-eventing quarkus-openshift1.43.0.Final' To generate the knative yaml|json descriptors, set the following properties in the application.properties file of your workflow application: System properties to generate knative descriptors quarkus.kubernetes.deployment-target=knative quarkus.knative.name=hello-workflow Build your workflow application. Once you have built your application, you can find the generated descriptors files in the target/kubernetes directory: knative.json knative.yml The image used in this section is the one built in the following guide: Build Workflow Image with Quarkus CLI. Following is an example of the generated files: Knative descriptor example for a workflow application --- apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: app.quarkus.io/commit-id: 06c3fe8e2dfc42e2211cbcc41224f5a3d6bd1f26 app.quarkus.io/build-timestamp: 2022-06-23 - 23:53:38 +0000 labels: app.kubernetes.io/name: hello-workflow name: hello-workflow spec: template: metadata: labels: app.kubernetes.io/name: hello-workflow spec: containerConcurrency: 0 containers: - image: dev.local/kogito/serverless-workflow-greeting-quarkus:1.0-native livenessProbe: failureThreshold: 3 httpGet: path: /q/health/live port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 name: hello-workflow ports: - containerPort: 8080 name: http1 protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /q/health/ready port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 Once the files are generated, you must add the imagePullPolicy manually before deploying the workflow application. Enter the following command to deploy the workflow application using kubectl: Deploy the workflow application using kubectl kubectl apply -f target/kubernetes/knative.yml Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} Prerequisites Workflow application is ready. Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Procedure Add the Quarkus extensions to deploy the knative service. You can add the Kubernetes and the Kogito Knative extensions to your project with the Quarkus CLI: Add Kubernetes and Kogito Knative extensions to the project with Quarkus CLI quarkus ext add quarkus-kubernetes kogito-addons-quarkus-knative-eventing To deploy the workflow application using Quarkus CLI, set the following system properties in application.properties file: Required system properties quarkus.knative.name=hello-workflow (1) quarkus.kubernetes.deployment-target=knative (2) quarkus.kubernetes.deploy=true (3) quarkus.container-image.push=false (4) quarkus.container-image.group=kogito (5) quarkus.container-image.registry=dev.local (6) quarkus.container-image.tag=1.0-SNAPSHOT (7) 1 Property to set the Knative service name 2 Property to set the target deployment type 3 Property to set whether or not deploy on an active Kubernetes cluster 4 Property to whether or not push images. False when using Minikube’s remote Docker daemon to avoid image validation 5 Property to define which registry group/namespace the built image belongs to 6 Property to define to which registry the built image will be pushed to 7 Sets the built Container Image tag This feature works with Quarkus 2.10.2.Final or later. For more information, see link. Build and Deploy your workflow application quarkus build -DskipTests The kogito-examples already have this extension added by default, and can be activated with the container Maven profile. Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Deploying your SonataFlow application on Minikube","component":"serverlessworkflow","version":"1.43.0.Final","name":"deploying-on-minikube","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-minikube.html","titles":[{"text":"Installing Knative on Minikube","hash":"proc-install-knative-minikube","id":1},{"text":"Deploying your workflow application on Minikube","hash":"proc-deploy-sw-application-minikube","id":2},{"text":"Deploying your workflow application using Knative CLI","hash":"proc-deploy-sw-application-knative-cli","id":3},{"text":"Deploying your workflow application using Kubernetes CLI","hash":"proc-deploy-sw-application-kubectl","id":4},{"text":"Deploying your workflow application using Quarkus CLI","hash":"proc-deploy-sw-application-quarkus-cli","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"59":{"id":59,"text":"This document describes how to deploy a SonataFlow application using a OpenShift cluster, along with a procedure to run the OpenShift Serverless Operator, which is based on Knative. Prerequisites Your SonataFlow application is ready to use. OpenShift CLI is installed. Knative CLI is installed. Knative CLI workflow plugin is installed. Podman If you are using Docker, you might need to update the commands accordingly. (Optional) Quarkus CLI is installed. For the following steps we will be using the OpenShift Local. However, the steps described here can be used on any OpenShift 4.x version that has support for OpenShift Serverless. If you already have an OpenShift cluster available you can skip this section. Instructions to install Openshift Local can be found here. Once you have OpenShift Local running, proceed to the next topic. If you are running OpenShift Local on Mac with M1 processors, you might not find the OpenShift Serverless Operator available. Before proceeding further, make sure that you have access to the OpenShift cluster, the OpenShift Serverless operator is properly installed and the Knative Serving is ready for use. For more information on each topic, please refer the following guides: Installing OpenShift Serverless Operator. Installing Knative Serving. Installing Knative Eventing. Knative Eventing is not required for this guide, however it is important to mention how to install it, if required by your SonataFlow application. If you get error messages related to Istio, this article might be helpful. Once Knative Serving is ready, you can initiate the process of deploying your SonataFlow application on OpenShift. Prerequisites OpenShift with Red Hat OpenShift Serverless is ready. Knative is ready. For more information, see Knative Serving. Knative CLI is installed. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Your SonataFlow application is ready to use. After checking the prerequisites, prepare the project that will be used to deploy your application: Procedure Create project oc new-project kogito-serverless Set the Kubernetes context to the newly created namespace using the following command: Set OpenShift current project oc project kogito-serverless You can use the native image for a faster startup. OpenShift comes with a registry where you can push your images built locally to be deployed. First, let’s check if the Registry is already exposed, to do that, check if the route is exposed: Check whether the OpenShift registry is exposed oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}' If no information or an error is returned, it does mean that the registry is not exposed. To expose the registry follow these steps. Now that we have the OpenShift registry exposed, let’s store into the OPENSHIFT_REGISTRY_URL environment variable, so we can use it easily in the next steps: Retrieve the OpenShift registry OPENSHIFT_REGISTRY_URL=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}') The OpenShift’s registry requires you to be logged in to be allowed to push Container Images. If you are already logged in the cluster you can use your token to authenticate to the OpenShift’s registry: Log in to the OpenShift’s registry podman login -u -p $(oc whoami -t) --tls-verify=false $OPENSHIFT_REGISTRY_URL If everything is working, you should get the Login Succeeded! message. Pushing SonataFlow Application To OpenShift’s registry First step, get the Container Image tag built previously: podman images With the Container Image, use the following command to tag the application image with the OpenShift’s registry and the namespace being used: podman tag $OPENSHIFT_REGISTRY_URL/kogito-serverless/serverless-workflow-greeting-quarkus:1.0 Then, push: podman push $OPENSHIFT_REGISTRY_URL/kogito-serverless/serverless-workflow-greeting-quarkus:1.0 The kogito-serverless is the current project/namespace created earlier to deploy your SonataFlow application. The next step is to deploy your workflow application and execute it. You can read further the next sections which explain different approaches to deploy your SonataFlow application: In the next steps you will notice the value image-registry.openshift-image-registry.svc:5000 being used. It is the internal OpenShift’s registry address where the images of the deployments will pulled from. Note that, the Container Image pushed in the previous step will be queried as image-registry.openshift-image-registry.svc:5000/kogito-serverless/serverless-workflow-greeting-quarkus:1.0 Using Knative CLI (kn) Using OpenShift command-line tool Using Quarkus CLI Once you have pushed your workflow application into the OpenShift’s registry, you can use the command-line tools, such as Knative CLI or OpenShift CLI to initiate the deployment process. Prerequisites Workflow application is installed. Knative CLI is installed. For more information, see Install the Knative CLI. Procedure In a command terminal, execute the following command to deploy your workflow application using Knative CLI: Example of deploying workflow application using Knative CLI kn service create hello-workflow \\ --image=image-registry.openshift-image-registry.svc:5000/kogito-serverless/serverless-workflow-greeting-quarkus:1.0 \\ --pull-policy=IfNotPresent \\ --port 8080 Example output Creating service 'hello-workflow' in namespace 'serverless-workflow-greeting-quarkus': 0.066s The Route is still working to reflect the latest desired specification. 0.099s ... 0.322s Configuration \"hello-workflow\" is waiting for a Revision to become ready. 4.885s ... 5.061s Ingress has not yet been reconciled. 5.322s Waiting for load balancer to be ready 5.460s Ready to serve. Service 'hello-workflow' created to latest revision 'hello-workflow-00001' is available at URL: http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io Depending on the cluster type where you have deployed the workflow application, the service URL might be different. Pay attention to the output to use the correct URL in the next topic. Verify if the workflow application is deployed correctly: On OpenShift CLI On Knative CLI oc get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} You can also use oc command-line interface and plain Kubernetes objects to deploy your workflow application. And, instead of creating knative yaml|json descriptors, you can leverage the Quarkus Kubernetes extension and Kogito Knative add-on to generate the descriptors. Prerequisites Kogito Workflow application ready to use. OpenShift CLI command-line tool is installed. (Optional) Quarkus CLI is installed For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure Add the Quarkus extensions to generate knative yaml|json descriptors. To use the Quarkus Kubernetes extension and Kogito Knative add-on, ensure that the following dependencies are available in the pom.xml file and Gradle: pom.xml Gradle Quarkus CLI org.kie.kogito kogito-addons-quarkus-knative-eventing io.quarkus quarkus-openshift quarkus-kubernetes 'io.quarkus:quarkus-openshift:2.16.9.Final' quarkus-kubernetes 'org.kie.kogito:kogito-addons-quarkus-knative-eventing:1.43.0.Final' quarkus ext add org.kie.kogito:kogito-addons-quarkus-knative-eventing quarkus-openshift1.43.0.Final' To generate the knative yaml|json descriptors, set the following properties in the application.properties file of your workflow application: System properties to generate knative descriptors quarkus.kubernetes.deployment-target=knative quarkus.knative.name=hello-workflow Build your workflow application. Once you have built your application, you can find the generated descriptors files in the target/kubernetes directory: knative.json knative.yml The image used in this section is the one built in the following guide: Build Workflow Image with Quarkus CLI. Following is an example of the generated files: Knative descriptor example for a workflow application --- apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: app.quarkus.io/commit-id: 06c3fe8e2dfc42e2211cbcc41224f5a3d6bd1f26 app.quarkus.io/build-timestamp: 2022-06-23 - 23:53:38 +0000 labels: app.kubernetes.io/name: hello-workflow name: hello-workflow spec: template: metadata: labels: app.kubernetes.io/name: hello-workflow spec: containerConcurrency: 0 containers: - image: image-registry.openshift-image-registry.svc:5000/kogito-serverless/serverless-workflow-greeting-quarkus:1.0-native livenessProbe: failureThreshold: 3 httpGet: path: /q/health/live port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 name: hello-workflow ports: - containerPort: 8080 name: http1 protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /q/health/ready port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 Once the files are generated, you must add the imagePullPolicy manually before deploying the workflow application. Enter the following command to deploy the workflow application using oc: Deploy the workflow application using oc oc apply -f target/kubernetes/knative.yml Verify if the workflow application is deployed correctly: On OpenShift CLI On Knative CLI oc get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} Prerequisites Workflow application is ready. Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Procedure Add the Quarkus extensions to deploy the knative service. You can add the OpenShift and the Kogito Knative extensions to your project with the Quarkus CLI: Add OpenShift and Kogito Knative extensions to the project with Quarkus CLI quarkus ext add quarkus-openshift kogito-addons-quarkus-knative-eventing To deploy the workflow application using Quarkus CLI, set the following system properties in application.properties file: Required system properties quarkus.knative.name=hello-workflow (1) quarkus.kubernetes.deployment-target=knative (2) quarkus.kubernetes.deploy=true (3) quarkus.container-image.push=true (4) quarkus.container-image.group=kogito-serverless (5) quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 (6) quarkus.container-image.tag=1.0-SNAPSHOT (7) 1 Property to set the Knative service name 2 Property to set the target deployment type 3 Property to set whether or not deploy on an active OpenShift cluster 4 This property should be removed if deploying on OpenShift Clusters 5 Property to define which registry group/namespace the built image belongs to 6 Property to define to which registry the built image will be pushed to 7 Sets the built Container Image tag This feature works with Quarkus 2.10.2.Final or later. For more information, see link. Build and Deploy your workflow application quarkus build -DskipTests The kogito-examples already have this extension added by default, and can be activated with the container Maven profile. Verify if the workflow application is deployed correctly: On OpenShift CLI On Knative CLI oc get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Deploying your SonataFlow application on OpenShift","component":"serverlessworkflow","version":"1.43.0.Final","name":"deploying-on-openshift","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-openshift.html","titles":[{"text":"Installing OpenShift Local","hash":"proc-install-openshift-local","id":1},{"text":"Deploying your workflow application on OpenShift","hash":"proc-deploy-sw-application-openshift","id":2},{"text":"Preparing the OpenShift’s Registry","hash":"_preparing_the_openshifts_registry","id":3},{"text":"Deploying your workflow application using Knative CLI","hash":"proc-deploy-sw-application-knative-cli","id":4},{"text":"Deploying your workflow application using OpenShift CLI","hash":"proc-deploy-sw-application-openfhift-client","id":5},{"text":"Deploying your workflow application using Quarkus CLI","hash":"proc-deploy-sw-application-quarkus-cli","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"60":{"id":60,"text":"The Kubernetes service discovery allows you to describe the Kubernetes resource you want to perform HTTP requests on using a custom URI. Under the hood, it will discover the network endpoint (URL) to where to make the request. The Kubernetes service discovery feature works during the workflow application startup, in which this feature scans all the Quarkus configurations in search of the URI pattern. Therefore, you must remember that if the application startup time matters, consider using a known static URL instead. Following is the custom URI pattern in Kubernetes service discovery: URI pattern in Kubernetes service discovery kubernetes:..//?= \\________/ \\____/ \\_______/ \\_____/ \\_________/ \\____________/ \\______________________________/ scheme kind version group namespace resourceName additional resource attributes \\____________________/ \\__________________________/ GVK Supported values: - port-name={PORT_NAME} - labels=label-name=label-value;other-label=other-value The following scheme values are supported in the URI pattern: kubernetes openshift knative The following resources are supported for the Kubernetes GVK (Group, Version, and Kind): services.v1 services.v1.serving.knative.dev pods.v1 deployments.v1.apps deploymentconfigs.v1.apps.openshift.io statefulsets.v1.apps routes.v1.route.openshift.io ingresses.v1.networking.k8s.io When using knative, you can also use a simplified URI like: knative:/ The above URI looks directly for services.v1.serving.knative.dev resource. The namespace in the URI is optional, however, if namespace contains an empty value, the current namespace or context is used. Query parameters in URI Also known as query string. The query parameters are defined the similar way with URLs to assign value to specific attributes. The following query parameters help the engine to be more precise when querying for a given Kubernetes resource: Custom labels: The custom labels are used to filter services in case there are more than one service with the same label selector but exposing different ports. In this case, you can instruct the engine that if more than one service is found, then the engine must use the service containing the provided label. The label is defined with the following expression and in case of multiple labels, you can use semicolon (;): labels=label-name=namevalue;another-label=another-value Example label definition in URI kubernetes:pods.v1//?labels=label-name=test-label Using the previous URI example, if there are more than one service exposing the given pod, the label-name=test-label label is used to filter the service. If the label does not exist, the first found service is used. Custom port name: The custom port name is used to determine which port to use when multiple ports are configured in the target service or container. You can configure the port name to be queried using the following pattern: port-name= The service discovery engine requires that the Kubernetes Service Account running the application has read permissions for the discovered objects. The following Kubernetes Role resource has all the required permissions for the service discovery to work: Required permissions for the Service Discovery on Kubernetes apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: service-discovery-role rules: - apiGroups: - \"\" resources: - pods - services verbs: - get - list - apiGroups: - apps resources: - deployments - statefulsets verbs: - get - list - apiGroups: - networking.k8s.io resources: - ingresses verbs: - get - list # Knative - apiGroups: - serving.knative.dev resources: - services verbs: - get - list If running on OpenShift, you must also add the following rules: Additional rules to run on OpenShift rules: - apiGroups: - route.openshift.io resources: - routes verbs: - get - list - apiGroups: - apps.openshift.io resources: - deploymentconfigs verbs: - get - list You must then bind the Service Account with the Role via a RoleBinding: RoleBinding for the required service discovery role apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: service-discovery-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: service-discovery-role subjects: - kind: ServiceAccount name: default Usually, pods run using the default Service Account. If your cluster has a different configuration, you should adapt this RoleBinding to your requirements. You must create these two objects in every namespace that you wish to deploy Quarkus Workflow applications with Service Discovery enabled. As an alternative, you can create a ClusterRole instead of a Role in every namespace. In this case, the role will reflect globally in your cluster. For security reasons, you should avoid this approach. There is no specific configuration required for the Kubernetes service discovery except by using the expected URI pattern. However, the okhttp communication interceptor, which logs the communication between the application and the Kubernetes API is disabled by default. You can enable the okhttp communication interceptor if there is a need to debug the communication between the client and the Kubernetes API by setting the following application property: Application property to enable okhttp communication interceptor quarkus.log.category.\"okhttp3.OkHttpClient\".level=INFO Based on the resource to be discovered, the Kubernetes service discovery follows specific paths as shown in the following figure: The Kubernetes service discovery is performed at the STATIC_INIT time of Quarkus during the workflow application startup. First, the service discovery scans the Quarkus configuration values and searches for the Kubernetes URI pattern. If the URI pattern is found, the engine parses the URI, queries the Kubernetes API searching for the given resource, and overrides the given application property. For example, consider an application that consumes a resource running on Kubernetes. This resource is a Knative service that exposes a function, which can be discovered using the following URI: Example URI org.kie.kogito.sw.knative.service=knative:services.v1/serverless-workflow-greeting-quarkus/greeting-quarkus-cli The service discovery engine does not read the application property name, but only value. Once the workflow application is started, you can see the Kubernetes service discovery into action in the logs: Example logs $ java -jar target/quarkus-app/quarkus-run.jar __ ____ __ _____ ___ __ ____ ______ --/ __ \\/ / / / _ | / _ \\/ //_/ / / / __/ -/ /_/ / /_/ / __ |/ , _/ , org.kie.kogito kogito-addons-quarkus-kubernetes org.kie.kogito kogito-addons-quarkus-fabric8-kubernetes-service-catalog Currently, only org.kie.kogito:kogito-addons-quarkus-fabric8-kubernetes-service-catalog is available. When enabled, it uses the Kubernetes Java API to discover the services. Configuring the OpenAPI services endpoints If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Kubernetes service discovery in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"kubernetes-service-discovery","url":"/serverlessworkflow/latest/cloud/quarkus/kubernetes-service-discovery.html","titles":[{"text":"Required Kubernetes roles","hash":"required-kubernetes-roles","id":1},{"text":"Configuration in Kubernetes service discovery","hash":"con-kubernetes-service-doscovery-configuration","id":2},{"text":"Precedence in Kubernetes service discovery","hash":"con-precedence-kubernetes-service-discovery","id":3},{"text":"Example of Kubernetes service discovery in SonataFlow","hash":"ref-example-kubernetes-service-discovery","id":4},{"text":"Enabling Kubernetes service discovery","hash":"ref-enabling-kubernetes-service-discovery","id":5},{"text":"Available service discovery implementations","hash":"_available_service_discovery_implementations","id":6},{"text":"Additional resources","hash":"_additional_resources","id":7},{"text":"Found an issue?","hash":"_found_an_issue","id":8}]},"61":{"id":61,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"versioning-workflows-in-knative","url":"/serverlessworkflow/latest/cloud/quarkus/versioning-workflows-in-knative.html","titles":[]},"62":{"id":62,"text":"In the SonataFlow Dev UI extension, the Monitoring page displays default dashboards that might be useful while developing a workflow. Figure 1. Monitoring Summary tab In the Summary tab you will find the list of workflows with the following details: Amount of workflows on each status. Average time spent on each workflow state. List of workflows executed and their details. To view detailed information about a specific workflow instance execution, you can use the Workflows tab. In the Workflows tab, you can find details such as when the workflow started, its state, and how long its execution took. Also, you can check how much time was spent on each state. Figure 2. Monitoring Workflows tab If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Monitoring in SonataFlow Dev UI extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-monitoring-page","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","titles":[{"text":"Viewing detailed information about the execution of workflow instances","hash":"_viewing_detailed_information_about_the_execution_of_workflow_instances","id":1},{"text":"Found an issue?","hash":"_found_an_issue","id":2}]},"63":{"id":63,"text":"In SonataFlow Dev UI extension, the Dashboards page is used to display the available dashboard files. The page displays a list of available dashboards and add filters to the list. Figure 1. Dashboard page The table on the Dashboards page displays the following details: Name: the name of a custom dashboard. Last Modified: the time reference indicating when the custom dashboard was last updated. See the dashboard guide for creating dashboards and visualizations with YAML. You can run all examples with Dashbuilder YAML Online. The default storage path for dashboard files is src/main/resources/dashboards, but the property quarkus.kogito-runtime-tools.custom.dashboard.folder can be used to set a custom storage path. Figure 2. Default storage path To filter the dashboard based on name, enter a name in the Filter by dashboard name field and click Apply filter button. Figure 3. Example filters applied on the dashboards In the dashboard table, the name column contains a clickable link, which enables you to navigate to the Dashboard Details page. Figure 4. Dashboard Details page If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Dashboards in SonataFlow Dev UI extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-custom-dashboard-page","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","titles":[{"text":"Creating a custom dashboard","hash":"_creating_a_custom_dashboard","id":1},{"text":"Create a custom dashboard file","hash":"_create_a_custom_dashboard_file","id":2},{"text":"Storage path of custom dashboards","hash":"_storage_path_of_custom_dashboards","id":3},{"text":"Filtering the dashboards","hash":"_filtering_the_dashboards","id":4},{"text":"Accessing a dashboard details","hash":"_accessing_a_dashboard_details","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"64":{"id":64,"text":"Quarkus applications come integrated with a Dev UI, providing a number of tools that help in developing the applications in Quarkus. You can plug in such tools to your Quarkus application as extensions, such as SonataFlow extension. The SonataFlow Dev UI extension provides a console to view, manage, and start the workflow instances. Prerequisites Quarkus 2.16.9.Final is installed. Quarkus command line interface (CLI) is installed. For more information, see Installing the Quarkus CLI. Procedure In a command terminal, enter the following command to install the SonataFlow Dev UI extension: Install SonataFlow Dev UI extension quarkus ext add org.kie.kogito:kogito-quarkus-serverless-workflow-devui Executing the previous command adds the following dependency to pom.xml file of your project: SonataFlow Dev UI extension dependency in pom.xml file org.kie.kogito kogito-quarkus-serverless-workflow-devui Enter the following command to add the kogito-addons-quarkus-source-files extension that provides the source code to generate the Serverless Workflow diagram in the consoles: Install Kogito source files add-on extension quarkus ext add org.kie.kogito:kogito-addons-quarkus-source-files Executing the previous command adds the following dependency to pom.xml file of your project: source files add-on dependency in pom.xml file org.kie.kogito kogito-addons-quarkus-source-files Run the following command to start the Quarkus application: Start Quarkus application quarkus dev To access the Quarkus Dev UI, go to http://localhost:8080/q/dev/. Figure 1. SonataFlow extension in Quarkus Dev UI The SonataFlow Dev UI extension contains the following pages: Workflow Instances Workflow Definitions Monitoring Dashboards If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"SonataFlow extension in Quarkus Dev UI","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-overview","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","titles":[{"text":"Installing SonataFlow Dev UI extension","hash":"proc-install-sw-tools-extension","id":1},{"text":"Found an issue?","hash":"_found_an_issue","id":2}]},"65":{"id":65,"text":"In the SonataFlow Dev UI extension, the Workflow Definitions page displays the list of available workflows in the Kogito project and helps you to start new workflow instances either via REST or by triggering cloud events. Figure 1. Workflow Definitions page In the Workflow Definitions table you will find the list of workflows that shows the following details: Workflow Name: Displays the name of a workflow definition. Endpoint: Displays the URL to a workflow definition. Actions: Provides the Start new Workflow button to start workflow instances via REST. In the table, the toolbar provides the ability to apply filters to the table or to trigger cloud events that can start workflow instances To search for a specific workflow definition, enter the workflow’s name in the Filter by workflow name field. Click the Apply Filter button. The matching workflow definitions appear as a chip below the search field. Click the Reset to default button to clear the applied filters. To fetch newly added workflow definitions, click on the refresh icon next to the Apply Filter button. Click the Apply Filter button. The matching workflow definitions appear as a chip below the search field. To clear the applied filters, you can click the Reset to default button. Also, to fetch newly added workflow definitions, click on the refresh icon next to the Apply Filter button. Figure 2. Workflow Definitions filters Workflows can be started either by using the specific workflow REST endpoints or by triggering Cloud Events. The SonataFlow Dev UI extension allows you to use both mechanisms. If you want to start a new workflow instance using the workflow REST endpoint, just click on the Start new Workflow button of any of the workflow in the Workflow Definitions table, then you’ll be redirected to the Start New Workflow page where you could setup the data and Business Key that will be used to start the new workflow instance. Depending on your workflow configuration the page can provide different mechanisms to fill the workflow data. If your workflow is configured with a valid Data Input Schema, this page will be able to display a custom Form to help a filling the data. Figure 3. Start Workflow Page with a Form defined in the Data Input Schema If your workflow does not provide a Data Input Schema, the page will display a Code Editor that will enable you to manually fill the workflow data in JSON format. Figure 4. Start Workflow Page with a Code Editor. For more information about how to setup the Input Schema Definition on your SonataFlow, please take a look at the Input Schema for SonataFlow section. You can use the Business key text box to define a custom business key value to the workflow instance. If the Business Key field is blank, then an auto-generated business key is defined for the workflow instance. By clicking on the Start button will POST the workflow data and the Business Key to the workflow REST endpoint. If the workflow instance starts successfully, a success alert appears on the top of the screen, which contains the Go to workflow list link to navigate to the Workflow Instances page. Figure 5. Example of workflow successful starting notification If there is an issue while starting a workflow, then a failure alert appears on the top of the screen, containing the*View Details* and Go to workflow list options. The View Details enables you to view the error message. Figure 6. Example of workflow starting failure notification On the Workflow Definitions Page, the Trigger Cloud Event button enables you to start new workflow instances by using HTTP Cloud Events. This will lead you to the Trigger Cloud Event page. Once there, you will have to fill out the form with the Cloud Event information: Endpoint: Defines the Path and the HTTP method where the cloud event should be triggered. Event Type: Sets the Cloud Event type header. Event Source: Sets the Cloud Event Source header. Defaults to /local/quarkus-devUi. Business Key: Sets the new workflow instance Business Key, it will be added in the kogitobusinesskey event header. Event Custom Headers: Allows you to define custom headers to be added to the event. Event Data: Data that will be in the event in JSON format. Figure 7. Starting a workflow using a cloud event Click the Trigger button to trigger the cloud event. If the workflow instance starts successfully, a success alert appears on the top of the screen, which contains the Go to workflow list link to navigate to the Workflow Instances page. Figure 8. Example of workflow successful starting notification If there is an issue while starting a workflow, then a failure alert appears on the top of the screen, containing View Details and Go to workflow list options. The View Details enables you to view the error message. Figure 9. Example of trigger workflow failure alert If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Workflow Definitions in SonataFlow Dev UI extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-workflow-definition-page","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","titles":[{"text":"Applying filters to the Workflow Definitions table","hash":"_applying_filters_to_the_workflow_definitions_table","id":1},{"text":"Starting new Workflow instances","hash":"con-start-workflow-instances","id":2},{"text":"Starting new Workflow instances using REST","hash":"con-start-workflow-instances-rest","id":3},{"text":"Filling up the Workflow data","hash":"_filling_up_the_workflow_data","id":4},{"text":"Setting up the Business Key","hash":"_setting_up_the_business_key","id":5},{"text":"Starting the new Workflow instance","hash":"_starting_the_new_workflow_instance","id":6},{"text":"Starting Workflows using Cloud Events","hash":"con-trigger-cloud-event-page","id":7},{"text":"Found an issue?","hash":"_found_an_issue","id":8}]},"66":{"id":66,"text":"In SonataFlow Dev UI extension, the Workflow Instances page is used to monitor and manage the available instances. The Workflow Instances page displays a list of available instances and add filters to the list. Figure 1. Workflow Instances page with no instances To create a workflow instance, you can use the Workflow Definitions page. For more information, see Workflow Definitions in SonataFlow Dev UI extension. When you create a workflow instance, the instance appears in the workflow instances table on the page, containing the following details: Id: Displays the name and business key of an instance. Also, when you hover on the name of the workflow instance, a unique ID is displayed for the instance. You can click on the ID to navigate to the Workflow Details page. Status: Displays the current state of the instance. This column can contain Active, Completed, Aborted, Error, and Suspended as values. Created: Displays the time reference indicating when the instance is created. Last Update: Displays the time reference indicating when the instance is last updated. Figure 2. Workflow Instances page with an instance You can also sort the columns of the workflow instances table. On the Workflow Instances page, you can filter the list of workflow instances based on the states and business keys. By default, Active, Completed, Aborted, Error, and Suspended are applied on the list. You can use the Status drop-down to see the available states. To filter the workflow instances based on the states, select or unselect the states in the Status drop-down and click Apply filter button. To filter the workflow instances based on business keys, enter a business key in the Filter by business key field and click Apply filter button. Figure 3. Example filters applied on the workflow instances To fetch the newly added workflow instances, click on the refresh icon next to the Apply Filter button. Also, to clear the applied filters and reset to the default state, click Reset to default button. In the workflow instances table, the Id column contains a clickable link, which enables you to navigate to the Workflow Details page. The Workflow Details page contains various panels, providing detailed information about a workflow instance. Figure 4. Example Workflow Details page The Workflow Details page consists of the following panels: Serverless Workflow Diagram panel Timeline panel Details panel Variables panel Serverless Workflow Diagram panel The Serverless Workflow Diagram panel enables you to explore the workflow diagram and execution path of the workflow instance. The workflow diagram and execution path are displayed by consuming the source which is exposed through the kogito-addons-quarkus-source-files. To add the source files add-on configuration, add the following dependency to pom.xml file of your project: source-files add-on dependency in pom.xml file org.kie.kogito kogito-addons-quarkus-source-files There is a slider available in the diagram panel, which when dragged to the right displays the source code in read-only mode. Figure 5. Stunner based Diagram panel Timeline panel The Timeline panel displays the list of nodes that are related to a workflow instance. Each node in the Timeline panel consists of an icon, indicating the state of the node, such as Active, Completed, or Error. Figure 6. Timeline panel Details panel The Details panel displays the basic information related to a workflow instance, including: Name: Name of the workflow instance. Business key: Business key related to the workflow instance. State: Current state of the workflow instance. Id: Unique ID of the workflow instance. Start: Time reference indicating when the workflow instance is started. Last Updated: Time reference indicating when the workflow instance is last updated. End: Time reference indicating when the workflow instance is completed. Figure 7. Details panel Variables panel The Variables panel displays the data of a workflow in the form of JSON. Figure 8. Variables panel The Workflow Instances page also allows you to send HTTP Cloud Events to the active workflow instances that are waiting for an event to advance. To do so you just have to click on the Trigger Cloud Event button that will lead you to the Trigger Cloud Event page. Once there, you will have to fill out the form with the Cloud Event information: Endpoint: Defines the Path and the HTTP method where the cloud event should be triggered. Event Type: Sets the Cloud Event type header. Event Source: Sets the Cloud Event Source header. Defaults to /local/quarkus-devUi. Instance Id: Sets the id of the workflow instance that must receive the event, it will be added in the kogitoprocrefid event header. Event Data: Data that will be in the event in JSON format. Figure 9. Sending a Cloud Event to an active workflow instance. Additionally, you can use the Send Cloud Event action present available on the instance actions kebab. By using it you will be lead to the Trigger Cloud Event page, but in this case the Instance Id field will be already filled with the selected workflow id. Figure 10. Send Cloud Event button in the actions kebab. To enable the actions kebab, make sure your project is configured to have the kogito-addons-quarkus-process-management dependency on its pom.xml file, like: org.kie.kogito kogito-addons-quarkus-process-management Click the Trigger button to trigger the cloud event. If the event is successfully triggered, a success alert appears at the top of the screen, which contains the Go to workflow list link to navigate to the Workflow Instances page. Figure 11. Example of cloud event successfully sent notification. If there is an issue while sending the event, then a failure alert appears at the top of the screen, containing View Details and Go to workflow list options. The View Details enables you to view the error message. Figure 12. Example cloud event unsuccessfully sent notification. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Workflow Instances in SonataFlow Dev UI extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-workflow-instances-page","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","titles":[{"text":"Opening the Workflow instance details","hash":"_opening_the_workflow_instance_details","id":1},{"text":"Sending Cloud Events to active Workflow Instances","hash":"_sending_cloud_events_to_active_workflow_instances","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"67":{"id":67,"text":"You can deploy your SonataFlow projects to an OpenShift instance using the OpenShift integration. The OpenShift integration allows you to test your implementations in a live environment. The deployments described in this document are for development purposes, but not for production. You can deploy your first SonataFlow project to an OpenShift instance and run the project in a live environment. Prerequisites OpenShift integration is configured correctly. For more information, see Integrating your SonataFlow project with OpenShift using Serverless Logic Web Tools. Procedure Create a project using an example application in GitHub. You can use the serverless-workflow-greeting-quarkus example application, which does not contain external dependencies and is easy to test and comprehend. The serverless-workflow-greeting-quarkus example application contains a single operation state with one action, sending request to the greeting function. In the example application, the workflow data is assumed to be the name of the person to greet, and the result is the greeting for the person. The result is added to the state data, which later becomes the workflow data output. On the editor page, click Try on OpenShift button. On the context menu, click Deploy \"greetings\" (SonataFlow). A modal appears, displaying the following deployment options: Deploy as a project: This option is available if your current workspace contains the entire project structure including a single pom.xml file. If Deploy as a project option is disabled, a pre-built image container, containing a Quarkus project is used and the workflow files are placed in the src/main/resources folder of the project. In this case, ensure that the workflow files do not have other dependencies as the dependencies are not included in the deployment. If Deploy as a project option is enabled, all the workflow files are deployed as-is, indicating that no project template is used. Therefore, ensure that the project is deployable. Upload OpenAPI spec to Service Registry: After a workflow is deployed, an OpenAPI specification is available in the deployed service. When you check this option, the Serverless Logic Web Tools fetches the OpenAPI specification, and when ready, the OpenAPI specification is uploaded to your configured service registry. To use this option, you need to configure your service account and service registry on the Settings page. To configure the service account and service registry, see Integrating with Red Hat OpenShift Application and Data Services. Uncheck all options and click Confirm. A pop-up appears displaying Your deployment has been successfully started and will be available shortly. Please do not close this browser tab until the operation is completed. message. Clicking on the OpenShift deployments icon shows your deployment status. The deployment process takes a few minutes since a build needs to be completed before the services are active. OpenShift deployment status After the deployment of your SonataFlow project is successful, you can verify various information about the deployed service. Prerequisites OpenShift integration is configured correctly. For more information, see Integrating your SonataFlow project with OpenShift using Serverless Logic Web Tools. Your SonataFlow project is deployed successfully. Deployed project must be deployed using the Deploy as a project option as unchecked, as the deployment page is only available using the pre-built image container. If the option Deploy as a project option is checked the tool opens the index.html file your project provides, if any. Procedure Click on the OpenShift deployments icon to view a list of deployments. If your deployment is successful (listed with ), you can click on it and access the deployment page to check the Swagger UI, Open API specification, and Metrics page using DashBuilder. Serverless deployment page If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Deploying your SonataFlow projects using Serverless Logic Web Tools","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-deploy-projects","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","titles":[{"text":"Deploying your first SonataFlow project","hash":"proc-deploy-first-serverless-project-serverless-logic-web-tools","id":1},{"text":"Verifying the deployment status of your first project","hash":"proc-verify-deploy-status-serverless-logic-web-tools","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"68":{"id":68,"text":"The Serverless Logic Web Tools implements a web version of a Git client, enabling you to clone, create, commit, push, and pull repositories. This process synchronizes your workspaces remotely. This document describes how you can configure the integration and synchronize your projects. You can generate a token from your GitHub account and add the token to the Serverless Logic Web Tools. Prerequisites You have an account in GitHub. Procedure Go to Serverless Logic Web Tools web application, and click the Cogwheel (⚙️) on the top-right corner of the screen. Go to the GitHub tab. In the GitHub tab, click the Add access token button and a window will be shown. Click Create a new token option. Ensure that you select the repo option. Optionally, select gist, which enables you to import and update gists. Copy the generated token and paste it into the Token field in Serverless Logic Web Tools GitHub Settings. The contents of the tab are updated and displays that you are signed into the GitHub and contains all the required permissions. After your GitHub token is set, you can synchronize your workspaces with remote repositories. Prerequisites Your GitHub token is configured in the Serverless Logic Web Tools. For more information, see Setting your GitHub token in Serverless Logic Web Tools. Procedure In the Serverless Logic Web Tools web application, create or open a workspace. Add or edit the existing files in the workspace. Click Share → Github: Create Repository. Name your repository and set the repository as Public or Private. (Optional) Select the Use Quarkus Accelerator to create a repository with a base Quarkus project and move the workspace files to src/main/resources folder. Figure 1. Create a repository for your workspace Click Sync → Push to update the remote repository with your local changes. To get new updates from the remote repository, click Sync → Pull. Currently, Serverless Logic Web Tools cannot resolve the merge conflicts. Therefore, ensure that you always pull changes before working on your files. You can import a workspace from GitHub in Serverless Logic Web Tools when you need to work from another computer or need to use someone else’s workspace. Prerequisites Your GitHub token is configured in the Serverless Logic Web Tools. For more information, see Setting your GitHub token in Serverless Logic Web Tools. You have a repository containing workflow files. Procedure Go to GitHub, find the repository with your project, and copy the repository URL. In Serverless Logic Web Tools web application, paste the repository URL in the Import → From URL field and click Clone. The page loads your imported project, defaulting to a workflow file, if present. If applicable, you can push to the imported repository by clicking on the Sync → Push. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Integrating your SonataFlow project in GitHub using Serverless Logic Web Tools","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-github-integration","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","titles":[{"text":"Setting your GitHub token in Serverless Logic Web Tools","hash":"proc-setting-github-token-serverless-logic-web-tools","id":1},{"text":"Synchronizing your workspaces with GitHub","hash":"proc-sync-workspace-github-serverless-logic-web-tools","id":2},{"text":"Importing a workspace from GitHub","hash":"proc-import-workspace-github-serverless-logic-web-tools","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"69":{"id":69,"text":"You can integrate your SonataFlow project with Red Hat OpenShift. OpenShift is an enterprise-ready Kubernetes container platform, enabling your SonataFlow projects to be deployed and tested online. The Extended Services tool is required to proxy requests to an OpenShift instance. Therefore, setting the Extended Services enables you to deploy and monitor your SonataFlow projects. Procedure In the Serverless Logic Web Tools web application, click the Cogwheel (⚙️) on the top-right corner and go to the Extended Services tab. In case you are not connected to Extended Services, you see You are not connected to Extended Services. Click to setup message. Click on the link in the message. A window appears containing your current operating system as selected and a link to download the latest version of Extended Services. Download the Extended Services and execute it. You might need to grant permissions to run the file depending on your operating system and settings. If you are using macOS, you might encounter the \"Extended Services\" is damaged and can’t be opened. You should move it to Bin error message while running the \"Extended Services\" application. This is due to the overeager approach towards security by macOS and you can fix it by moving the \"Extended Services\" application out of quarantine. You can execute the xattr -d com.apple.quarantine /Applications/KIE\\ Sandbox\\ Extended\\ Services.app command to achieve this. After executing the Extended Services the content in the Extended Services is updated and displays that you are connected to the Extended Services. After setting the Extended Services, you can connect to your OpenShift instance to deploy your SonataFlow projects with Serverless Logic Web Tools. Prerequisites Extended Services tool is installed and running. OpenShift instance is active. You can create a free developer sandbox. For more information, see OpenShift Developer Sandbox. Procedure Log in to your OpenShift instance console interface. In the OpenShift instance console interface, you need your OpenShift project name (also known as namespace), API server, and an access token. For the OpenShift project name, go to the Topology tab and in the top-left corner you see your project name. Figure 1. OpenShift project name in OpenShift instance console To obtain the API server and access token, click on your username and Copy login command. A new page opens containing your new API token along with oc cli login command. From the oc cli command, copy the value of --server=. Figure 2. OpenShift access token and API server Go to the Serverless Logic Web Tools web application, click the Cogwheel (⚙️) on the top-right corner and go to the OpenShift tab. Click the Add connection button and a window will be shown. Enter your OpenShift project name in the Namespace (project) field. Enter the value copied value of --server flag in the Host field. Enter the value of API token in the Token field. Click Connect. If the entered values are correct, then the tab updates and displays You’re connected to OpenShift message. After connecting to OpenShift, you are ready to deploy your SonataFlow projects using Serverless Logic Web Tools. For more information about deploying your projects, see Deploying your SonataFlow projects using Serverless Logic Web Tools. If your OpenShift instance uses self-signed certificates, then you must enable the InsecureSkipVerify on Extended Services. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Integrating your SonataFlow project with OpenShift using Serverless Logic Web Tools","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-openshift-integration","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","titles":[{"text":"Setting Extended Services","hash":"proc-setting-kie-sandbox-extended-services-serverless-logic-web-tools","id":1},{"text":"Connecting to OpenShift instance using Serverless Logic Web Tools","hash":"proc-connecting-openshift-instance-serverless-logic-web-tools","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"70":{"id":70,"text":"The Serverless Logic Web Tools is a web application that enables you to create and synchronize your SonataFlow, decision files, and Dashbuilder files in a single interface. Also, the Serverless Logic Web Tools application provides the integrations that are needed to deploy and test the SonataFlow models in development mode. Figure 1. Home page of Serverless Logic Web Tools The Serverless Logic Web Tools provides three different editors for your projects, including SonataFlow editor for .sw.json or .sw.yaml|yml files Serverless Decision editor for .yard.yaml|yml files Dashbuilder editor for dash.yaml|yml files You can start by creating a new model from scratch or using one of the samples provided. Procedure Go to the Serverless Logic Web Tools web application. On the Home page, select the type of model you want to create and click the button corresponding to the file type you wish such as JSON or YAML. Figure 2. Create section in Serverless Logic Web Tools A new workspace is created, containing a single file named as Untitled of the selected type. Click on the name to rename the file. Edit your workflow file, which updates the preview on the right-side of the editor. The workflow files in Serverless Logic Web Tools are saved automatically after each change. The files are persisted in the browser, but you can synchronize the file using GitHub integration. For more information about GitHub integration, see Integrating your SonataFlow project in GitHub using Serverless Logic Web Tools. Integrating your SonataFlow project with OpenShift using Serverless Logic Web Tools Integrating with Red Hat OpenShift Application and Data Services Deploying your SonataFlow projects using Serverless Logic Web Tools If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Serverless Logic Web Tools","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-overview","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","titles":[{"text":"Creating a workflow model in Serverless Logic Web Tools","hash":"proc-create-workflow-model-web-tools","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"71":{"id":71,"text":"Some of the features in Serverless Logic Web Tools require integration with Red Hat OpenShift Application and Data Services. Consider uploading OpenAPI specifications to a service registry and fetching its service functions as examples of integration with Red Hat OpenShift Application and Data Services. This document describes how you can configure the required settings to complete the integration with Red Hat OpenShift Application and Data Services. You can create or use a service account from your Red Hat OpenShift Application and Data Services console and add the service account to the Serverless Logic Web Tools. Prerequisites You have access to the Red Hat OpenShift Application and Data Services console. Procedure To create a service account in Red Hat Openshift Application and Data Services, perform the following steps: You can skip this step if you already have a service account. Go to Service Accounts | Red Hat OpenShift Application and Data Services. Click Create service account. In the Create a service account window, enter a service account name in the Short description field. Click Create. A modal displaying your Client ID and Client Secret appears. Copy and save the Client ID and Client Secret. Check the I have copied the client ID and secret checkbox and click Close. If you already have a service account, find your Client ID and Client Secret. In the Serverless Logic Web Tools, click the Cogwheel (⚙️) on the top-right corner and go to the Service Account tab. Click on the Add service account button and a window will be shown. Enter your Client ID and Client Secret in the respective fields. Click Apply. The content in the Service Account tab updates and displays Your Service Account information is set message. You can create or use a Service Registry instance from your Red Hat OpenShift Application and Data Services console and add the Service Registry to Serverless Logic Web Tools. Prerequisites You have access to the Red Hat OpenShift Application and Data Services console. You have created a service account. For information about creating a service account, see Creating a service account in Red Hat OpenShift application and Data Services. Procedure To create a Service Registry instance in Red Hat Openshift Application and Data Services console, perform the following steps: You can skip this step if you already have a Service Registry instance. Go to Service Registry | Red Hat OpenShift Application and Data Services. Click Create Service Registry instance button. In the Create a Service Registry instance window, enter a Service Registry instance name and click Create. The list of Service Registry instances updates with your instance. Find the Service Registry instance you created in the list and click on the instance. Go to the Settings tab and click on Grant access. In the drop-down, select the service account you created in the previous procedure. Select a role for your service account. You must select the role as Manager or Administrator to have the read and write access. Click Save. Click on the menu on the top-right corner of the screen. Click Connection. A drawer opens containing the required connection and authentication information. Copy the value of Core Registry API. If you already have a Service Registry, find the value of Core Registry API of your Service Registry. In the Serverless Logic Web Tools web application, click the Cogwheel (⚙️) on the top-right corner and go to the Service Registry tab. Click on the Add service registry button and a window will be shown. Enter a name for your registry. You can enter the same name that you used while creating the Service Registry instance. Enter the value of Core Registry API and click Apply. The content in the Service Registry tab updates and displays Your Service Registry information is set message. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Integrating with Red Hat OpenShift Application and Data Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-redhat-application-services-integration","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","titles":[{"text":"Creating a service account in Red Hat OpenShift application and Data Services","hash":"proc-create-service-account-serverless-logic-web-tools","id":1},{"text":"Creating a Service Registry in Red Hat OpenShift application and Data Services","hash":"proc-create-service-registry-serverless-logic-web-tools","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"72":{"id":72,"text":"The Google Chrome extension for the Serverless Workflow editor enables you to view and edit CNCF Serverless Workflow specification files in GitHub. This document describes how to install and use the Chrome extension for Serverless Workflow editor on GitHub. You can install the Chrome extension for the Serverless Workflow editor to view and edit the workflow specification files in GitHub. Prerequisites Google Chrome is installed. Procedure You can install the Chrome extension using one of the following methods: Go to Chrome web store: Go to the Serverless Workflow Editor for GitHub extension page in Chrome web store and click Add to Chrome. Figure 1. Serverless Workflow Chrome extension page Download the ZIP file: Download and extract the chrome_extension_serverless_workflow_editor_VERSION.zip file from the kie-tools releases page in GitHub. Go to Customize and control → Settings → Extensions → Load unpacked in the upper-right corner in Chrome. Open the extracted dist folder. The Chrome extension for Serverless Workflow editor is successfully installed. After installing the Chrome extension for the Serverless Workflow editor, you can use the editor to edit and view the workflow files in GitHub. Prerequisites You have installed the Serverless Workflow editor extension in Chrome. For more information, see Installing the Chrome extension for Serverless Workflow editor on GitHub. Procedure Create a workflow file (.sw.json or .sw.yaml). Push the created workflow file to GitHub, or you can go to the GitHub page and click on the workflow file to open in the editor. Figure 2. Serverless Workflow file in GitHub The Serverless Workflow editor opens in read-only mode. To change the read-only mode to edit mode, click the pencil icon on the top-right corner of the screen. You can switch to the full-screen mode. Also, you can hide the editor and view the source code using See as source button. Make changes to the source code, add a commit message. You can either commit the changes to a branch directly or create a new branch for pull request. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Chrome extension for Serverless Workflow editor on GitHub","component":"serverlessworkflow","version":"1.43.0.Final","name":"swf-editor-chrome-extension","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","titles":[{"text":"Installing the Chrome extension for Serverless Workflow editor on GitHub","hash":"proc-install-chrome-extension-sw-editor","id":1},{"text":"Using the Chrome extension for Serverless Workflow editor on GitHub","hash":"proc-using-chrome-extension-sw-editor","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"73":{"id":73,"text":"You can use the Serverless Workflow editor to edit the CNCF Serverless Workflow specification files in the code editor and view the workflow diagram in the diagram visualizer. When you make changes to the specification files in the editor, you see the workflow diagram is updated with the new changes. Figure 1. Serverless Workflow editor The Serverless Workflow editor contains the following main features: Reload diagram dynamically: In the Serverless Workflow editor, when you make a change in the code editor, the workflow diagram updates automatically. SVG generation: In the Serverless Workflow editor, you can save a workflow diagram as .svg file in the workspace. Auto-completion based on the context: The Serverless Workflow editor contains the capability of auto-completing the code based on the context. Validation: The Serverless Workflow editor performs validation on the workflow files and provides an error-free experience. The editor performs validation using JSON schema to the workflow file structure but not the values, and auto-completion works with JSON but not with YAML. The following extensions are provided that you can use to design the workflow files: VS Code extension Chrome GitHub extension You can also try it at the Serverless Logic Web Tools. CNCF Serverless Workflow specification If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Serverless Workflow editor","component":"serverlessworkflow","version":"1.43.0.Final","name":"swf-editor-overview","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-overview.html","titles":[{"text":"Features in Serverless Workflow editor","hash":"ref-sw-editor-features","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"74":{"id":74,"text":"The VS Code extension for the Serverless Workflow editor enables you to view and edit CNCF Serverless Workflow specification files in your local projects. This document describes how to install and use the VS Code extension for Serverless Workflow editor, along with how to load OpenAPI files using the extension. Using the VS Code extension for Serverless Workflow editor, enables you to view and edit the workflow specification files in your local projects. Figure 1. Serverless Workflow VS Code extension Prerequisites Visual Studio Code 1.67.0 or later is installed. Procedure You can install the VS Code extension for Serverless Workflow editor using one of the following methods: Go to Visual Studio Marketplace: Go to KIE Serverless Workflow Editor extension page in Visual Studio Marketplace and click Install. Figure 2. KIE Serverless Workflow Editor in Visual Studio Marketplace Download VSIX file: Download the latest SonataFlow VS Code extension VSIX file from the kie-tools releases page in GitHub. Click Install from VSIX option from the extensions menu and install the serverless_workflow_vscode_extension_VERSION.vsix file in VS Code. Figure 3. Install VS Code extension using VSIX Once installation is complete, you can create a workflow file or open an existing workflow file in VS Code. When you open a workflow file, VS Code uses the extension automatically. The Serverless Workflow editor contains the following main features: Reload diagram dynamically: In the Serverless Workflow editor, when you make a change in the code editor, the workflow diagram updates automatically. SVG generation: In the Serverless Workflow editor, you can save a workflow diagram as .svg file in the workspace. Auto-completion based on the context: The Serverless Workflow editor contains the capability of auto-completing the code based on the context. The Serverless Workflow VS Code extension parses the OpenAPI specification files and provides a list of function definitions in the auto-complete dialog box. Figure 4. Function definition in auto-complete dialog box Once you select an option in the auto-complete dialog box, a function definition is added to the functions array with proper settings as shown in the following example: Figure 5. Example of function definition object When the function definition is added, the function is available for auto-completion in the function reference section as shown in the following example: Figure 6. Example of a function reference Once you select an option from the auto-complete dialog box, a function reference is added with proper reference name and attributes. Validation: The Serverless Workflow editor performs validation on the workflow files and provides an error-free experience. The VS Code extension for Serverless Workflow editor supports the following commands: Table 1. Supported commands in Serverless Workflow VS Code extension Command Description Serverless Workflow: Generate SVG without any notification Generates an SVG file of a workflow diagram in the workspace next to the workflow file. Serverless Workflow: Open as Diagram (to the side) Opens the workflow diagram to the right side of the editor. Serverless Workflow: Setup automatically open Diagram Editor alongside Text Editor Allows you to set whether or not a workflow diagram needs to be opened by default alongside the editor. This operation provides two options, including Open automatically and Do not open. Serverless Workflow: Configure Service Registries Opens the service registries configurations on the Extension Settings page. Serverless Workflow: Refresh Service Registries Refreshes the artifact list of service registries. Serverless Workflow: Log in Service Registries Triggers a login action of service registries. To trigger a command in VS Code, go to View → Command Palette… or you can press Ctrl+Shift+P to open the command palette. Enter Serverless Workflow in the search tab to see the list of supported commands. Figure 7. Command Palette in VS Code You can navigate to File → Preferences → Settings and configure the following settings for the Serverless Workflow editor: Table 2. Settings in Serverless Workflow VS Code extension Setting Description Automatically Open Diagram Editor Alongside Text Editor This setting enables the editor to open a workflow diagram when a workflow is being edited. The available options include: Ask next time (default) Do not open Open automatically Run On Save This setting executes a VS Code command when you save an edited workflow file. The default VS Code command that is executed is extension.kogito.swf.silentlyGenerateSvg (generate a diagram SVG). Service Registries This setting provides access to the configuration of service registries in the setting.json file. Should Reference Service Registry Functions With Urls When automatically completing the functions in the service registry, this setting specifies whether a function operation uses the URL of OpenAPI specification file or uses the local path, where the file is downloaded (Specs Storage Path). Specs Storage Path This setting enables you to define or edit the path of OpenAPI specification file. The default value is specs folder. Svg Filename Template This setting enables you to set a file name template, which can be used while generating the diagram SVG file. The default value is fileName.svg. Svg File Path This setting enables you to set a path, where the generated diagram SVG file will be stored. Figure 8. Settings page in VS Code extension The VS Code extension for Serverless Workflow editor can use OpenAPI specification files that are stored locally in the specs folder. Also, the OpenAPI specification files can be stored in remote service registries, providing auto-complete feature for function definitions. For more information about OpenAPI specification files path, see Serverless Workflow editor settings. The VS Code extension configures a list of service registries, which enables the Serverless Workflow editor to load OpenAPI specification files that are stored in the external registries. Prerequisites VS Code extension for the Serverless Workflow editor is installed. For more information about installing the VS Code extension, see Installing the VS Code Extension for Serverless Workflow editor. Procedure Open your workflow file in VS Code IDE and select the Setup Service Registries option. Navigate to the settings.json file. Add the list of service registries in the settings.json file using the kogito.swf.serviceRegistries key, which matches the following JSON schema: Service Registry Schema { \"type\": \"object\", \"properties\": { \"registries\": { \"type\": \"array\", \"items\": { \"type\": \"object\", \"properties\": { \"name\": { \"type\": \"string\" }, (1) \"url\": { (2) \"type\": \"string\", \"format\": \"uri\", \"pattern\": \"^https?://?[-A-Za-z0-9+&@#/%?=_!:.]+[-A-Za-z0-9+&@#/%=~_|]\" }, \"authProvider\": { (3) \"type\": \"string\", \"enum\": [\"none\", \"red-hat-account\"], \"default\": \"none\" } }, \"required\": [\"name\", \"url\", \"authProvider\"] } } } } In the registries array, each item must contain the following properties: 1 name: Identifier provided for a registry. 2 url: URL for the REST API of the remotes service registry, such as Apicurio registry. 3 authProvider: Type of authentication for the remote service registry. This property contains values as none (no authentication) and red-hat-account (log in with your Red Hat account). Following is an example of a service registry configuration: Example of service registry configuration { \"kogito.swf.serviceRegistries\": { \"registries\": [ { \"name\": \"openshift\", \"url\": \"https://{url-to-openshift-registry}/apis/registry/v2\", \"authProvider\": \"red-hat-account\" }, { \"name\": \"local\", \"url\": \"https://{url-to-local-registry}/apis/registry/v2\", \"authProvider\": \"none\" }, ] } } To access the service registry settings in the VS Code, click on the Setup Service Registries option and use the Serverless Workflow: Configure Service Registries command. You can use the service registries for auto-completion feature in the Serverless Workflow VS Code extension. Prerequisites The following prerequisites are for the service registries that require Red Hat authentication: You have a Red Hat account with access to Red Hat Hybrid Cloud Console. Red Hat authentication extension is installed. Procedure In a workflow file, click the Setup Service Registries options and navigate to the settings.json file to configure the service registries. Figure 9. Function definition section with Setup Service Registries option Once you configure the service registry settings, the function definition section in the workflow file displays a Log in Service Registries button. The Log in Service Registries button appears when the function definition is configured to a remote service registry, such as Apicurio registry. Click on the Log in Service Registries option. You are redirected to the Red Hat login (SSO) page. Log in with your Red Hat credentials to connect to the remote service registry. You are redirected to the Red Hat login (SSO) page only if the authProvider property contains the value of red-hat-account in the service registry settings. Figure 10. Function definition section with Log in Service Registries option After logging in, use Ctrl+Space in the function definition section to view the list of available functions. Figure 11. Example of function definition section auto-complete dialog box Click on a function to auto-complete the function definition as shown in the following example: Figure 12. Example of an auto-completed function definition After selecting an option in the auto-complete dialog box, the OpenAPI specification file is downloaded into the specs folder. The downloaded OpenAPI specification file follows the REGISTRY-NAME_OPERATION-NAME_VERSION format. Figure 13. Downloaded OpenAPI specification file To fetch the new changes in the service registry, click Refresh Service Registries. Figure 14. Refresh Service Registries button in function definition section To create a new function definition object, click Add function. You can also validate the auto-completion using the JSON schema to the workflow file structure. The Serverless Workflow editor performs validation using JSON schema to the workflow file structure but not the values, and auto-completion works with JSON but not with YAML. To view the validation warnings and errors, go to View → Problems or press Ctrl+Shift+M to open the Problems tab. Figure 15. Errors and warnings in Problems tab If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"VS Code extension for Serverless Workflow editor","component":"serverlessworkflow","version":"1.43.0.Final","name":"swf-editor-vscode-extension","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","titles":[{"text":"Installing the VS Code Extension for Serverless Workflow editor","hash":"proc-install-vscode-extension-sw-editor","id":1},{"text":"Features in Serverless Workflow editor","hash":"_features_in_serverless_workflow_editor","id":2},{"text":"Supported commands in Serverless Workflow VS Code extension","hash":"ref-supported-commands-vscode-extension","id":3},{"text":"Serverless Workflow editor settings","hash":"ref-sw-editor-settings","id":4},{"text":"Enabling VS Code extension to load OpenAPI files from remote service registries","hash":"_enabling_vs_code_extension_to_load_openapi_files_from_remote_service_registries","id":5},{"text":"Using service registries for auto-completion","hash":"_using_service_registries_for_auto_completion","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]}},"components":{},"componentVersions":{"serverlessworkflow/main":{"displayVersion":"snapshot","title":"SonataFlow Guides","version":"main","name":"serverlessworkflow","prerelease":"snapshot","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.10.Final","quarkus_platform_version":"2.16.10.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.67.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/main/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/main/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/main/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating a Quarkus Workflow Project","url":"/serverlessworkflow/main/getting-started/create-your-first-workflow-service.html","urlType":"internal"}]},{"content":"Core Concepts","items":[{"content":"Serverless Workflow Specification","url":"/serverlessworkflow/main/core/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Events","url":"/serverlessworkflow/main/core/handling-events-on-workflows.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/main/core/working-with-callbacks.html","urlType":"internal"},{"content":"jq Expressions","url":"/serverlessworkflow/main/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/main/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/main/core/configuration-properties.html","urlType":"internal"},{"content":"Input Schema","url":"/serverlessworkflow/main/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom Functions","url":"/serverlessworkflow/main/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts","url":"/serverlessworkflow/main/core/timeouts-support.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/main/core/working-with-parallelism.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/main/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/main/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/main/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"OpenAPI","url":"/serverlessworkflow/main/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal","items":[{"content":"Advanced Configuration","url":"/serverlessworkflow/main/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/main/service-orchestration/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"gRPC","url":"/serverlessworkflow/main/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Event Orchestration","items":[{"content":"AsyncAPI","url":"/serverlessworkflow/main/eventing/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/main/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Quarkus","items":[{"content":"Apache Kafka","url":"/serverlessworkflow/main/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Knative Eventing","url":"/serverlessworkflow/main/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"}]}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/main/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/main/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/main/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/main/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/main/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/main/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Quarkus","items":[{"content":"PostgreSQL Configuration","url":"/serverlessworkflow/main/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"PostgreSQL Database Migration","url":"/serverlessworkflow/main/persistence/postgresql-flyway-migration.html","urlType":"internal"},{"content":"Integration Tests with PostgreSQL","url":"/serverlessworkflow/main/persistence/integration-tests-with-postgresql.html","urlType":"internal"}]}]},{"content":"Cloud","url":"/serverlessworkflow/main/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/main/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/main/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/main/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/main/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/main/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/main/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/main/cloud/operator/known-issues.html","urlType":"internal"},{"content":"Migration Guide","url":"/serverlessworkflow/main/cloud/operator/migration-guide.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building Workflow Images","url":"/serverlessworkflow/main/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying on Minikube","url":"/serverlessworkflow/main/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying on Kubernetes","url":"/serverlessworkflow/main/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Deploying on OpenShift","url":"/serverlessworkflow/main/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Service Discovery","url":"/serverlessworkflow/main/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/main/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/main/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/main/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/main/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/main/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/main/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/main/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/main/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/main/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/main/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/main/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.43.0.Final":{"displayVersion":"1.43","title":"SonataFlow Guides","version":"1.43.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.9.Final","quarkus_platform_version":"2.16.9.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.67.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.43.0","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.43.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/latest/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/latest/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating a Quarkus Workflow Project","url":"/serverlessworkflow/latest/getting-started/create-your-first-workflow-service.html","urlType":"internal"}]},{"content":"Core Concepts","items":[{"content":"Serverless Workflow Specification","url":"/serverlessworkflow/latest/core/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Events","url":"/serverlessworkflow/latest/core/handling-events-on-workflows.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/latest/core/working-with-callbacks.html","urlType":"internal"},{"content":"jq Expressions","url":"/serverlessworkflow/latest/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/latest/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/latest/core/configuration-properties.html","urlType":"internal"},{"content":"Input Schema","url":"/serverlessworkflow/latest/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom Functions","url":"/serverlessworkflow/latest/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts","url":"/serverlessworkflow/latest/core/timeouts-support.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/latest/core/working-with-parallelism.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"OpenAPI","url":"/serverlessworkflow/latest/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal","items":[{"content":"Advanced Configuration","url":"/serverlessworkflow/latest/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/latest/service-orchestration/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"gRPC","url":"/serverlessworkflow/latest/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Event Orchestration","items":[{"content":"AsyncAPI","url":"/serverlessworkflow/latest/eventing/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/latest/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Quarkus","items":[{"content":"Apache Kafka","url":"/serverlessworkflow/latest/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Knative Eventing","url":"/serverlessworkflow/latest/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"}]}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/latest/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/latest/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/latest/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/latest/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/latest/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/latest/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Quarkus","items":[{"content":"PostgreSQL Configuration","url":"/serverlessworkflow/latest/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"PostgreSQL Database Migration","url":"/serverlessworkflow/latest/persistence/postgresql-flyway-migration.html","urlType":"internal"},{"content":"Integration Tests with PostgreSQL","url":"/serverlessworkflow/latest/persistence/integration-tests-with-postgresql.html","urlType":"internal"}]}]},{"content":"Cloud","url":"/serverlessworkflow/latest/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/latest/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/latest/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/latest/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/latest/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/latest/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/latest/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/latest/cloud/operator/known-issues.html","urlType":"internal"},{"content":"Migration Guide","url":"/serverlessworkflow/latest/cloud/operator/migration-guide.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building Workflow Images","url":"/serverlessworkflow/latest/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying on Minikube","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying on Kubernetes","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Deploying on OpenShift","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Service Discovery","url":"/serverlessworkflow/latest/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/latest/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/latest/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/latest/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/latest/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/latest/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/latest/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/latest/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/latest/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/latest/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/latest/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/latest/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.42.0.Final":{"displayVersion":"1.42","title":"SonataFlow Guides","version":"1.42.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.8.Final","quarkus_platform_version":"2.16.8.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.67.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.42.0","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.42.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.42.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.42.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating a Quarkus Workflow Project","url":"/serverlessworkflow/1.42.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"}]},{"content":"Core Concepts","items":[{"content":"Serverless Workflow Specification","url":"/serverlessworkflow/1.42.0.Final/core/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Events","url":"/serverlessworkflow/1.42.0.Final/core/handling-events-on-workflows.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/1.42.0.Final/core/working-with-callbacks.html","urlType":"internal"},{"content":"jq Expressions","url":"/serverlessworkflow/1.42.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.42.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.42.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input Schema","url":"/serverlessworkflow/1.42.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom Functions","url":"/serverlessworkflow/1.42.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts","url":"/serverlessworkflow/1.42.0.Final/core/timeouts-support.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.42.0.Final/core/working-with-parallelism.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"OpenAPI","url":"/serverlessworkflow/1.42.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal","items":[{"content":"Advanced Configuration","url":"/serverlessworkflow/1.42.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/1.42.0.Final/service-orchestration/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"gRPC","url":"/serverlessworkflow/1.42.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Event Orchestration","items":[{"content":"AsyncAPI","url":"/serverlessworkflow/1.42.0.Final/eventing/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.42.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Quarkus","items":[{"content":"Apache Kafka","url":"/serverlessworkflow/1.42.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Knative Eventing","url":"/serverlessworkflow/1.42.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"}]}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/1.42.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/1.42.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Quarkus","items":[{"content":"PostgreSQL Configuration","url":"/serverlessworkflow/1.42.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"PostgreSQL Database Migration","url":"/serverlessworkflow/1.42.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"},{"content":"Integration Tests with PostgreSQL","url":"/serverlessworkflow/1.42.0.Final/persistence/integration-tests-with-postgresql.html","urlType":"internal"}]}]},{"content":"Cloud","url":"/serverlessworkflow/1.42.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/known-issues.html","urlType":"internal"},{"content":"Migration Guide","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/migration-guide.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building Workflow Images","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying on Minikube","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying on Kubernetes","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Deploying on OpenShift","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Service Discovery","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/1.42.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/1.42.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/1.42.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/1.42.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/1.42.0.Final/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/1.42.0.Final/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/1.42.0.Final/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/1.42.0.Final/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/1.42.0.Final/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/1.42.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/1.42.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.41.0.Final":{"displayVersion":"1.41","title":"Kogito Serverless Workflow Guides","version":"1.41.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito Serverless Workflow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.7.Final","quarkus_platform_version":"2.16.7.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.66.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.41.0","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.41.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.41.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.41.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating a Quarkus Workflow Project","url":"/serverlessworkflow/1.41.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"}]},{"content":"Core Concepts","items":[{"content":"Serverless Workflow Specification","url":"/serverlessworkflow/1.41.0.Final/core/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Events","url":"/serverlessworkflow/1.41.0.Final/core/handling-events-on-workflows.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/1.41.0.Final/core/working-with-callbacks.html","urlType":"internal"},{"content":"jq Expressions","url":"/serverlessworkflow/1.41.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.41.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.41.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input Schema","url":"/serverlessworkflow/1.41.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom Functions","url":"/serverlessworkflow/1.41.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts","url":"/serverlessworkflow/1.41.0.Final/core/timeouts-support.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.41.0.Final/core/working-with-parallelism.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"OpenAPI","url":"/serverlessworkflow/1.41.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal","items":[{"content":"Advanced Configuration","url":"/serverlessworkflow/1.41.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/1.41.0.Final/service-orchestration/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"gRPC","url":"/serverlessworkflow/1.41.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Event Orchestration","items":[{"content":"AsyncAPI","url":"/serverlessworkflow/1.41.0.Final/eventing/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.41.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Quarkus","items":[{"content":"Apache Kafka","url":"/serverlessworkflow/1.41.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Knative Eventing","url":"/serverlessworkflow/1.41.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"}]}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/1.41.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/1.41.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Quarkus","items":[{"content":"PostgreSQL Configuration","url":"/serverlessworkflow/1.41.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"PostgreSQL Database Migration","url":"/serverlessworkflow/1.41.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"},{"content":"Integration Tests with PostgreSQL","url":"/serverlessworkflow/1.41.0.Final/persistence/integration-tests-with-postgresql.html","urlType":"internal"}]}]},{"content":"Cloud","url":"/serverlessworkflow/1.41.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building Workflow Images","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying on Minikube","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying on Kubernetes","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Deploying on OpenShift","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Service Discovery","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/1.41.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/1.41.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/1.41.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/1.41.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/1.41.0.Final/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/1.41.0.Final/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/1.41.0.Final/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/1.41.0.Final/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/1.41.0.Final/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/1.41.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/1.41.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.40.0.Final":{"displayVersion":"1.40","title":"SonataFlow Guides","version":"1.40.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.7.Final","quarkus_platform_version":"2.16.7.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.66.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.40.0","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.40.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.40.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.40.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.40.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.40.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.40.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.40.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.40.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.40.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.40.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.40.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.40.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.40.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.40.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.40.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.40.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.40.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.40.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.40.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.40.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.40.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.40.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.40.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/1.40.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/1.40.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.40.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.40.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.40.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on OpenShift","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/1.40.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/1.40.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/1.40.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/1.40.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/1.40.0.Final/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/1.40.0.Final/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/1.40.0.Final/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/1.40.0.Final/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/1.40.0.Final/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/1.40.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/1.40.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.40.0-SNAPSHOT":{"displayVersion":"1.40-RC","title":"SonataFlow Guides","version":"1.40.0-SNAPSHOT","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.13.8.Final","quarkus_platform_version":"2.13.8.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.66.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.40.0","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.40.x-prod/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.40.0-SNAPSHOT/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.40.0-SNAPSHOT/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.40.0-SNAPSHOT/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.40.0-SNAPSHOT/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.40.0-SNAPSHOT/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.40.0-SNAPSHOT/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.40.0-SNAPSHOT/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.40.0-SNAPSHOT/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.40.0-SNAPSHOT/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/1.40.0-SNAPSHOT/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/1.40.0-SNAPSHOT/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.40.0-SNAPSHOT/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.40.0-SNAPSHOT/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on OpenShift","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/1.40.0-SNAPSHOT/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/1.40.0-SNAPSHOT/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/1.40.0-SNAPSHOT/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/1.40.0-SNAPSHOT/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/1.40.0-SNAPSHOT/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/1.40.0-SNAPSHOT/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/1.40.0-SNAPSHOT/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/1.40.0-SNAPSHOT/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/1.40.0-SNAPSHOT/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/1.40.0-SNAPSHOT/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/1.40.0-SNAPSHOT/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.39.0.Final":{"displayVersion":"1.39","title":"Kogito Serverless Workflow Guides","version":"1.39.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito Serverless Workflow","kogito_version_redhat":"","operator_name":"Kogito Serverless Workflow Operator","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.6.Final","quarkus_platform_version":"2.16.6.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.39.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.39.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.39.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.39.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.39.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.39.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.39.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.39.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.39.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.39.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.39.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.39.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.39.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.39.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.39.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.39.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.39.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Kogito Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.39.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.39.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.39.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.39.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.39.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.39.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.39.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.39.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.39.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.39.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.39.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services","url":"/serverlessworkflow/1.39.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication","url":"/serverlessworkflow/1.39.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.39.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.39.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing using REST Assured","url":"/serverlessworkflow/1.39.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Integration tests using PostgreSQL","url":"/serverlessworkflow/1.39.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.39.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.39.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.39.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Developing Workflows","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Configuring Workflows","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Workflows Status","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Building and Deploying Workflows","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.39.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.39.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.39.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.39.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.39.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services","url":"/serverlessworkflow/1.39.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.39.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.39.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Supporting Services","items":[{"content":"Job Service","url":"/serverlessworkflow/1.39.0.Final/supporting-services/jobs-service.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration Example","url":"/serverlessworkflow/1.39.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout Example","url":"/serverlessworkflow/1.39.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.38.0.Final":{"displayVersion":"1.38","title":"Kogito Serverless Workflow Guides","version":"1.38.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito Serverless Workflow","kogito_version_redhat":"","operator_name":"Kogito Serverless Workflow Operator","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.6.Final","quarkus_platform_version":"2.16.6.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.38.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.38.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.38.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.38.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.38.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.38.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.38.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.38.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.38.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.38.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.38.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.38.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.38.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.38.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.38.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.38.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.38.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Kogito Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.38.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.38.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.38.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.38.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.38.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.38.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.38.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.38.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.38.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.38.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.38.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services","url":"/serverlessworkflow/1.38.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication","url":"/serverlessworkflow/1.38.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.38.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.38.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing using REST Assured","url":"/serverlessworkflow/1.38.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Integration tests using PostgreSQL","url":"/serverlessworkflow/1.38.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.38.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.38.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.38.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Developing Workflows","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Configuring Workflows","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Workflows Status","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Building and Deploying Workflows","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.38.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.38.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.38.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.38.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.38.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services","url":"/serverlessworkflow/1.38.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.38.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.38.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Supporting Services","items":[{"content":"Job Service","url":"/serverlessworkflow/1.38.0.Final/supporting-services/jobs-service.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration Example","url":"/serverlessworkflow/1.38.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout Example","url":"/serverlessworkflow/1.38.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.37.0.Final":{"displayVersion":"1.37","title":"Kogito Serverless Workflow Guides","version":"1.37.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito Serverless Workflow","kogito_version_redhat":"","operator_name":"Kogito Serverless Workflow Operator","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.5.Final","quarkus_platform_version":"2.16.5.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.37.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.37.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.37.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.37.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.37.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.37.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.37.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.37.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.37.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.37.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.37.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.37.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.37.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.37.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.37.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.37.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.37.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Kogito Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.37.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.37.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.37.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.37.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.37.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.37.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.37.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.37.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.37.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.37.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.37.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services","url":"/serverlessworkflow/1.37.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication","url":"/serverlessworkflow/1.37.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.37.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.37.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing using REST Assured","url":"/serverlessworkflow/1.37.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Integration tests using PostgreSQL","url":"/serverlessworkflow/1.37.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.37.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.37.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.37.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Developing Workflows","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Configuring Workflows","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Workflows Status","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Building and Deploying Workflows","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.37.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.37.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.37.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.37.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.37.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services","url":"/serverlessworkflow/1.37.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.37.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.37.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration Example","url":"/serverlessworkflow/1.37.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout Example","url":"/serverlessworkflow/1.37.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.36.1.Final":{"displayVersion":"1.36","title":"Kogito Serverless Workflow Guides","version":"1.36.1.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.4.Final","quarkus_platform_version":"2.16.4.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.36.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.36.1.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.36.1.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.36.1.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.36.1.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.36.1.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.36.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.36.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.36.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.36.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.36.1.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.36.1.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.36.1.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.36.1.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.36.1.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.36.1.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.36.1.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.36.1.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.36.1.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.36.1.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.36.1.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.36.1.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.36.1.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.36.1.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.36.1.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.36.1.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"},{"content":"Buiding and deploying a Serverless Workflow application on Kubernetes using the Kogito Serverless Operator","url":"/serverlessworkflow/1.36.1.Final/cloud/build-and-deploy-with-serverless-operator-on-kubernetes.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.36.1.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services from Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.36.1.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.36.1.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout example in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.35.0.Final":{"displayVersion":"1.35","title":"Kogito Serverless Workflow Guides","version":"1.35.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.0.Final","quarkus_platform_version":"2.16.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.35.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.35.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.35.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.35.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.35.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.35.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.35.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.35.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.35.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.35.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.35.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.35.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.35.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.35.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.35.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.35.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.35.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.35.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.35.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.35.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.35.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.35.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.35.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.35.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.35.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.35.0.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"},{"content":"Buiding and deploying a Serverless Workflow application on Kubernetes using the Kogito Serverless Operator","url":"/serverlessworkflow/1.35.0.Final/cloud/build-and-deploy-with-serverless-operator-on-kubernetes.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.35.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services from Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.35.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.35.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout example in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.34.0.Final":{"displayVersion":"1.34","title":"Kogito Serverless Workflow Guides","version":"1.34.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.34.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.34.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.34.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.34.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.34.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.34.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.34.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.34.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.34.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.34.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.34.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.34.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.34.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.34.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.34.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.34.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.34.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.34.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.34.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.34.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.34.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.34.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.34.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.34.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.34.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.34.0.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"},{"content":"Buiding and deploying a Serverless Workflow application on Kubernetes using the Kogito Serverless Operator","url":"/serverlessworkflow/1.34.0.Final/cloud/build-and-deploy-with-serverless-operator-on-kubernetes.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.34.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.34.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.34.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout example in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.33.0.Final":{"displayVersion":"1.33","title":"Kogito Serverless Workflow Guides","version":"1.33.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.33.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.33.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.33.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.33.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.33.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.33.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.33.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.33.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.33.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.33.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.33.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.33.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.33.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.33.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.33.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.33.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.33.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.33.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.33.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.33.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.33.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.33.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.33.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.33.0.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.33.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.33.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.33.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.32.0.Final":{"displayVersion":"1.32","title":"Kogito Serverless Workflow Guides","version":"1.32.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.15.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.32.0","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.32.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.32.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.32.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.32.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.32.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.32.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.32.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.32.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.32.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.32.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.32.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.32.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.32.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.32.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.32.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.32.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.32.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.32.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.32.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.32.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.32.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.32.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.32.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.32.0.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"},{"content":"Buiding and deploying a Serverless Workflow application on Kubernetes using the Kogito Serverless Operator","url":"/serverlessworkflow/1.32.0.Final/cloud/build-and-deploy-with-serverless-operator-on-kubernetes.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.32.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.32.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.31.1.Final":{"displayVersion":"1.31","title":"Kogito Serverless Workflow Guides","version":"1.31.1.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.15.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.31.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.31.1.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.31.1.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.31.1.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.31.1.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.31.1.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.31.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.31.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.31.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.31.1.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.31.1.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.31.1.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.31.1.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.31.1.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.31.1.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.31.1.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.31.1.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.31.1.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.31.1.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.31.1.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.31.1.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.31.1.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.31.1.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.31.1.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.30.0.Final":{"displayVersion":"1.30","title":"Kogito Serverless Workflow Guides","version":"1.30.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.14.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.2.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.30.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.30.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.30.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.30.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.30.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.30.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.30.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.30.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.30.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.30.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.30.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.30.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.30.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.30.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.30.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.30.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.30.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.30.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.30.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.30.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.30.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.30.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.30.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.30.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.29.0.Final":{"displayVersion":1.29,"title":"Kogito Serverless Workflow Guides","version":"1.29.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.13.1.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.2.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.29.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.29.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.29.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.29.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.29.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.29.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.29.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.29.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.29.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.29.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.29.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.29.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.29.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.29.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.29.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.29.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.29.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.29.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.29.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.29.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.29.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.29.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.29.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.29.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.28.0.Final":{"displayVersion":1.28,"title":"Kogito Serverless Workflow Guides","version":"1.28.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.13.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.2.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.28.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.28.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.28.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.28.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.28.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.28.0.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.28.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.28.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.28.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.28.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.28.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.28.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.28.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.28.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.28.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.28.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.28.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.28.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.28.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.28.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.28.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.28.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.28.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.28.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.27.0.Final":{"displayVersion":1.27,"title":"Kogito Serverless Workflow Guides","version":"1.27.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.7.6.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.2.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.27.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.27.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.27.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.27.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.27.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.27.0.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.27.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.27.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.27.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.27.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"GitHub integration","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"OpenShift integration","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Red Hat OpenShift Application and Data Services integration","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying projects","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Visualization","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.27.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.27.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.27.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.27.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.27.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.27.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.27.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.27.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.27.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.27.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.27.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.27.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.27.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.27.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.26.0.Final":{"displayVersion":1.26,"title":"Kogito Serverless Workflow Guides","version":"1.26.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.11.2.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.1.0","spec_version":0.8,"vscode_version":"1.46.0","kn-cli-version":"0.21.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.26.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.26.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.26.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.26.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.26.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.26.0.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.26.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.26.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.26.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.26.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.26.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.26.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.26.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.26.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.26.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.26.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.26.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.26.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.26.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.26.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.26.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.26.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.26.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.26.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.26.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.26.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.25.0.Final":{"displayVersion":1.25,"title":"Kogito Serverless Workflow Guides","version":"1.25.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.10.2.Final","java_min_version":"11+","maven_min_version":"3.8.1","graalvm_min_version":"22.1.0","spec_version":0.8,"vscode_version":"1.46.0","kn-cli-version":"0.21.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.25.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.25.0.Final/index.html","navigation":[{"items":[{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.25.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.25.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.25.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.25.0.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.25.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.25.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.25.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.25.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.25.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.25.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.25.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.25.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.25.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.25.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.25.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.25.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.25.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.25.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.25.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.25.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.25.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.25.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.25.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.25.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.24.1.Final":{"displayVersion":1.24,"title":"Kogito Serverless Workflow Guides","version":"1.24.1.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.10.2.Final","java_min_version":"11+","maven_min_version":"3.8.1","graalvm_min_version":"22.1.0","spec_version":0.8,"vscode_version":"1.46.0","kn-cli-version":"0.21.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.24.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.24.1.Final/index.html","navigation":[{"items":[{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.24.1.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.24.1.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.24.1.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.24.1.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.24.1.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.24.1.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.24.1.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.24.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.24.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.24.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.24.1.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.24.1.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.24.1.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.24.1.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.24.1.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.24.1.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.24.1.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.24.1.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.24.1.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.24.1.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.24.1.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.24.1.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.24.1.Final/cloud/deploying-on-minikube.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.24.1.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]}}}})
\ No newline at end of file
+antoraSearch.initSearch(lunr, {"index":{"version":"2.3.9","fields":["title","name","text","component"],"fieldVectors":[["title/1-1",[0,43.715,1,26.872]],["name/1-1",[]],["text/1-1",[]],["component/1-1",[]],["title/1-2",[2,43.715,3,46.979]],["name/1-2",[]],["text/1-2",[]],["component/1-2",[]],["title/1-3",[4,33.918]],["name/1-3",[]],["text/1-3",[]],["component/1-3",[]],["title/1-4",[5,17.367,6,34.335]],["name/1-4",[]],["text/1-4",[]],["component/1-4",[]],["title/1-5",[6,34.335,7,24.761]],["name/1-5",[]],["text/1-5",[]],["component/1-5",[]],["title/1-6",[8,55.175]],["name/1-6",[]],["text/1-6",[]],["component/1-6",[]],["title/1-7",[9,24.68,10,26.41,11,44.834]],["name/1-7",[]],["text/1-7",[]],["component/1-7",[]],["title/1-8",[12,45.863]],["name/1-8",[]],["text/1-8",[]],["component/1-8",[]],["title/1-9",[13,47.462]],["name/1-9",[]],["text/1-9",[]],["component/1-9",[]],["title/1-10",[14,36.369]],["name/1-10",[]],["text/1-10",[]],["component/1-10",[]],["title/1-11",[5,17.367,15,41.949]],["name/1-11",[]],["text/1-11",[]],["component/1-11",[]],["title/1-12",[5,15.121,16,20.442,17,26.144]],["name/1-12",[]],["text/1-12",[]],["component/1-12",[]],["title/1-13",[18,17.472,19,31.638]],["name/1-13",[]],["text/1-13",[]],["component/1-13",[]],["title/1",[20,18.118,21,36.723]],["name/1",[17,1.833]],["text/1",[2,2.02,3,2.171,4,2.135,5,2.59,6,3.809,7,3.27,9,1.31,10,2.804,12,1.031,13,1.867,14,2.29,15,2.585,16,2.713,17,2.775,18,2.746,20,2.722,21,0.969,22,1.263,23,1.209,24,1.905,25,2.792,26,1.82,27,0.943,28,3.068,29,2.331,30,1.82,31,1.554,32,1.107,33,3.214,34,3.131,35,1.53,36,0.697,37,1.275,38,1.107,39,2.904,40,2.904,41,3.462,42,2.116,43,1.18,44,1.82,45,0.943,46,1.971,47,1.412,48,2.02,49,1.673,50,1.554,51,2.331,52,1.814,53,0.809,54,0.809,55,1.13,56,1.475,57,2.337,58,2.29,59,1.53,60,1.359,61,1.642,62,1.82,63,2.096,64,2.754,65,0.709,66,9.923,67,1.673,68,1.789,69,0.659,70,2.988,71,3.009,72,0.826,73,2.804,74,2.297,75,1.154,76,0.969,77,1.322,78,2.715,79,1.938,80,1.748,81,1.66,82,1.673,83,1.673,84,2.27,85,1.31,86,1.412,87,0.864,88,2.49,89,1.014,90,2.331,91,1.286,92,1.031,93,1.359,94,0.722,95,0.943,96,1.628,97,2.677,98,2.171,99,3.257,100,2.22,101,2.232,102,1.673,103,2.813,104,1.673,105,1.673,106,1.475,107,2.367,108,2.232,109,1.586,110,1.13,111,1.087,112,2.959,113,2.471,114,2.116,115,2.379,116,1.087,117,2.066,118,1.835,119,1.804,120,2.652,121,2.367,122,1.359,123,1.359,124,1.359,125,1.359,126,1.412,127,0.826,128,1.462,129,1.586,130,1.978,131,1.416,132,2.821,133,1.431,134,2.232,135,2.066,136,1.412,137,1.087,138,0.818,139,1.315,140,0.709,141,1.475,142,1.66,143,3.086,144,1.66,145,2.02,146,1.867,147,1.087,148,0.854,149,1.475,150,1.18,151,1.412,152,0.77,153,2.171,154,1.938,155,1.902,156,1.867,157,1.902,158,2.379,159,1.804,160,0.999,161,1.554,162,2.406,163,1.13,164,1.412,165,1.048,166,0.984,167,1.107,168,1.18,169,0.826,170,0.801,171,2.066,172,1.067,173,1.82,174,1.554,175,2.232,176,0.532,177,1.209,178,1.24]],["component/1",[179,0.571]],["title/2-1",[148,32.348,180,68.937]],["name/2-1",[]],["text/2-1",[]],["component/2-1",[]],["title/2-2",[148,28.165,181,51.246,182,42.056]],["name/2-2",[]],["text/2-2",[]],["component/2-2",[]],["title/2",[183,26.41,184,29.895,185,60.022]],["name/2",[186,4.208]],["text/2",[5,1.505,7,1.401,10,2.629,12,2.21,15,3.635,18,2.345,20,1.57,21,2.078,22,1.547,24,1.365,35,3.486,36,1.495,45,2.021,52,1.666,53,1.734,57,1.329,58,1.752,65,1.521,67,3.813,68,1.369,69,1.412,70,1.843,76,2.078,77,1.619,83,2.049,90,2.141,96,2.289,97,3.813,100,1.699,112,1.682,115,2.914,119,2.21,120,2.309,127,5.354,128,1.79,129,1.943,133,2.684,137,2.329,140,1.521,143,2.078,148,1.83,149,3.161,160,2.141,166,2.109,176,1.747,178,2.658,183,2.629,187,3.901,188,3.975,189,1.338,190,2.818,191,3.571,192,1.446,193,2.818,194,4.262,195,3.901,196,3.901,197,5.1,198,3.026,199,3.901,200,5.1,201,3.557,202,3.901,203,2.591,204,3.331,205,3.867,206,3.901,207,3.901,208,1.83,209,1.435,210,2.174,211,3.901,212,3.901,213,3.901,214,3.901,215,6.198,216,3.557,217,3.901,218,3.901,219,2.53,220,3.662,221,3.901,222,3.557,223,3.901,224,1.716,225,3.901,226,3.901,227,1.81,228,2.914,229,3.901,230,2.591,231,3.278,232,3.901,233,3.901,234,2.287,235,3.901,236,3.901,237,2.287,238,3.331,239,3.026,240,3.901,241,3.331,242,3.901,243,3.901,244,2.733,245,5.447,246,3.331,247,2.658,248,3.901,249,1.752,250,3.901,251,3.901,252,3.331,253,2.53,254,3.901,255,3.901,256,3.901,257,1.79,258,3.901,259,3.901,260,1.79,261,4.635,262,3.161,263,1.851,264,3.901,265,3.901,266,3.901,267,2.329,268,3.901,269,3.901,270,3.901,271,2.474]],["component/2",[179,0.571]],["title/3-1",[152,29.157,188,27.586]],["name/3-1",[]],["text/3-1",[]],["component/3-1",[]],["title/3-2",[70,21.266,152,29.157]],["name/3-2",[]],["text/3-2",[]],["component/3-2",[]],["title/3",[13,35.186,20,15.775,25,17.789]],["name/3",[17,1.833]],["text/3",[0,2.21,1,1.359,5,2.226,7,1.252,10,1.533,14,1.566,18,2.342,20,2.846,21,2.916,22,3.504,23,2.315,24,1.908,25,3.21,35,1.674,46,2.54,48,2.21,66,9.517,67,3.55,68,3.837,70,2.952,71,1.997,83,1.83,84,2.236,87,1.654,91,1.407,100,2.384,131,2.433,140,1.359,146,3.209,152,4.343,167,2.121,168,2.26,183,1.533,184,2.726,188,4.334,189,2.319,209,2.486,224,1.533,230,3.636,231,3.004,249,1.566,260,1.599,263,2.598,272,3.178,273,4.64,274,3.268,275,3.835,276,3.178,277,2.315,278,1.781,279,2.976,280,3.485,281,3.178,282,2.603,283,2.081,284,3.485,285,3.485,286,2.704,287,3.178,288,4.607,289,2.824,290,3.848,291,2.603,292,2.164,293,2.315,294,3.636,295,2.704,296,3.178,297,2.976,298,3.178,299,2.121,300,1.282,301,3.004,302,3.485,303,3.331,304,1.241,305,2.26,306,1.913,307,2.517,308,3.471,309,2.442,310,1.884,311,2.976,312,3.398,313,2.693,314,3.268,315,2.164]],["component/3",[179,0.571]],["title/4-1",[77,33.601]],["name/4-1",[]],["text/4-1",[]],["component/4-1",[]],["title/4-2",[96,31.027]],["name/4-2",[]],["text/4-2",[]],["component/4-2",[]],["title/4-3",[7,29.08]],["name/4-3",[]],["text/4-3",[]],["component/4-3",[]],["title/4-4",[16,20.442,24,10.068,73,19.298]],["name/4-4",[]],["text/4-4",[]],["component/4-4",[]],["title/4-5",[80,44.429]],["name/4-5",[]],["text/4-5",[]],["component/4-5",[]],["title/4-6",[82,36.205,83,36.205]],["name/4-6",[]],["text/4-6",[]],["component/4-6",[]],["title/4-7",[316,60.476]],["name/4-7",[]],["text/4-7",[]],["component/4-7",[]],["title/4-8",[97,42.521]],["name/4-8",[]],["text/4-8",[]],["component/4-8",[]],["title/4-9",[317,69.125]],["name/4-9",[]],["text/4-9",[]],["component/4-9",[]],["title/4-10",[318,69.125]],["name/4-10",[]],["text/4-10",[]],["component/4-10",[]],["title/4-11",[319,53.776]],["name/4-11",[]],["text/4-11",[]],["component/4-11",[]],["title/4-12",[189,23.654,300,25.356]],["name/4-12",[]],["text/4-12",[]],["component/4-12",[]],["title/4-13",[304,15.63,320,22.48]],["name/4-13",[]],["text/4-13",[]],["component/4-13",[]],["title/4",[24,10.068,73,19.298,74,23.807]],["name/4",[24,0.215,52,0.547,73,0.412,74,0.508,75,0.813]],["text/4",[0,1.205,1,1.712,4,0.796,5,1.769,6,0.946,7,3.182,13,1.114,16,2.657,18,2.295,19,1.518,20,2.707,23,1.262,24,1.888,33,1.668,35,0.912,36,2.691,38,1.156,40,3.016,41,1.668,42,3.953,45,1.713,52,4.362,57,1.126,58,2.674,59,0.912,60,2.47,65,1.289,69,2.155,70,1.02,72,0.863,73,3.021,74,3.727,75,1.205,76,4.719,77,4.307,78,2.339,79,3.196,80,4.605,81,4.004,82,3.431,83,3.431,84,1.094,85,2.447,87,2.084,91,3.149,94,1.742,96,3.657,97,3.907,98,4.056,117,3.86,148,0.892,169,0.863,175,1.331,176,1.741,184,4.51,188,1.323,208,0.892,219,2.145,224,0.836,246,1.622,293,1.262,300,0.699,301,4.28,304,0.431,305,3.86,306,1.043,316,3.923,317,4.484,318,3.749,319,3.488,321,1.84,322,2.382,323,2.717,324,1.474,325,1.732,326,2.16,327,2.68,328,3.914,329,2.53,330,0.946,331,5.252,332,0.781,333,2.566,334,1.905,335,1.54,336,1.732,337,1.732,338,0.819,339,2.197,340,1.905,341,2.566,342,1.474,343,1.622,344,1.9,345,1.331,346,3.407,347,2.102,348,1.843,349,1.9,350,1.9,351,1.815,352,1.622,353,0.902,354,2.68,355,2.317,356,0.923,357,2.145,358,2.823,359,0.984,360,2.68,361,2.389,362,2.197,363,3.307,364,1.773,365,1.474,366,2.691,367,1.474,368,1.9,369,1.9,370,1.9,371,1.622,372,1.331,373,1.905,374,0.923,375,1.295,376,1.84,377,6.402,378,1.114,379,1.419,380,1.607,381,2.41,382,2.848,383,0.984,384,3.016,385,1.043,386,0.998,387,1.278,388,0.923,389,1.732,390,1.156,391,0.71,392,1.419,393,1.076,394,1.54,395,1.059,396,1.54,397,0.958,398,1.331,399,1.474,400,1.372,401,0.667,402,0.667,403,0.667,404,0.667,405,0.667,406,0.667,407,0.667,408,0.667,409,0.667]],["component/4",[179,0.571]],["title/5-1",[304,15.63,320,22.48]],["name/5-1",[]],["text/5-1",[]],["component/5-1",[]],["title/5",[20,15.775,84,19.854,85,24.68]],["name/5",[84,0.886,85,1.101]],["text/5",[1,1.211,5,2.225,9,2.054,10,1.367,12,1.759,16,2.445,17,3.126,18,2.238,20,0.816,24,1.051,29,2.741,45,1.609,46,1.441,52,1.326,60,2.32,65,1.211,67,1.631,69,1.808,70,0.958,71,1.823,74,1.232,84,2.374,85,4,86,2.409,87,1.474,94,4.139,97,1.631,114,2.063,119,1.759,127,2.268,128,3.294,143,1.654,145,1.969,147,1.854,160,2.741,166,1.679,182,2.176,192,1.152,194,1.509,209,1.142,227,1.441,249,1.395,260,4.053,263,1.474,290,1.353,304,0.704,323,1.082,326,1.528,328,2.784,332,2.054,334,1.789,347,1.999,348,4.001,353,3.733,358,2.652,364,2.017,376,3.52,387,1.93,391,2.94,401,1.09,402,1.09,403,1.09,404,1.09,405,1.09,406,1.09,407,1.09,408,1.09,409,1.09,410,2.063,411,2.652,412,3.106,413,2.517,414,3.623,415,2.063,416,2.832,417,3.973,418,2.243,419,2.652,420,3.106,421,2.409,422,5.283,423,7.661,424,2.652,425,1.928,426,2.176,427,2.652,428,2.832,429,3.392,430,3.5,431,2.832,432,2.652,433,6.597,434,2.832,435,4.39,436,2.409,437,3.106,438,1.491,439,2.073,440,1.821,441,3.106,442,3.106,443,2.832,444,2.176,445,3.404,446,2.832,447,2.832,448,2.32,449,2.832,450,3.106,451,4.048,452,4.264,453,2.652,454,2.063,455,2.832,456,1.89,457,1.928,458,4.995,459,2.832,460,2.832,461,2.832,462,3.106,463,1.731,464,2.832,465,3.106,466,2.832,467,2.784,468,2.832,469,2.488,470,3.106,471,3.167,472,2.243,473,1.731,474,1.821,475,2.32,476,6.128,477,2.832,478,3.106,479,4.995,480,2.409,481,3.106,482,2.014,483,3.106,484,3.106,485,2.517,486,2.32,487,4.048,488,1.679,489,3.106,490,2.32,491,3.106,492,3.106,493,1.679,494,2.652,495,2.652,496,2.117,497,2.832,498,2.014,499,2.117,500,2.832,501,2.832,502,2.409,503,2.832,504,2.832,505,3.608,506,2.832,507,2.117,508,2.832]],["component/5",[179,0.571]],["title/6-1",[58,26.963,96,23.002,365,46.565]],["name/6-1",[]],["text/6-1",[]],["component/6-1",[]],["title/6-2",[58,26.963,96,23.002,306,32.938]],["name/6-2",[]],["text/6-2",[]],["component/6-2",[]],["title/6-3",[91,27.834,96,26.419]],["name/6-3",[]],["text/6-3",[]],["component/6-3",[]],["title/6-4",[96,26.419,509,37.263]],["name/6-4",[]],["text/6-4",[]],["component/6-4",[]],["title/6-5",[96,23.002,414,25.885,510,33.456]],["name/6-5",[]],["text/6-5",[]],["component/6-5",[]],["title/6-6",[96,20.368,127,24.13,511,26.144,512,31.157]],["name/6-6",[]],["text/6-6",[]],["component/6-6",[]],["title/6-7",[58,26.963,96,23.002,153,40.904]],["name/6-7",[]],["text/6-7",[]],["component/6-7",[]],["title/6-8",[91,27.834,96,26.419]],["name/6-8",[]],["text/6-8",[]],["component/6-8",[]],["title/6-9",[96,26.419,509,37.263]],["name/6-9",[]],["text/6-9",[]],["component/6-9",[]],["title/6-10",[96,23.002,414,25.885,510,33.456]],["name/6-10",[]],["text/6-10",[]],["component/6-10",[]],["title/6-11",[58,26.963,96,23.002,120,23.198]],["name/6-11",[]],["text/6-11",[]],["component/6-11",[]],["title/6-12",[91,27.834,96,26.419]],["name/6-12",[]],["text/6-12",[]],["component/6-12",[]],["title/6-13",[513,47.462]],["name/6-13",[]],["text/6-13",[]],["component/6-13",[]],["title/6-14",[96,26.419,509,37.263]],["name/6-14",[]],["text/6-14",[]],["component/6-14",[]],["title/6-15",[95,27.531,310,28.729,514,26.144,515,41.232]],["name/6-15",[]],["text/6-15",[]],["component/6-15",[]],["title/6-16",[29,37.83,514,33.91]],["name/6-16",[]],["text/6-16",[]],["component/6-16",[]],["title/6-17",[84,26.781]],["name/6-17",[]],["text/6-17",[]],["component/6-17",[]],["title/6-18",[97,36.205,138,30.967]],["name/6-18",[]],["text/6-18",[]],["component/6-18",[]],["title/6-19",[58,26.963,96,23.002,364,24.234]],["name/6-19",[]],["text/6-19",[]],["component/6-19",[]],["title/6-20",[58,23.875,96,20.368,176,15.547,364,21.459]],["name/6-20",[]],["text/6-20",[]],["component/6-20",[]],["title/6-21",[189,23.654,300,25.356]],["name/6-21",[]],["text/6-21",[]],["component/6-21",[]],["title/6-22",[304,15.63,320,22.48]],["name/6-22",[]],["text/6-22",[]],["component/6-22",[]],["title/6",[5,13.39,20,13.968,58,23.875,96,20.368]],["name/6",[52,0.839,58,0.883,96,0.753]],["text/6",[1,0.266,5,1.88,6,0.339,9,0.28,13,0.399,14,0.306,16,1.463,18,2.032,19,1.658,20,1.641,23,0.453,24,1.377,25,0.383,27,0.353,29,2.681,32,0.415,33,0.344,34,0.368,35,0.887,36,0.496,38,0.787,46,0.857,49,2.834,51,3.526,52,1.835,54,0.575,58,3.803,59,1.128,61,0.263,63,0.28,64,2.342,65,1.258,68,1.508,69,2.656,70,0.21,71,2.054,73,1.037,74,0.932,75,1.171,76,2.875,77,1.499,79,1.963,80,1.54,82,0.679,83,0.358,84,0.428,85,0.532,87,1.332,88,0.399,91,2.361,92,1.828,94,2.141,95,2.055,96,3.852,97,0.358,102,0.358,103,0.679,104,0.679,118,0.745,120,2.73,127,2.089,133,0.306,137,0.407,138,1.449,140,1.793,148,0.607,153,3.984,154,3.133,155,2.156,159,0.386,160,1.77,163,0.803,165,1.353,166,0.368,167,0.415,169,0.309,170,1.034,176,2.401,183,1.034,184,0.339,188,2.936,191,0.908,192,1.339,194,1.141,209,0.864,219,0.839,220,0.344,224,1.589,227,0.6,231,0.374,237,0.758,239,0.529,246,1.577,249,0.83,257,0.594,260,0.848,273,0.38,274,0.407,278,0.348,286,0.529,287,0.621,290,0.297,291,0.966,292,0.423,293,2.853,295,1.004,296,1.18,304,0.154,306,4.026,310,2.64,320,0.222,323,1.124,324,1.004,325,0.621,329,0.745,332,2.642,335,0.552,338,1.984,340,0.393,347,1.841,348,0.38,351,0.374,353,1.332,356,1.928,360,3.215,364,3.481,365,2.802,366,0.496,373,0.393,374,1.141,376,0.984,380,0.897,381,1.54,383,1.671,385,1.013,386,0.679,387,4.552,388,1.928,390,1.124,391,3.068,393,0.386,397,0.653,398,0.906,401,0.239,402,0.239,403,0.239,404,0.239,405,0.239,406,0.239,407,0.239,408,0.239,409,0.239,410,0.453,414,1.558,415,1.227,417,0.432,422,2.013,425,0.423,426,0.477,429,0.294,433,0.509,438,0.887,439,1.499,452,1.577,456,0.415,463,0.38,467,1.309,469,1.607,471,2.29,472,0.934,474,1.377,476,1.105,482,0.442,490,0.509,496,0.464,509,4.386,510,3.008,511,1.155,512,2.117,513,1.377,514,2.113,515,0.529,516,1.433,517,0.464,518,0.621,519,1.294,520,0.681,521,0.681,522,0.859,523,0.552,524,0.882,525,0.681,526,1.928,527,0.621,528,3.008,529,2.565,530,0.681,531,1.755,532,1.046,533,2.667,534,2.142,535,1.294,536,1.18,537,1.684,538,0.681,539,0.582,540,0.582,541,3.224,542,0.772,543,0.681,544,3.226,545,0.432,546,1.56,547,1.004,548,0.966,549,3.135,550,2.349,551,1.38,552,1.294,553,0.906,554,2.027,555,1.294,556,1.105,557,0.492,558,1.18,559,3.084,560,2.972,561,1.147,562,0.966,563,1.251,564,1.294,565,1.697,566,1.294,567,1.004,568,1.416,569,1.048,570,1.697,571,0.509,572,0.582,573,2.142,574,1.294,575,0.621,576,1.105,577,0.745,578,0.509,579,0.552,580,0.492,581,0.681,582,0.529,583,1.847,584,0.966,585,0.368,586,0.348,587,0.492,588,1.294,589,1.18,590,3.226,591,1.294,592,1.004,593,0.432,594,0.681,595,1.124,596,0.882,597,2.531,598,1.676,599,0.477,600,0.839,601,0.582,602,1.847,603,0.681,604,0.681,605,0.681,606,0.681,607,0.621,608,0.582,609,0.582,610,0.582,611,0.582,612,0.621,613,0.492,614,0.464,615,1.56,616,0.681,617,0.386,618,0.464,619,0.442,620,0.509,621,0.453,622,1.18,623,0.621,624,0.529,625,0.621,626,0.477,627,1.891,628,1.18,629,1.294,630,0.552,631,0.368,632,0.681,633,0.582,634,0.653,635,0.552,636,0.399,637,0.681,638,0.681,639,2.573,640,2.349,641,2.349,642,1.294,643,0.71,644,0.453,645,1.577,646,0.363,647,1.048,648,0.621,649,0.681,650,0.453,651,0.681,652,1.294,653,1.334,654,1.847,655,1.27,656,1.847,657,1.497,658,1.847,659,1.847,660,1.847,661,1.847,662,1.847,663,1.847,664,1.402,665,1.684,666,1.847,667,0.681,668,1.891,669,0.621,670,0.407,671,0.529,672,0.681,673,0.582,674,0.681,675,0.681,676,0.386,677,0.681,678,0.621,679,0.82,680,1.18,681,1.59,682,1.105,683,0.393,684,0.552,685,1.227,686,0.552,687,0.509,688,0.552,689,3.612,690,0.733,691,0.681,692,1.847,693,0.621,694,0.393,695,3.226,696,0.681,697,0.442,698,1.227,699,0.582,700,1.294,701,0.552,702,1.294,703,0.621,704,1.847,705,1.429,706,1.847,707,0.681,708,0.681,709,0.621,710,2.349,711,0.621,712,0.464,713,0.681,714,0.681,715,0.621,716,0.681,717,0.882,718,0.681,719,0.313,720,1.684,721,0.681,722,0.582,723,1.294,724,0.681,725,0.509,726,0.681,727,0.787,728,0.681,729,0.681,730,0.681,731,1.294,732,0.681,733,0.681,734,0.681,735,0.681,736,0.681,737,0.681,738,1.294,739,0.442,740,0.492,741,1.294,742,0.681,743,0.415,744,0.681,745,0.681,746,1.004,747,0.681,748,0.464,749,0.582,750,0.681,751,0.681,752,0.681,753,0.681,754,1.294,755,0.552,756,0.621,757,0.681,758,0.681,759,0.681,760,1.105,761,0.681,762,0.681,763,0.681,764,0.681,765,0.681,766,0.681,767,0.681,768,0.681,769,0.621,770,0.681]],["component/6",[179,0.571]],["title/7-1",[88,40.412,90,37.83]],["name/7-1",[]],["text/7-1",[]],["component/7-1",[]],["title/7-2",[89,38.425,90,37.83]],["name/7-2",[]],["text/7-2",[]],["component/7-2",[]],["title/7-3",[176,17.558,771,48.643,772,54.731]],["name/7-3",[]],["text/7-3",[]],["component/7-3",[]],["title/7-4",[321,28.88,773,51.494]],["name/7-4",[]],["text/7-4",[]],["component/7-4",[]],["title/7-5",[189,23.654,300,25.356]],["name/7-5",[]],["text/7-5",[]],["component/7-5",[]],["title/7-6",[304,15.63,320,22.48]],["name/7-6",[]],["text/7-6",[]],["component/7-6",[]],["title/7",[20,12.533,88,27.955,89,26.581,90,26.169,91,19.254]],["name/7",[24,0.26,88,0.909,90,0.851,94,0.615]],["text/7",[5,1.315,6,1.634,9,3.324,16,2.753,18,2.049,20,0.862,24,1.828,25,1.547,36,1.257,46,1.522,52,1.401,53,1.458,59,1.575,69,1.889,70,1.61,71,1.904,73,2.381,74,2.937,76,1.748,77,1.361,80,1.8,82,1.723,84,1.085,85,2.146,87,1.557,88,5.046,89,4.505,90,5.927,91,3.476,92,3.681,93,2.45,94,2.577,95,4.459,102,1.723,103,1.919,112,4.04,133,1.474,140,1.279,168,2.127,169,1.489,170,2.296,176,1.526,189,1.126,192,1.216,208,1.539,209,3.446,210,1.829,227,1.522,237,1.923,239,2.545,249,3.327,257,1.506,260,1.506,267,3.115,293,2.179,304,0.744,308,2.08,310,1.773,322,1.313,323,1.818,326,1.614,345,2.299,347,2.088,348,3.622,351,4.064,353,1.557,364,2.623,366,2,367,2.545,372,2.299,373,1.89,380,2.536,383,1.699,385,1.8,387,3.731,397,1.655,401,1.151,402,1.151,403,1.151,404,1.151,405,1.151,406,1.151,407,1.151,408,1.151,409,1.151,422,1.829,438,2.506,454,2.179,467,1.829,486,2.45,488,1.773,523,2.659,548,2.45,560,3.175,561,2.037,586,1.677,595,4.506,634,1.655,646,1.748,727,1.996,771,7.823,772,7.371,773,2.45,774,3.059,775,2.236,776,5.218,777,7.405,778,5.041,779,2.659,780,3.656,781,3.281,782,2.801,783,2.659,784,2.299,785,3.281,786,3.413,787,3.059,788,2.037,789,2.991,790,2.991,791,3.281,792,3.281,793,3.656,794,3.281,795,3.281]],["component/7",[179,0.571]],["title/8-1",[7,21.559,176,17.558,373,34.576]],["name/8-1",[]],["text/8-1",[]],["component/8-1",[]],["title/8-2",[189,23.654,300,25.356]],["name/8-2",[]],["text/8-2",[]],["component/8-2",[]],["title/8-3",[304,15.63,320,22.48]],["name/8-3",[]],["text/8-3",[]],["component/8-3",[]],["title/8",[7,24.761,20,18.118]],["name/8",[7,0.706,24,0.33,83,1.032]],["text/8",[1,2.946,5,0.627,7,4.084,9,3.299,18,2.034,19,1.142,20,0.654,24,1.652,29,4.954,33,2.101,34,2.251,36,1.596,57,0.848,59,3.015,65,3.28,69,2.273,72,1.13,77,4.258,78,3.345,85,3.299,91,3.645,94,0.987,96,0.954,102,1.307,116,1.486,117,1.614,118,1.434,119,1.41,120,0.962,140,0.97,147,2.486,169,1.13,176,2.461,183,1.833,192,0.923,224,1.833,260,1.142,274,1.486,299,1.515,304,0.564,321,1.043,322,0.996,323,1.451,339,1.653,346,6.527,347,2.512,348,3.895,353,2.549,364,3.977,366,0.954,373,4.353,376,1.043,378,2.441,383,1.289,385,1.366,386,2.187,387,4.584,391,2.825,396,2.017,401,0.874,402,0.874,403,0.874,404,0.874,405,0.874,406,0.874,407,0.874,408,0.874,409,0.874,414,1.796,467,2.321,499,1.696,524,1.696,526,4.249,528,3.5,571,3.111,580,1.798,586,1.272,598,2.486,599,4.399,655,2.251,681,1.41,685,2.766,688,5.088,784,2.918,788,1.545,796,2.125,797,3.798,798,3.763,799,4.897,800,3.958,801,1.931,802,6.819,803,1.859,804,3.375,805,5.047,806,1.614,807,5.37,808,5.37,809,6.278,810,2.489,811,6.278,812,1.614,813,2.489,814,1.744,815,4.011,816,2.489,817,2.489,818,4.165,819,1.614,820,2.489,821,1.744,822,1.744,823,2.017,824,1.931,825,2.269,826,2.489]],["component/8",[179,0.571]],["title/9-1",[24,11.564,97,36.205]],["name/9-1",[]],["text/9-1",[]],["component/9-1",[]],["title/9-2",[7,24.761,97,36.205]],["name/9-2",[]],["text/9-2",[]],["component/9-2",[]],["title/9-3",[77,24.91,78,31.973,97,31.523]],["name/9-3",[]],["text/9-3",[]],["component/9-3",[]],["title/9-4",[77,24.91,97,31.523,357,38.925]],["name/9-4",[]],["text/9-4",[]],["component/9-4",[]],["title/9-5",[7,21.559,77,24.91,97,31.523]],["name/9-5",[]],["text/9-5",[]],["component/9-5",[]],["title/9-6",[24,8.915,63,21.854,68,18.653,374,25.828]],["name/9-6",[]],["text/9-6",[]],["component/9-6",[]],["title/9-7",[20,13.968,128,24.392,188,21.268,205,28.312]],["name/9-7",[]],["text/9-7",[]],["component/9-7",[]],["title/9-8",[24,10.068,70,18.516,71,21.901]],["name/9-8",[]],["text/9-8",[]],["component/9-8",[]],["title/9-9",[97,36.205,178,46.979]],["name/9-9",[]],["text/9-9",[]],["component/9-9",[]],["title/9-10",[189,23.654,300,25.356]],["name/9-10",[]],["text/9-10",[]],["component/9-10",[]],["title/9-11",[304,15.63,320,22.48]],["name/9-11",[]],["text/9-11",[]],["component/9-11",[]],["title/9",[20,18.118,97,36.205]],["name/9",[52,1.144,97,1.407]],["text/9",[1,1.78,5,1.871,7,3.526,9,3.75,15,3.189,16,1.785,17,0.68,18,2.232,19,2.096,20,1.527,21,0.832,24,1.737,25,0.463,27,1.949,33,1.403,35,2.516,36,2.008,49,0.82,52,1.951,53,1.673,54,0.694,57,0.532,61,1.075,63,1.547,65,2.456,68,0.976,69,1.007,70,0.482,71,1.015,73,1.469,74,1.812,76,1.482,77,4.433,78,3.583,84,3.144,85,2.919,87,0.741,88,0.915,91,0.63,94,2.499,97,5.405,106,1.265,128,1.277,137,0.932,138,0.701,140,0.609,162,1.576,163,1.727,164,2.158,169,1.263,170,0.687,171,1.013,176,2.335,178,1.896,183,0.687,188,1.506,190,1.128,192,0.579,205,1.482,220,0.788,224,0.687,231,2.506,244,3.2,249,1.25,257,1.277,260,0.717,267,0.932,300,0.574,304,0.354,322,0.625,323,1.311,326,0.768,334,0.899,338,0.673,346,1.211,347,1.113,348,0.87,351,0.857,352,1.333,353,0.741,356,0.759,357,3.398,359,0.809,364,1.844,366,2.846,373,1.603,374,4.098,376,0.654,378,1.631,380,0.759,387,4.544,388,0.759,390,0.95,391,2.355,395,0.87,397,0.788,399,1.211,401,0.548,402,0.548,403,0.548,404,0.548,405,0.548,406,0.548,407,0.548,408,0.548,409,0.548,426,1.094,439,1.562,440,0.915,469,1.874,473,3.512,480,4.508,488,0.844,493,0.844,509,2.034,511,0.768,524,3.113,526,3.609,528,2.097,529,2.246,556,1.333,563,0.832,598,0.932,600,1.013,613,1.128,614,1.064,617,0.884,643,1.527,670,0.932,719,1.277,725,3.412,780,1.094,784,1.949,787,0.915,800,2.587,802,1.265,805,3.785,815,1.166,827,1.211,828,4.247,829,1.265,830,2.375,831,2.255,832,3.702,833,1.166,834,0.857,835,1.561,836,1.561,837,1.265,838,1.561,839,2.782,840,1.561,841,1.424,842,3.763,843,1.561,844,1.333,845,2.537,846,1.561,847,3.049,848,2.782,849,1.352,850,0.99,851,1.561,852,1.561,853,1.561,854,1.561,855,1.561,856,0.857,857,1.424,858,1.064,859,1.064,860,4.434,861,2.206,862,1.424,863,4.778,864,1.211,865,1.561,866,1.424,867,1.424,868,2.537,869,3.049,870,1.424,871,1.424,872,1.211,873,1.265,874,1.424,875,1.424,876,2.537,877,1.064,878,1.333,879,1.211,880,3.431,881,0.899,882,1.333,883,2.158,884,1.424,885,1.424,886,1.424,887,1.424,888,1.424,889,1.424,890,1.561,891,1.561,892,3.431,893,2.255,894,2.255,895,2.537,896,1.424,897,2.537,898,3.431,899,1.424,900,1.424,901,1.265,902,1.949,903,1.211,904,1.265,905,0.832,906,1.013,907,1.265,908,1.265,909,1.561]],["component/9",[179,0.571]],["title/10-1",[79,29.019,80,26.169,176,13.95,231,26.169,357,30.926]],["name/10-1",[]],["text/10-1",[]],["component/10-1",[]],["title/10-2",[79,29.019,80,26.169,96,18.275,176,13.95,509,25.777]],["name/10-2",[]],["text/10-2",[]],["component/10-2",[]],["title/10-3",[16,16.242,79,29.019,80,26.169,176,13.95,381,26.169]],["name/10-3",[]],["text/10-3",[]],["component/10-3",[]],["title/10-4",[189,23.654,300,25.356]],["name/10-4",[]],["text/10-4",[]],["component/10-4",[]],["title/10-5",[304,15.63,320,22.48]],["name/10-5",[]],["text/10-5",[]],["component/10-5",[]],["title/10",[79,41.949,80,37.83]],["name/10",[79,1.196,80,1.078,167,1.196]],["text/10",[1,0.94,5,0.608,6,0.663,7,2.058,9,1.359,13,0.781,16,3.401,18,1.33,19,1.517,20,0.35,24,1.809,25,1.935,29,0.731,36,0.51,41,0.672,42,1.602,49,0.699,52,0.569,53,1.072,54,0.592,57,0.454,59,0.64,63,0.992,64,1.564,65,0.519,69,2.364,70,2.294,72,0.605,73,2.825,74,1.609,77,3.584,78,0.709,79,3.194,80,5.554,84,0.441,85,3.904,88,1.937,89,2.261,91,0.974,93,0.995,94,2.723,95,3.852,96,3.367,112,2.472,133,0.598,138,1.822,147,1.44,148,1.132,155,1.44,159,0.754,165,0.767,169,0.605,176,2.901,188,1.623,191,1.186,192,2.932,208,0.625,209,0.49,219,2.143,227,0.618,231,3.377,244,1.69,257,1.517,260,0.611,274,0.795,293,5.927,294,0.885,304,0.302,310,3.873,318,2.822,321,0.558,322,0.533,323,1.151,330,1.201,340,0.767,351,0.731,353,0.632,357,2.631,361,2.387,364,1.638,366,1.267,374,0.647,376,0.558,377,2.199,379,0.995,381,5.097,382,3.991,384,1.214,385,0.731,387,4.181,391,1.962,393,0.754,397,1.667,398,1.69,401,0.846,402,0.467,403,0.467,404,0.467,405,0.467,406,0.467,407,0.467,408,0.467,409,0.467,414,3.313,415,0.885,422,2.926,425,0.827,429,0.574,433,2.469,436,1.033,467,0.742,469,0.663,471,5.264,480,4.446,488,0.72,505,0.962,509,3.711,510,3.826,518,1.214,526,4.197,528,1.842,529,1.973,545,0.845,546,1.602,562,1.802,563,0.709,568,2.648,570,2.387,571,0.995,576,1.137,577,4.555,580,2.93,582,2.564,585,0.72,586,3.337,593,1.529,597,1.69,598,0.795,614,0.908,627,1.937,630,3.287,631,0.72,634,1.217,643,0.731,679,0.845,683,1.389,685,2.694,697,1.564,786,0.699,788,0.827,798,0.933,804,1.079,805,0.962,806,0.864,827,1.033,829,1.079,849,0.647,850,2.096,858,0.908,860,2.804,879,1.033,893,1.079,894,2.678,906,0.864,910,1.69,911,0.864,912,2.412,913,0.933,914,3.36,915,2.316,916,1.955,917,1.332,918,0.827,919,1.137,920,1.079,921,1.332,922,1.137,923,1.137,924,0.672,925,0.885,926,1.137,927,0.908,928,1.332,929,1.332,930,4.283,931,4.283,932,3.699,933,1.332,934,5.226,935,1.214,936,2.199,937,2.199,938,3.014,939,1.214,940,2.199,941,0.885,942,1.214,943,1.332,944,1.214,945,4.697,946,1.332,947,2.412,948,1.332,949,3.134,950,1.214,951,3.305,952,1.332,953,0.908,954,2.059,955,1.332,956,1.332,957,1.137,958,1.332,959,2.143,960,2.199,961,1.214,962,1.079,963,0.781,964,1.137]],["component/10",[179,0.571]],["title/11-1",[82,36.205,91,27.834]],["name/11-1",[]],["text/11-1",[]],["component/11-1",[]],["title/11-2",[82,31.523,83,31.523,176,17.558]],["name/11-2",[]],["text/11-2",[]],["component/11-2",[]],["title/11-3",[189,23.654,300,25.356]],["name/11-3",[]],["text/11-3",[]],["component/11-3",[]],["title/11-4",[304,15.63,320,22.48]],["name/11-4",[]],["text/11-4",[]],["component/11-4",[]],["title/11",[20,15.775,82,31.523,83,31.523]],["name/11",[24,0.26,82,0.815,83,0.815,167,0.944]],["text/11",[1,0.72,5,1.619,7,0.664,9,0.76,16,1.099,18,1.629,19,2.364,20,1.129,24,1.669,25,0.957,41,0.932,42,1.227,46,0.857,47,5.367,51,2.358,57,0.629,58,1.45,59,0.887,64,2.093,65,0.72,70,0.996,72,1.465,73,1.382,74,1.28,76,0.984,77,3.196,80,1.771,82,5.835,83,4.489,85,0.76,88,1.083,89,1.03,91,3.237,92,2.434,93,1.38,94,3.054,95,0.957,96,1.974,102,5.417,112,0.797,133,2.314,137,1.927,148,0.867,155,3.075,159,1.047,160,3.209,165,1.064,169,1.465,170,1.891,176,2.345,177,2.144,188,1.72,192,0.685,203,1.227,208,1.514,219,2.787,224,0.813,257,3.534,260,0.848,290,0.805,293,3.421,301,4.69,304,0.419,306,3.527,308,1.172,310,0.999,320,0.602,321,0.774,322,0.739,323,0.644,328,2.395,332,1.327,334,1.064,335,3.483,337,2.943,338,0.797,340,1.064,347,0.739,351,1.014,353,0.877,356,0.898,364,2.962,367,6.958,373,2.967,382,1.198,387,4.294,391,3.278,393,1.047,395,1.03,397,0.932,401,0.648,402,0.648,403,0.648,404,0.648,405,0.648,406,0.648,407,0.648,408,0.648,409,0.648,414,1.392,422,1.03,429,1.392,435,2.261,469,0.92,471,5.084,509,1.745,510,2.395,515,2.504,524,1.259,526,1.568,527,1.685,528,1.799,529,1.927,539,1.577,540,3.669,541,3.609,548,4.368,554,2.331,560,3.559,561,1.147,563,1.719,568,0.932,571,3.21,575,1.685,577,1.064,584,1.38,636,1.892,639,1.198,643,1.014,646,1.719,647,1.497,679,2.047,680,1.685,681,1.047,690,1.047,697,1.198,705,3.134,719,0.848,743,1.124,749,2.756,755,1.497,774,2.519,780,1.295,786,0.97,806,1.198,812,1.198,850,3.266,859,1.259,860,4.38,872,1.433,873,1.497,906,2.093,910,2.261,913,1.295,924,0.932,953,2.199,960,1.685,965,1.497,966,1.259,967,0.97,968,1.685,969,1.685,970,1.577,971,1.848,972,1.848,973,1.334,974,1.685,975,1.848,976,1.38,977,1.685,978,1.433,979,1.685,980,1.848,981,1.848,982,5.151,983,1.848,984,3.227,985,1.848,986,1.295,987,1.848,988,1.848,989,1.848,990,1.334,991,4.398,992,6.428,993,1.848,994,3.227,995,3.227,996,1.433,997,1.848,998,1.848,999,1.577,1000,6.428,1001,8.298,1002,3.227,1003,1.848,1004,1.848,1005,1.848,1006,1.848,1007,1.848,1008,1.848,1009,1.295,1010,4.297,1011,1.227,1012,1.848,1013,1.103]],["component/11",[179,0.571]],["title/12-1",[77,24.91,78,31.973,176,17.558]],["name/12-1",[]],["text/12-1",[]],["component/12-1",[]],["title/12-2",[189,23.654,300,25.356]],["name/12-2",[]],["text/12-2",[]],["component/12-2",[]],["title/12-3",[304,15.63,320,22.48]],["name/12-3",[]],["text/12-3",[]],["component/12-3",[]],["title/12",[20,18.118,78,36.723]],["name/12",[35,1.286,78,1.427]],["text/12",[1,0.757,5,1.666,7,3.128,16,2.252,18,2.145,20,0.886,22,0.77,24,1.794,25,1.96,29,5.959,33,3.792,34,1.821,36,1.291,38,1.181,42,1.289,46,0.901,51,2.45,54,0.863,57,0.661,63,0.798,65,2.351,67,1.019,69,2.184,70,2.04,72,1.53,73,2.126,77,3.614,78,5.187,83,1.77,84,1.115,88,1.975,91,1.36,94,0.77,103,0.714,109,0.967,117,4.288,118,3.475,119,3.417,120,0.75,137,3.601,159,1.1,163,1.205,167,1.181,176,2.668,183,1.964,188,0.777,191,0.955,192,2.237,194,1.637,208,1.581,209,0.714,244,4.227,249,0.872,257,1.546,260,1.546,274,1.159,290,0.846,293,2.965,304,0.44,306,2.45,321,1.412,322,1.348,323,1.555,329,1.118,330,1.678,343,1.657,345,1.36,347,0.777,364,3.931,366,1.711,373,1.118,376,0.813,385,2.925,387,4.134,388,3.213,391,2.654,397,0.979,398,3.128,401,0.681,402,0.681,403,0.681,404,0.681,405,0.681,406,0.681,407,0.681,408,0.681,409,0.681,422,2.488,439,0.806,451,1.573,467,1.082,473,5.496,486,1.45,499,4.111,510,2.488,526,3.451,533,4.106,549,1.323,554,1.402,561,1.205,563,1.795,567,1.506,577,3.809,598,1.159,600,1.259,636,1.138,643,1.065,655,1.821,671,2.614,676,1.1,679,1.231,681,3.019,683,3.475,698,1.289,705,1.181,743,1.181,755,1.573,800,1.909,805,2.434,815,1.45,822,6.391,823,2.731,824,1.506,825,1.77,849,2.169,850,1.231,856,2.45,860,1.159,861,1.138,864,2.614,877,1.323,893,2.731,894,1.573,905,1.795,911,2.185,924,0.979,944,1.77,964,2.877,1014,1.975,1015,1.941,1016,1.573,1017,1.657,1018,1.77,1019,1.506,1020,6.254,1021,1.77,1022,1.77,1023,1.77,1024,1.138,1025,1.941,1026,1.402,1027,1.289,1028,3.369,1029,1.941,1030,1.77,1031,1.45,1032,1.941,1033,1.941,1034,1.941,1035,1.941,1036,1.941,1037,1.941,1038,1.77,1039,1.77,1040,1.77,1041,1.77,1042,1.77,1043,1.941,1044,1.657,1045,1.45,1046,1.941,1047,1.77,1048,2.877,1049,1.941,1050,1.941,1051,1.941,1052,1.941,1053,1.77,1054,1.941,1055,3.369,1056,1.941,1057,1.941,1058,1.941,1059,1.941,1060,1.36,1061,2.296]],["component/12",[179,0.571]],["title/13-1",[24,10.068,57,20.442,98,40.904]],["name/13-1",[]],["text/13-1",[]],["component/13-1",[]],["title/13-2",[24,10.068,61,23.198,98,40.904]],["name/13-2",[]],["text/13-2",[]],["component/13-2",[]],["title/13-3",[24,8.915,61,20.541,98,36.22,342,41.232]],["name/13-3",[]],["text/13-3",[]],["component/13-3",[]],["title/13-4",[189,23.654,300,25.356]],["name/13-4",[]],["text/13-4",[]],["component/13-4",[]],["title/13-5",[304,15.63,320,22.48]],["name/13-5",[]],["text/13-5",[]],["component/13-5",[]],["title/13",[20,18.118,98,46.979]],["name/13",[35,1.286,98,1.826]],["text/13",[1,1.974,5,1.276,7,0.648,9,2.606,10,1.855,16,1.076,18,0.457,19,1.45,20,0.83,24,1.707,25,1.706,36,1.616,49,1.659,53,0.801,57,2.96,61,3.359,63,0.741,69,1.833,70,0.975,71,1.153,72,1.434,73,1.356,77,3.008,80,3.477,85,1.734,94,3.447,96,2.778,98,7.491,104,0.947,109,0.898,138,3.067,140,1.231,148,0.846,169,1.434,176,2.542,188,2.536,209,1.551,210,1.005,224,0.793,227,1.466,247,1.229,260,0.827,271,1.143,274,1.886,290,0.785,304,0.409,321,1.323,322,1.264,323,1.764,326,1.554,327,2.56,329,1.82,330,1.573,332,2.082,334,1.82,338,2.733,340,2.429,341,1.399,342,6.899,353,1.499,356,1.535,359,1.636,364,3.509,366,1.616,383,1.636,386,1.659,387,4.595,388,1.535,390,1.922,391,3.512,393,1.021,397,0.909,401,0.633,402,0.633,403,0.633,404,0.633,405,0.633,406,0.633,407,0.633,408,0.633,409,0.633,422,3.805,439,0.748,467,1.005,469,2.522,471,2.003,473,1.761,487,4.666,493,0.975,510,1.005,514,1.554,526,3.079,528,3.532,563,1.683,568,2.554,577,2.429,586,0.921,600,1.169,610,1.539,631,1.708,636,1.057,643,1.734,644,2.098,650,2.098,653,2.282,664,1.886,694,1.039,790,1.644,797,1.644,822,1.263,834,0.989,856,3.747,949,1.886,953,2.153,954,2.697,966,1.229,1013,1.886,1024,1.057,1062,2.324,1063,1.539,1064,1.644,1065,1.644,1066,1.644,1067,7.248,1068,2.451,1069,1.539,1070,2.881,1071,1.978,1072,4.216,1073,1.263,1074,3.159,1075,3.159,1076,5.063,1077,3.159,1078,5.063,1079,3.159,1080,5.063,1081,3.159,1082,4.216,1083,1.922,1084,4.216,1085,2.003,1086,4.216,1087,6.337,1088,4.216,1089,2.282,1090,1.803,1091,1.803,1092,0.876,1093,1.197,1094,1.461,1095,1.922,1096,3.159,1097,3.023,1098,1.961,1099,1.803,1100,1.803,1101,1.803,1102,1.803,1103,1.803,1104,1.803,1105,1.803,1106,5.758,1107,4.216,1108,1.803,1109,1.803,1110,1.803,1111,1.803,1112,1.803,1113,1.803,1114,1.803]],["component/13",[179,0.571]],["title/14-1",[5,13.39,16,18.101,17,23.151,20,13.968]],["name/14-1",[]],["text/14-1",[]],["component/14-1",[]],["title/14-2",[16,20.442,17,26.144,378,35.186]],["name/14-2",[]],["text/14-2",[]],["component/14-2",[]],["title/14-3",[5,13.39,16,18.101,17,23.151,171,34.468]],["name/14-3",[]],["text/14-3",[]],["component/14-3",[]],["title/14-4",[5,16.27,16,14.728,17,18.836,70,13.34,290,18.836]],["name/14-4",[]],["text/14-4",[]],["component/14-4",[]],["title/14-5",[5,12.014,16,16.242,17,20.772,70,14.711,103,17.54]],["name/14-5",[]],["text/14-5",[]],["component/14-5",[]],["title/14-6",[16,20.442,17,26.144,151,46.565]],["name/14-6",[]],["text/14-6",[]],["component/14-6",[]],["title/14-7",[16,18.101,17,23.151,227,24.662,362,35.302]],["name/14-7",[]],["text/14-7",[]],["component/14-7",[]],["title/14-8",[15,29.019,24,7.999,65,18.589,362,31.675,425,29.607]],["name/14-8",[]],["text/14-8",[]],["component/14-8",[]],["title/14-9",[5,12.014,16,16.242,17,20.772,45,24.702,1115,43.484]],["name/14-9",[]],["text/14-9",[]],["component/14-9",[]],["title/14-10",[16,18.101,17,23.151,129,26.472,362,35.302]],["name/14-10",[]],["text/14-10",[]],["component/14-10",[]],["title/14-11",[5,12.014,16,16.242,17,20.772,84,15.774,1116,30.24]],["name/14-11",[]],["text/14-11",[]],["component/14-11",[]],["title/14-12",[7,24.761,120,26.643]],["name/14-12",[]],["text/14-12",[]],["component/14-12",[]],["title/14-13",[7,24.761,119,39.051]],["name/14-13",[]],["text/14-13",[]],["component/14-13",[]],["title/14-14",[15,24.072,16,13.473,17,17.231,70,12.203,103,14.55,220,19.956,906,25.654]],["name/14-14",[]],["text/14-14",[]],["component/14-14",[]],["title/14-15",[189,23.654,300,25.356]],["name/14-15",[]],["text/14-15",[]],["component/14-15",[]],["title/14-16",[304,15.63,320,22.48]],["name/14-16",[]],["text/14-16",[]],["component/14-16",[]],["title/14",[2,33.703,3,36.22,16,18.101,17,23.151]],["name/14",[2,0.984,3,1.057,16,0.528,17,0.676]],["text/14",[1,1.949,2,0.49,5,2.331,7,2.687,9,0.599,12,0.826,13,0.453,15,4.371,16,3.506,17,4.315,18,2.08,19,0.669,20,1.888,21,0.776,24,1.625,25,1.92,29,0.8,32,0.887,33,1.795,34,0.788,35,0.371,36,1.364,37,0.542,38,0.887,43,0.945,45,1.355,46,1.214,49,1.086,52,0.883,53,1.383,54,0.648,55,0.905,57,0.263,59,0.7,61,0.563,63,1.076,65,3.675,67,2.084,68,1.755,69,1.126,70,2.114,71,0.282,74,1.038,77,2.309,84,2.074,85,1.279,90,0.424,91,1.056,94,0.578,96,0.559,97,0.406,103,1.597,116,2.985,118,1.191,119,2.654,120,1.678,127,1.412,128,1.201,129,1.549,133,0.655,138,0.655,140,0.806,141,0.626,143,1.896,145,2.516,146,1.534,147,0.461,150,0.945,156,0.453,160,0.8,162,1.482,165,1.507,166,2.532,168,0.945,169,1.412,170,2.329,171,0.945,176,2.228,178,0.527,183,0.34,184,0.385,188,2.592,189,0.265,191,1.287,192,0.97,194,2.11,209,1.839,220,1.569,224,0.34,227,2.014,228,4.982,230,0.513,234,0.453,249,1.175,253,0.945,257,1.201,260,0.949,263,0.692,271,2.257,278,0.395,286,0.6,290,0.901,299,0.47,301,0.424,303,0.47,304,0.175,305,1.696,316,1.545,322,1.047,323,1.382,328,0.431,338,0.333,339,0.513,345,0.542,347,1.588,348,2.42,351,2.177,353,1.689,362,4.43,364,1.256,366,1.003,374,1.928,376,1.303,378,0.453,380,1.729,381,2.382,385,2.382,387,3.796,388,4.131,391,1.163,398,0.542,401,0.271,402,0.271,403,0.271,404,0.271,405,0.271,406,0.271,407,0.512,408,0.271,409,0.271,414,0.892,419,0.66,421,0.6,422,2.787,425,5.029,429,1.128,433,3.243,438,0.371,439,0.858,440,2.086,448,0.577,456,0.47,463,2.211,482,0.501,493,0.788,509,1.924,511,0.717,514,0.717,517,0.993,526,0.376,546,3.516,548,3.243,553,0.542,560,4.059,561,0.48,563,1.393,567,0.6,568,1.043,569,5.082,572,0.66,577,2.05,580,2.57,582,1.604,585,1.414,587,0.558,592,0.6,593,0.49,595,0.887,596,0.527,609,0.66,614,1.783,634,0.735,635,0.626,643,1.436,655,2.532,668,0.854,676,0.826,683,1.191,694,0.84,697,0.501,719,1.992,739,0.501,786,0.406,787,0.453,788,0.905,800,0.826,801,1.131,812,0.945,814,1.833,834,1.953,847,2.884,881,0.445,901,0.626,904,1.181,905,1.102,927,1.409,940,5.518,941,0.513,963,2.086,966,1.783,967,0.406,970,1.766,1014,3.103,1019,0.6,1060,1.021,1061,0.993,1069,0.66,1115,1.886,1116,2.97,1117,0.705,1118,7.184,1119,0.66,1120,0.6,1121,0.773,1122,0.577,1123,0.773,1124,0.773,1125,1.021,1126,0.626,1127,0.705,1128,0.773,1129,0.773,1130,1.329,1131,0.773,1132,1.676,1133,0.705,1134,0.705,1135,1.244,1136,0.705,1137,0.66,1138,0.66,1139,0.773,1140,0.66,1141,0.773,1142,3.706,1143,3.999,1144,0.773,1145,2.068,1146,0.773,1147,0.773,1148,0.66,1149,0.773,1150,4.341,1151,3.038,1152,0.773,1153,0.773,1154,0.773,1155,0.705,1156,0.773,1157,4.341,1158,0.773,1159,0.773,1160,0.773,1161,1.457,1162,1.457,1163,1.457,1164,1.457,1165,1.457,1166,1.457,1167,4.271,1168,1.766,1169,2.616,1170,0.773,1171,2.068,1172,0.773,1173,2.068,1174,2.068,1175,0.66,1176,0.705,1177,0.773,1178,2.233,1179,0.773,1180,2.068,1181,2.068,1182,2.068,1183,2.068,1184,2.068,1185,0.773,1186,0.773,1187,0.773,1188,1.457,1189,1.457,1190,1.457,1191,1.457,1192,1.457,1193,0.542,1194,0.773,1195,0.773,1196,0.773,1197,0.773,1198,0.773,1199,0.773,1200,0.773,1201,1.457,1202,0.773,1203,0.773,1204,3.11,1205,3.11,1206,3.11,1207,3.11,1208,3.11,1209,0.773,1210,0.773,1211,0.773,1212,0.773,1213,0.773,1214,2.068,1215,1.457,1216,0.773,1217,1.457,1218,1.457,1219,1.457,1220,1.457,1221,1.457,1222,0.773,1223,0.558,1224,0.8,1225,0.84,1226,2.068,1227,0.773,1228,0.773,1229,0.773,1230,0.558,1231,0.773,1232,0.773,1233,0.705,1234,1.244,1235,0.705,1236,0.705,1237,0.705,1238,0.773,1239,0.773,1240,0.773,1241,0.6,1242,0.705,1243,0.66,1244,1.329,1245,0.705,1246,1.592,1247,1.181,1248,1.507,1249,0.887,1250,0.705,1251,1.131,1252,1.053,1253,1.089,1254,1.329,1255,1.181,1256,2.884,1257,0.66,1258,0.705,1259,0.66,1260,0.501,1261,0.66,1262,0.66,1263,0.66,1264,0.66]],["component/14",[179,0.571]],["title/15-1",[1265,53.776]],["name/15-1",[]],["text/15-1",[]],["component/15-1",[]],["title/15-2",[16,14.728,17,18.836,24,7.254,25,12.817,103,15.906,191,21.272]],["name/15-2",[]],["text/15-2",[]],["component/15-2",[]],["title/15-3",[189,23.654,300,25.356]],["name/15-3",[]],["text/15-3",[]],["component/15-3",[]],["title/15-4",[304,15.63,320,22.48]],["name/15-4",[]],["text/15-4",[]],["component/15-4",[]],["title/15",[16,18.101,17,23.151,70,16.396,103,19.549]],["name/15",[16,0.528,17,0.676,70,0.479,103,0.571]],["text/15",[1,1.586,2,1.536,3,1.65,5,2.179,7,1.891,9,0.996,12,4.221,16,3.831,17,4.819,18,1.744,19,1.111,24,1.804,25,2.209,27,1.254,32,1.473,33,1.222,35,1.954,36,2.018,38,1.473,48,1.536,52,1.034,53,1.809,54,1.076,57,2.343,59,2.963,61,2.659,63,0.996,65,2.052,67,3.241,68,0.85,70,2.902,71,0.884,72,1.099,73,1.309,74,1.614,84,1.741,85,2.165,96,2.018,103,2.741,127,3.383,128,3.158,129,2.622,137,1.446,140,2.682,143,3.97,145,3.913,156,2.386,162,1.372,165,1.395,166,2.2,168,3.414,169,2.39,170,1.065,176,1.805,183,1.065,184,1.206,188,2.469,191,4.091,192,0.898,194,1.177,209,2.531,220,5.346,224,1.065,227,3.192,304,0.549,321,1.705,322,1.629,323,1.834,328,1.35,330,2.027,332,1.673,338,1.755,347,1.629,348,1.35,351,1.329,353,1.149,362,5.262,364,2.126,366,1.56,373,1.395,376,1.014,383,1.254,401,1.848,402,0.85,403,0.85,404,0.85,405,0.85,406,0.85,407,0.85,408,0.85,409,0.85,419,3.475,421,3.157,425,4.272,429,2.27,430,1.697,439,2.855,440,1.42,469,1.206,493,2.2,494,2.067,505,1.749,517,1.65,563,2.804,579,1.962,587,2.94,592,1.879,600,1.57,614,2.774,655,1.309,676,2.982,679,1.536,684,1.962,712,1.65,719,1.868,779,1.962,798,1.697,812,2.639,849,1.177,905,1.29,906,1.57,963,4.368,1014,2.386,1062,1.111,1071,1.136,1116,2.581,1125,2.852,1137,2.067,1175,4.495,1224,2.233,1225,1.395,1236,2.208,1237,2.208,1248,1.395,1266,1.962,1267,1.879,1268,4.07,1269,2.421,1270,3.711,1271,2.067,1272,2.208,1273,2.421,1274,1.809,1275,2.208,1276,2.421]],["component/15",[179,0.571]],["title/16-1",[5,13.39,16,18.101,17,23.151,68,18.653]],["name/16-1",[]],["text/16-1",[]],["component/16-1",[]],["title/16-2",[16,20.442,17,26.144,1125,42.056]],["name/16-2",[]],["text/16-2",[]],["component/16-2",[]],["title/16-3",[5,12.014,16,16.242,17,20.772,68,16.737,171,30.926]],["name/16-3",[]],["text/16-3",[]],["component/16-3",[]],["title/16-4",[7,13.093,16,12.415,17,15.878,18,9.238,68,12.793,119,20.649,176,10.663,189,12.507]],["name/16-4",[]],["text/16-4",[]],["component/16-4",[]],["title/16-5",[7,13.093,16,12.415,17,15.878,18,9.238,68,12.793,120,14.088,176,10.663,189,12.507]],["name/16-5",[]],["text/16-5",[]],["component/16-5",[]],["title/16-6",[5,12.014,16,16.242,17,20.772,70,14.711,290,20.772]],["name/16-6",[]],["text/16-6",[]],["component/16-6",[]],["title/16-7",[5,12.014,16,16.242,17,20.772,84,15.774,85,19.608]],["name/16-7",[]],["text/16-7",[]],["component/16-7",[]],["title/16-8",[189,23.654,300,25.356]],["name/16-8",[]],["text/16-8",[]],["component/16-8",[]],["title/16-9",[304,15.63,320,22.48]],["name/16-9",[]],["text/16-9",[]],["component/16-9",[]],["title/16",[5,13.39,16,18.101,17,23.151,171,34.468]],["name/16",[5,0.495,16,0.669,17,0.856]],["text/16",[1,2.167,2,0.639,3,0.687,5,2.527,7,3.67,9,0.768,12,1.059,15,2.638,16,3.691,17,4.731,18,2.305,19,1.496,20,1.548,21,2.04,24,0.988,25,1.836,32,0.614,33,2.804,34,1.762,36,1.662,38,1.137,46,0.867,48,1.656,52,2.374,54,0.448,58,1.464,59,0.484,61,1.009,65,2.167,67,0.53,68,2.271,69,0.677,70,2.716,71,0.682,73,0.324,74,0.741,84,2.615,85,2.765,86,0.782,87,1.547,90,1.789,91,1.316,94,1.519,97,0.982,103,1.409,116,2.287,118,1.077,119,4.286,120,2.394,127,2.523,128,3.087,129,0.502,133,2.497,134,0.707,140,0.728,143,3.931,145,4.414,146,0.591,147,1.116,148,0.877,150,2.114,152,0.426,160,0.553,162,1.059,166,2.07,169,0.848,170,1.908,171,1.212,174,1.596,176,1.4,182,0.707,184,0.502,188,0.403,189,1.119,191,0.496,192,1.925,194,2.107,209,0.371,224,0.822,227,1.212,231,0.553,249,1.464,253,0.654,257,0.463,260,0.463,263,3.825,275,0.707,290,1.138,299,1.589,304,0.229,314,0.602,320,1.063,323,1.334,328,1.042,329,0.581,330,0.931,332,1.783,334,0.581,338,1.406,345,0.707,347,1.533,348,1.456,353,2.272,356,1.584,359,1.689,362,2.165,364,2.378,366,1.468,373,1.505,376,1.816,380,0.49,381,1.789,385,1.433,387,1.009,391,3.164,397,0.509,401,0.656,402,0.354,403,0.354,404,0.354,405,0.354,406,0.354,407,0.917,408,0.354,409,0.354,410,0.67,411,0.861,413,1.515,414,3.182,415,0.67,417,0.639,422,2.668,423,4.365,424,0.861,425,2.024,426,0.707,427,0.861,429,1.652,430,1.83,433,1.951,438,0.484,439,1.59,440,3.631,463,1.456,467,0.562,476,0.861,488,1.01,493,1.01,494,0.861,495,0.861,496,1.274,497,0.919,498,2.812,499,0.687,500,0.919,501,0.919,502,2.971,503,0.919,504,1.704,505,2.766,506,0.919,507,2.222,508,0.919,514,1.604,542,0.602,546,2.88,561,0.626,585,1.01,593,0.639,595,1.589,664,1.559,668,2.245,676,1.059,690,0.571,694,1.505,697,1.212,717,0.687,719,0.463,727,0.614,806,0.654,814,1.83,827,0.782,828,0.817,849,0.49,877,0.687,902,1.984,904,2.117,905,2.04,911,2.114,941,1.735,963,1.531,973,2.355,1011,0.67,1014,1.096,1019,0.782,1060,1.309,1061,1.78,1083,1.589,1085,1.656,1116,0.639,1120,0.782,1125,2.684,1137,0.861,1138,0.861,1142,5.525,1175,0.861,1225,1.077,1242,0.919,1243,0.861,1244,4.365,1245,1.704,1246,2.638,1247,1.515,1248,2.758,1249,2.331,1250,0.919,1251,1.45,1252,1.35,1253,1.951,1254,0.919,1255,1.515,1256,3.514,1257,0.861,1258,0.919,1259,0.861,1260,0.654,1261,2.783,1262,0.861,1263,0.861,1264,0.861,1275,0.919,1277,0.707,1278,0.919,1279,1.008,1280,0.861,1281,0.753,1282,1.008,1283,2.067,1284,1.008,1285,3.26,1286,1.008,1287,1.008,1288,1.596,1289,1.008,1290,1.008,1291,1.008,1292,1.008,1293,2.382,1294,1.008,1295,2.382,1296,2.382,1297,1.869,1298,2.612,1299,1.869,1300,0.782,1301,1.869,1302,1.515,1303,2.971,1304,3.492,1305,3.27,1306,2.544,1307,1.008,1308,0.919,1309,1.886,1310,1.515,1311,0.919,1312,0.919,1313,1.008,1314,0.861,1315,0.707,1316,0.782,1317,0.753,1318,0.782,1319,0.782,1320,0.861,1321,0.919,1322,0.919,1323,0.919,1324,0.919,1325,0.919,1326,1.008,1327,1.008,1328,1.869,1329,1.008,1330,1.008,1331,1.008,1332,0.728,1333,0.728,1334,1.008,1335,0.728,1336,1.008,1337,1.008,1338,0.919,1339,1.704,1340,0.782,1341,1.008,1342,1.008,1343,0.861,1344,1.008,1345,2.23,1346,0.753,1347,0.707]],["component/16",[179,0.571]],["title/17-1",[7,17.129,84,15.774,120,18.431,140,18.589,655,25.777]],["name/17-1",[]],["text/17-1",[]],["component/17-1",[]],["title/17-2",[7,17.129,84,15.774,120,18.431,134,33.414,140,18.589]],["name/17-2",[]],["text/17-2",[]],["component/17-2",[]],["title/17-3",[7,17.129,133,21.422,227,22.128,283,28.47,514,23.458]],["name/17-3",[]],["text/17-3",[]],["component/17-3",[]],["title/17-4",[22,17.152,120,16.713,249,19.426,310,23.375,374,21.015,690,24.497]],["name/17-4",[]],["text/17-4",[]],["component/17-4",[]],["title/17-5",[7,17.129,24,7.999,91,19.254,120,18.431,176,13.95]],["name/17-5",[]],["text/17-5",[]],["component/17-5",[]],["title/17-6",[189,23.654,300,25.356]],["name/17-6",[]],["text/17-6",[]],["component/17-6",[]],["title/17-7",[304,15.63,320,22.48]],["name/17-7",[]],["text/17-7",[]],["component/17-7",[]],["title/17",[7,23.197,33,21.815,34,23.375,70,13.34,120,16.713]],["name/17",[7,0.837,33,0.646,34,0.693,120,0.495]],["text/17",[4,1.131,5,0.993,7,3.861,10,0.852,18,2.286,19,1.239,20,1.171,22,1.948,24,1.643,25,2.467,29,3.763,33,3.191,34,3.42,35,0.503,36,1.288,45,0.543,53,1.495,54,1.495,57,1.343,58,0.471,59,0.503,64,0.679,68,1.867,69,2.391,70,2.427,71,1.227,73,0.623,74,1.071,76,0.558,77,0.804,78,0.558,84,2.797,85,3.747,87,0.497,91,2.148,92,0.594,94,1.071,100,0.843,103,1.639,116,3.596,117,0.679,118,1.937,119,0.594,120,4.143,127,2.416,130,0.65,131,2.529,132,1.286,133,3.283,134,6.013,135,1.256,136,0.813,138,1.51,140,3.189,148,0.492,152,2.547,165,1.115,170,0.461,176,1.851,190,1.399,192,1.973,209,1.807,210,0.584,219,1.751,220,1.362,224,1.735,227,0.486,230,2.619,249,3.959,257,0.889,260,1.239,263,1.871,267,1.612,273,1.505,274,0.626,278,1.718,283,1.156,290,0.456,300,0.712,304,0.238,307,0.757,308,0.664,310,3.075,315,0.65,321,0.811,322,1.08,323,1.552,326,0.515,328,2.966,329,0.604,330,0.522,332,0.431,334,1.937,338,0.452,347,0.775,348,0.584,353,0.919,356,0.509,359,0.543,364,2.554,366,1.288,374,0.941,376,3.223,378,1.583,380,0.941,381,1.063,385,0.575,386,0.55,387,3.709,388,0.509,390,0.638,391,2.468,395,0.584,401,0.368,402,0.368,403,0.368,404,0.368,405,0.368,406,0.368,407,0.368,408,0.368,409,0.368,410,0.696,414,1.922,415,0.696,429,0.835,439,2.039,440,0.614,444,1.357,445,2.291,448,0.783,463,2.484,467,3.681,469,0.964,471,0.664,482,1.256,488,0.566,496,1.84,499,2.291,513,1.971,514,1.654,517,0.714,532,1.529,568,1.362,586,0.99,596,1.32,598,1.156,599,0.734,614,0.714,617,0.594,618,1.32,631,1.459,634,1.696,635,1.569,636,1.135,639,0.679,644,1.286,646,2.1,648,1.766,653,0.757,655,2.655,657,0.849,665,0.955,668,1.583,670,0.626,676,0.594,685,1.286,690,1.097,774,1.583,775,0.714,786,1.017,787,1.971,793,0.734,800,1.097,803,0.783,814,0.734,829,0.849,831,1.569,844,1.653,877,0.714,902,1.742,949,1.156,959,1.751,1014,1.135,1053,3.066,1060,4.627,1062,0.481,1071,0.492,1092,1.634,1093,1.793,1095,1.643,1097,2.66,1098,1.202,1119,1.653,1135,0.895,1224,1.063,1225,0.604,1246,2.399,1247,2.188,1248,3.065,1249,1.178,1251,0.813,1252,1.399,1255,3.611,1260,0.679,1267,2.094,1333,0.757,1348,0.955,1349,0.696,1350,2.87,1351,1.766,1352,0.895,1353,1.202,1354,0.955,1355,1.048,1356,1.048,1357,1.048,1358,0.955,1359,2.305,1360,0.696,1361,3.059,1362,1.048,1363,1.048,1364,1.048,1365,1.048,1366,3.366,1367,2.462,1368,0.757,1369,1.048,1370,1.048,1371,1.936,1372,1.048,1373,0.783,1374,1.048,1375,1.048,1376,1.048,1377,1.048,1378,1.048,1379,0.955,1380,1.048,1381,1.048,1382,0.955,1383,1.048,1384,1.048,1385,1.936,1386,1.936,1387,1.936,1388,1.048,1389,1.936,1390,1.446,1391,1.766,1392,1.936,1393,1.936,1394,1.766,1395,2.7,1396,3.362,1397,1.936,1398,3.066,1399,1.936,1400,1.936,1401,1.766,1402,1.653,1403,1.048,1404,1.048,1405,1.048,1406,1.048,1407,0.757,1408,0.813,1409,1.048,1410,1.048,1411,0.955,1412,1.048,1413,2.305,1414,1.202,1415,0.849,1416,0.849,1417,0.734,1418,0.783,1419,1.446,1420,1.653,1421,0.849,1422,0.664,1423,1.228,1424,1.286,1425,0.955,1426,0.955,1427,1.048,1428,1.936,1429,1.048,1430,2.7,1431,1.048,1432,0.955,1433,0.955,1434,3.362,1435,1.569,1436,0.895,1437,0.813,1438,1.048]],["component/17",[179,0.571]],["title/18-1",[24,8.915,84,17.581,445,36.22,1260,34.468]],["name/18-1",[]],["text/18-1",[]],["component/18-1",[]],["title/18-2",[176,15.547,445,36.22,705,32.342,1260,34.468]],["name/18-2",[]],["text/18-2",[]],["component/18-2",[]],["title/18-3",[83,36.205,1439,62.86]],["name/18-3",[]],["text/18-3",[]],["component/18-3",[]],["title/18-4",[189,23.654,300,25.356]],["name/18-4",[]],["text/18-4",[]],["component/18-4",[]],["title/18-5",[304,15.63,320,22.48]],["name/18-5",[]],["text/18-5",[]],["component/18-5",[]],["title/18",[7,14.209,18,10.026,33,19.956,34,21.383,70,12.203,118,22.788,119,22.409]],["name/18",[7,0.557,33,0.783,34,0.838,119,0.879]],["text/18",[7,2.807,18,2.717,19,0.876,20,2.054,24,1.098,25,1.306,29,4.868,33,1.674,34,1.031,36,0.731,37,1.337,46,2.044,47,1.48,49,1.743,52,0.815,53,2.911,54,1.476,59,1.594,67,1.002,69,1.907,70,2.02,71,0.696,72,0.866,73,1.416,74,1.747,77,0.792,78,1.768,82,1.002,84,2.585,85,4.239,88,1.119,89,1.064,91,1.779,94,2.089,96,0.731,103,0.702,106,1.546,117,1.237,118,4.683,119,5.489,120,0.737,127,0.866,140,2.553,147,1.139,148,2.472,165,1.099,166,1.031,169,1.507,170,1.461,176,2.058,192,0.707,209,0.702,224,2.626,249,0.857,257,3.23,260,2.022,274,3.145,278,0.975,304,0.433,320,1.082,321,0.799,322,1.328,323,1.534,330,1.653,340,1.912,341,2.575,347,2.816,351,1.047,364,3.662,366,0.731,373,2.538,376,3.717,380,1.613,383,0.988,391,3.39,397,1.674,399,2.575,401,0.67,402,0.67,403,0.67,404,0.67,405,0.67,406,1.165,407,0.67,408,0.67,409,0.67,414,1.432,417,1.21,429,1.432,435,4.588,439,2.718,443,1.74,444,5.89,445,7.674,446,3.027,447,1.74,448,6.073,449,3.027,454,1.267,467,1.064,473,1.85,485,4.269,488,1.794,495,2.834,511,0.939,517,2.262,532,1.081,533,1.185,557,1.378,586,1.696,614,2.262,636,1.119,647,1.546,686,1.546,694,1.099,699,1.629,705,4.282,778,1.48,787,1.119,800,1.081,822,1.337,827,1.48,878,1.629,910,1.337,914,1.119,963,1.119,990,1.378,1016,1.546,1020,2.326,1060,2.326,1061,6.411,1117,1.74,1122,2.479,1134,1.74,1224,1.821,1260,6.101,1261,6.008,1348,1.74,1349,1.267,1414,1.185,1439,1.74,1440,1.74,1441,1.908,1442,1.629,1443,1.74,1444,1.908,1445,1.74,1446,1.908,1447,1.908,1448,3.319,1449,1.908,1450,1.908,1451,1.908,1452,1.908,1453,1.908,1454,2.397,1455,1.908,1456,1.908,1457,1.908,1458,1.908,1459,1.908,1460,1.629,1461,1.908,1462,1.908,1463,1.908,1464,1.908,1465,1.908,1466,1.908,1467,3.319,1468,3.319,1469,2.262,1470,1.908,1471,7.037,1472,1.629,1473,1.908,1474,1.629,1475,1.908,1476,1.546,1477,1.908,1478,1.908,1479,1.908,1480,1.908,1481,1.908,1482,1.425,1483,1.908,1484,1.908,1485,1.908]],["component/18",[179,0.571]],["title/19-1",[7,19.09,24,8.915,117,34.468,176,15.547]],["name/19-1",[]],["text/19-1",[]],["component/19-1",[]],["title/19-2",[189,23.654,300,25.356]],["name/19-2",[]],["text/19-2",[]],["component/19-2",[]],["title/19-3",[304,15.63,320,22.48]],["name/19-3",[]],["text/19-3",[]],["component/19-3",[]],["title/19",[7,21.559,20,15.775,117,38.925]],["name/19",[7,0.706,24,0.33,117,1.274]],["text/19",[1,1.506,5,0.407,7,4.004,9,1.589,10,0.71,12,3.637,16,1.316,18,1.829,20,1.408,24,1.769,25,1.758,27,0.836,29,0.886,31,1.378,33,4.202,34,1.549,36,2.053,46,0.749,52,1.65,55,1.002,57,1.825,59,2.848,61,0.624,65,2.813,69,1.399,70,1.653,73,1.504,74,0.64,77,3.457,78,3.844,84,1.772,85,1.924,87,0.766,91,2.914,92,2.651,93,1.206,94,2.352,103,0.594,116,1.711,117,7.077,127,1.301,137,0.964,138,2.102,140,1.824,143,1.526,166,0.872,168,1.047,176,2.111,183,2.609,192,2.797,194,2.274,200,1.378,208,1.813,209,1.054,220,1.445,224,1.7,253,4.44,304,0.366,322,0.646,323,2.514,329,1.651,330,0.804,332,1.178,336,1.472,338,0.696,340,1.651,347,1.872,354,1.308,355,1.131,361,4.638,364,3.363,366,1.793,372,1.131,373,3.416,374,1.878,380,1.392,385,5.202,387,4.34,388,1.878,390,2.351,391,2.559,395,0.9,397,2.36,398,2.008,401,0.566,402,0.566,403,0.566,404,0.566,405,0.566,406,0.566,407,0.566,408,0.566,409,0.566,414,2.952,417,1.024,418,2.07,444,2.707,473,0.9,512,0.946,526,0.784,533,1.002,557,1.166,562,1.206,617,1.623,639,1.047,653,2.791,655,3.7,679,1.024,681,2.189,685,1.072,686,1.308,687,1.206,697,1.047,698,1.072,725,2.14,740,1.166,748,1.1,787,0.946,800,0.914,802,1.308,805,2.791,814,1.131,821,1.131,834,0.886,849,1.392,859,3.651,860,1.711,903,1.252,913,1.131,924,1.949,963,1.68,1009,2.008,1020,2.707,1030,1.472,1048,1.378,1148,1.378,1241,1.252,1277,3.754,1333,1.166,1350,1.378,1486,1.378,1487,1.614,1488,1.614,1489,2.14,1490,1.614,1491,1.614,1492,5.357,1493,1.614,1494,1.308,1495,4.679,1496,3.864,1497,7.835,1498,4.679,1499,2.865,1500,4.679,1501,2.865,1502,1.614,1503,1.614,1504,1.614,1505,1.614,1506,4.885,1507,6.421,1508,1.614,1509,1.614,1510,1.614,1511,1.614,1512,1.614,1513,1.614,1514,2.633,1515,3.523,1516,1.614,1517,3.523,1518,2.865,1519,1.472,1520,1.614,1521,1.614,1522,1.472,1523,1.614,1524,1.614,1525,1.614,1526,1.614,1527,1.614,1528,1.614,1529,1.614,1530,1.614,1531,1.614,1532,1.614,1533,1.614,1534,1.614,1535,1.614,1536,1.614,1537,1.614,1538,1.614,1539,1.614,1540,1.614,1541,1.614,1542,1.472,1543,1.308]],["component/19",[179,0.571]],["title/20-1",[7,24.761,33,34.776]],["name/20-1",[]],["text/20-1",[]],["component/20-1",[]],["title/20-2",[7,24.761,1020,48.303]],["name/20-2",[]],["text/20-2",[]],["component/20-2",[]],["title/20-3",[304,15.63,320,22.48]],["name/20-3",[]],["text/20-3",[]],["component/20-3",[]],["title/20",[5,15.121,6,29.895,115,44.834]],["name/20",[5,0.391,6,0.773,63,0.638,115,1.159]],["text/20",[7,2.46,18,1.503,20,1.23,24,0.785,29,1.573,35,2.248,41,1.446,42,3.109,49,2.458,52,1.999,54,1.274,64,3.036,71,2.165,74,2.993,77,3.132,84,0.948,85,2.439,90,2.569,91,3.597,94,2.716,96,3.633,103,2.182,115,8.061,116,1.711,119,4.587,120,1.108,133,3.637,140,1.117,155,2.795,170,1.261,176,2.606,188,3.418,192,1.736,209,3.277,227,1.33,249,1.288,257,3.716,267,2.795,290,2.983,300,1.054,304,0.65,321,1.201,322,1.147,323,0.998,334,3.945,360,2.323,364,3.449,387,4.387,391,3.193,397,1.446,401,1.006,402,1.006,403,1.006,404,1.006,405,1.006,406,1.006,407,1.006,408,1.006,409,1.006,438,2.248,439,1.19,445,6.072,473,3.307,474,5.404,496,1.954,509,1.55,514,1.41,515,2.224,526,2.275,528,2.609,533,1.78,547,4.602,595,1.744,639,1.859,697,1.859,717,5.143,746,5.312,778,4.602,784,2.009,800,1.624,815,3.496,821,3.28,822,3.28,849,2.275,881,2.696,905,1.527,910,2.009,965,2.323,1020,5.985,1060,2.009,1061,1.954,1251,5.312,1252,3.381,1260,1.859,1267,3.631,1281,3.496,1436,2.448,1494,2.323,1544,2.867,1545,4.681,1546,2.867,1547,2.867,1548,4.268,1549,4.681,1550,3.28,1551,2.614,1552,4.681,1553,4.268,1554,2.867,1555,3.996,1556,4.681,1557,2.867,1558,4.681,1559,2.867,1560,2.448,1561,2.071,1562,2.614,1563,6.848,1564,2.867,1565,4.681,1566,2.614,1567,2.867,1568,2.867]],["component/20",[179,0.571]],["title/21-1",[71,25.154,1569,62.86]],["name/21-1",[]],["text/21-1",[]],["component/21-1",[]],["title/21-2",[24,11.564,57,23.479]],["name/21-2",[]],["text/21-2",[]],["component/21-2",[]],["title/21-3",[22,23.807,24,10.068,25,17.789]],["name/21-3",[]],["text/21-3",[]],["component/21-3",[]],["title/21-4",[24,10.068,25,17.789,61,23.198]],["name/21-4",[]],["text/21-4",[]],["component/21-4",[]],["title/21-5",[10,26.41,24,10.068,25,17.789]],["name/21-5",[]],["text/21-5",[]],["component/21-5",[]],["title/21-6",[189,23.654,300,25.356]],["name/21-6",[]],["text/21-6",[]],["component/21-6",[]],["title/21-7",[304,15.63,320,22.48]],["name/21-7",[]],["text/21-7",[]],["component/21-7",[]],["title/21",[24,8.915,57,18.101,70,16.396,71,19.393]],["name/21",[5,0.391,24,0.26,57,0.528,72,0.704]],["text/21",[0,1.024,1,1.824,4,0.954,5,0.574,6,0.429,8,0.587,10,1.002,16,1.927,17,0.375,18,1.872,20,1.23,22,1.533,24,1.821,25,2.281,27,1.18,29,0.473,36,1.645,37,3.279,41,2.361,46,0.4,48,0.547,49,0.453,52,1.224,53,0.718,54,1.013,57,2.332,60,2.141,61,2.292,63,0.664,68,0.567,69,1.822,70,2.694,71,2.343,72,0.391,73,2.426,74,0.64,75,1.024,77,2.756,79,0.524,84,0.285,85,0.354,88,0.505,89,1.27,91,0.348,94,1.533,95,0.446,99,0.44,100,1.683,102,2.254,103,1.054,109,0.429,111,0.515,112,1.667,118,2.9,120,2.292,127,2.286,128,1.045,129,0.804,130,1.414,131,3.484,133,1.023,138,1.288,139,0.622,140,0.888,143,0.459,145,0.547,148,0.404,154,0.982,155,0.515,157,0.515,159,0.488,160,0.473,170,0.379,176,1.943,183,0.71,184,1.134,189,0.983,190,0.622,192,0.845,194,0.785,198,0.669,204,0.736,205,0.86,208,0.758,209,1.054,210,0.9,219,4.893,220,0.435,224,0.379,227,1.33,230,0.572,234,1.988,237,0.505,241,1.379,249,1.524,253,0.559,257,1.97,260,0.741,263,0.766,267,0.515,274,0.964,290,0.992,295,1.767,304,0.195,306,3.862,314,0.515,315,1.002,321,0.676,322,0.345,323,1.346,326,0.794,327,0.698,332,1.395,334,0.496,338,0.696,353,0.766,356,1.107,359,0.836,362,1.072,364,1.37,366,1.481,374,0.419,376,0.361,381,0.473,387,4.162,388,1.393,390,0.524,391,1.604,400,1.166,401,0.302,402,0.302,403,0.302,404,0.302,405,0.302,406,0.302,407,0.302,408,0.302,409,0.302,410,0.572,414,1.463,418,0.622,439,0.67,453,3.3,469,1.689,475,4.961,493,0.873,498,0.559,499,1.1,510,0.48,511,0.424,512,0.946,514,0.424,522,6.169,523,0.698,532,3.36,545,1.024,568,1.446,585,1.231,586,1.734,600,1.047,615,0.572,618,1.1,627,1.335,631,0.873,636,0.505,643,1.861,650,1.513,653,0.622,664,0.964,671,1.253,681,0.915,683,1.651,719,0.396,773,1.206,774,0.505,780,1.131,803,1.206,821,1.131,834,1.25,849,0.419,850,0.547,856,0.473,860,0.964,861,0.505,906,0.559,918,5.239,924,0.435,949,0.964,967,0.453,1009,0.604,1013,0.515,1024,0.505,1062,1.557,1071,0.404,1073,0.604,1083,0.982,1085,1.024,1092,2.086,1093,1.904,1094,1.308,1095,0.982,1097,0.964,1125,0.604,1126,1.308,1260,4.165,1270,1.472,1283,4.212,1288,2.896,1306,1.904,1332,4.639,1335,0.622,1347,0.604,1352,0.736,1366,0.736,1401,0.786,1414,2.399,1417,1.596,1437,0.669,1514,6.013,1543,1.308,1553,2.077,1561,1.166,1569,2.077,1570,7.492,1571,0.644,1572,0.669,1573,1.615,1574,6.186,1575,0.644,1576,0.862,1577,0.736,1578,0.862,1579,0.622,1580,0.736,1581,1.477,1582,1.513,1583,0.559,1584,0.862,1585,1.615,1586,3.524,1587,0.862,1588,0.862,1589,1.379,1590,0.862,1591,0.862,1592,0.862,1593,0.862,1594,0.862,1595,0.862,1596,0.862,1597,0.862,1598,1.615,1599,0.669,1600,0.862,1601,0.698,1602,0.786,1603,0.862,1604,0.862,1605,1.615,1606,2.866,1607,2.077,1608,0.644,1609,1.615,1610,0.862,1611,1.472,1612,0.524,1613,0.644,1614,0.862,1615,0.862,1616,0.862,1617,0.862,1618,0.862,1619,5.409,1620,2.614,1621,1.472,1622,1.472,1623,1.472,1624,5.205,1625,1.615,1626,1.615,1627,8.823,1628,8.823,1629,0.862,1630,0.786,1631,0.862,1632,1.253,1633,0.786,1634,0.862,1635,1.615,1636,0.698,1637,1.472,1638,1.206,1639,2.077,1640,0.862,1641,6.642,1642,6.642,1643,6.642,1644,0.862,1645,2.278,1646,0.862,1647,2.278,1648,1.615,1649,1.472,1650,0.862,1651,0.862,1652,0.862,1653,0.862,1654,0.786,1655,0.862,1656,0.862,1657,0.862,1658,0.862,1659,0.862,1660,0.862,1661,0.862,1662,1.1,1663,0.862,1664,2.278,1665,1.615,1666,0.862,1667,0.862,1668,0.862,1669,0.862,1670,0.862,1671,0.862,1672,0.862,1673,0.862,1674,0.862,1675,0.862,1676,0.862,1677,0.862,1678,0.862,1679,1.615,1680,1.615,1681,0.862,1682,0.862,1683,0.862,1684,0.862,1685,0.862,1686,0.862,1687,0.862,1688,0.862,1689,0.862,1690,0.862,1691,0.862,1692,1.615,1693,0.862,1694,0.736,1695,1.615,1696,1.615,1697,0.862,1698,0.862,1699,0.862,1700,0.736,1701,1.166,1702,1.615,1703,1.615,1704,1.615,1705,1.615,1706,1.615,1707,1.615,1708,1.615,1709,1.615,1710,0.786,1711,0.786,1712,0.622]],["component/21",[179,0.571]],["title/22-1",[304,15.63,320,22.48]],["name/22-1",[]],["text/22-1",[]],["component/22-1",[]],["title/22",[0,33.703,4,22.266,20,13.968,400,38.388]],["name/22",[0,1.246,4,0.823,400,1.419]],["text/22",[1,2.305,4,4.144,18,2.333,20,2.124,24,1.895,25,1.753,50,5.049,61,2.286,65,2.305,67,3.106,69,2.141,70,1.824,71,2.158,73,3.437,74,3.205,75,5.124,99,3.023,101,4.144,102,4.243,103,3.385,104,3.106,105,3.106,108,4.144,109,4.024,110,5.016,111,4.824,120,2.286,127,2.685,128,2.714,129,2.946,130,3.672,131,2.629,170,3.555,176,1.73,209,2.972,289,4.793,290,2.576,304,1.341,315,3.672,323,2.06,347,2.367,401,2.076,402,2.076,403,2.076,404,2.076,405,2.076,406,2.076,407,2.076,408,2.076,409,2.076,694,3.407,743,3.599,902,3.063,1092,2.874,1422,3.75,1579,4.271,1580,5.049,1713,5.393,1714,4.588,1715,5.393,1716,5.049]],["component/22",[179,0.571]],["title/23-1",[20,13.968,70,16.396,153,36.22,429,22.921]],["name/23-1",[]],["text/23-1",[]],["component/23-1",[]],["title/23-2",[20,13.968,57,18.101,153,36.22,154,32.342]],["name/23-2",[]],["text/23-2",[]],["component/23-2",[]],["title/23-3",[24,7.254,94,17.152,96,16.573,153,29.47,299,26.315,1717,39.433]],["name/23-3",[]],["text/23-3",[]],["component/23-3",[]],["title/23-4",[71,25.154,176,20.165]],["name/23-4",[]],["text/23-4",[]],["component/23-4",[]],["title/23-5",[189,23.654,300,25.356]],["name/23-5",[]],["text/23-5",[]],["component/23-5",[]],["title/23-6",[304,15.63,320,22.48]],["name/23-6",[]],["text/23-6",[]],["component/23-6",[]],["title/23",[14,26.963,153,40.904,154,36.524]],["name/23",[14,0.883,153,1.339,154,1.196]],["text/23",[5,1.005,14,1.793,16,0.806,18,1.721,19,1.086,20,1.935,24,1.719,25,1.183,34,2.798,36,0.907,43,1.534,49,1.243,52,1.01,53,1.774,57,2.312,58,1.793,59,1.136,69,0.856,70,2.095,71,3.004,72,1.074,77,2.148,79,3.15,80,2.841,87,2.885,91,3.46,92,4.171,94,2.053,95,3.149,96,3.284,99,1.209,109,1.178,118,1.363,127,1.812,140,2.37,153,7.345,154,6.166,157,1.412,160,2.841,167,2.429,168,1.534,176,2.292,183,1.041,184,1.178,188,2.433,191,2.546,192,1.919,209,1.468,210,1.319,220,2.013,227,2.821,237,2.34,257,3.379,277,1.571,294,3.438,299,1.44,304,0.536,306,1.298,310,3.286,323,1.39,332,2.5,334,1.363,338,2.622,353,1.123,356,2.954,359,2.067,361,2.883,364,2.09,366,0.907,379,1.767,380,1.15,383,1.226,385,2.19,387,4.349,388,2.516,391,2.272,401,0.83,402,0.83,403,0.83,404,0.83,405,0.83,406,0.83,407,0.83,408,0.83,409,0.83,422,2.885,429,2.232,452,2.02,467,1.319,469,3.028,490,1.767,509,1.279,510,2.225,512,3.564,526,2.516,528,1.319,529,1.412,532,1.34,533,2.478,548,1.767,558,2.157,559,2.02,561,1.469,570,2.883,573,2.157,577,1.363,580,1.709,589,2.157,592,5.267,595,1.44,597,5.159,598,3.09,607,2.157,608,2.02,610,2.02,611,2.02,612,2.157,613,1.709,639,3.357,643,1.298,681,1.34,682,2.02,690,1.34,712,1.612,719,1.832,749,2.02,779,1.917,782,2.02,787,1.387,793,4.26,800,2.261,806,1.534,849,1.15,859,2.72,869,1.917,1011,1.571,1062,2.376,1071,1.873,1224,2.19,1225,1.363,1266,1.917,1382,2.157,1494,1.917,1717,2.157,1718,5.176,1719,1.658,1720,2.366,1721,2.02,1722,2.366,1723,2.366,1724,2.366,1725,2.366,1726,2.478,1727,2.366,1728,2.366,1729,3.991,1730,3.991,1731,3.991,1732,1.571,1733,3.991,1734,3.991,1735,2.366,1736,2.366,1737,2.02,1738,2.366,1739,1.835,1740,2.366,1741,1.835,1742,2.366,1743,2.366,1744,2.366,1745,2.366,1746,2.366,1747,2.157]],["component/23",[179,0.571]],["title/24-1",[29,37.83,514,33.91]],["name/24-1",[]],["text/24-1",[]],["component/24-1",[]],["title/24-2",[189,23.654,300,25.356]],["name/24-2",[]],["text/24-2",[]],["component/24-2",[]],["title/24-3",[304,15.63,320,22.48]],["name/24-3",[]],["text/24-3",[]],["component/24-3",[]],["title/24",[5,13.39,20,13.968,120,20.541,155,31.73]],["name/24",[58,0.883,96,0.753,120,0.759]],["text/24",[4,1.135,5,2.576,18,1.678,20,2.374,22,2.263,24,1.664,25,2.171,29,3.131,32,2.72,36,3.34,46,1.258,49,1.423,52,1.157,53,1.205,57,0.923,58,4.376,61,1.047,63,1.114,68,3.058,69,2.065,70,2.572,71,2.415,73,2.355,77,1.125,83,1.423,87,1.286,89,2.492,96,4.089,100,3.434,103,0.997,120,4.244,127,2.59,130,1.683,131,3.706,138,2.008,140,2.58,148,1.272,152,2.413,155,3.406,162,1.535,176,0.793,184,1.35,188,1.789,192,1.005,220,1.367,224,1.193,231,1.487,257,2.052,263,1.286,278,1.385,304,0.615,312,1.683,314,3.406,321,2.39,322,1.789,323,3.035,332,3.241,338,2.855,353,1.286,356,3.217,364,1.805,366,3.565,380,1.317,383,1.404,387,4.086,388,1.317,391,3.376,401,0.951,402,0.951,403,0.951,404,0.951,405,0.951,406,0.951,407,0.951,408,0.951,409,0.951,410,2.969,429,1.169,438,2.147,467,1.511,509,1.465,526,2.172,528,2.492,529,1.618,533,3.542,542,1.618,568,1.367,586,1.385,618,1.847,619,1.758,620,2.024,621,1.8,622,2.471,623,2.471,624,2.103,625,2.471,626,1.899,627,2.621,628,2.471,630,2.196,631,2.416,639,1.758,644,1.8,717,1.847,806,1.758,861,1.589,925,1.8,949,1.618,953,1.847,1013,1.618,1062,2.052,1071,1.272,1092,2.772,1095,1.649,1097,2.669,1098,1.683,1225,1.561,1300,2.103,1422,2.835,1423,1.719,1583,1.758,1726,2.775,1732,1.8,1748,2.314,1749,1.958,1750,2.71,1751,2.71,1752,2.71,1753,2.71,1754,2.71,1755,2.71,1756,2.71,1757,2.71,1758,2.71,1759,2.71,1760,2.71]],["component/24",[179,0.571]],["title/25-1",[20,15.775,157,35.833,429,25.885]],["name/25-1",[]],["text/25-1",[]],["component/25-1",[]],["title/25-2",[20,15.775,157,35.833,1135,51.246]],["name/25-2",[]],["text/25-2",[]],["component/25-2",[]],["title/25-3",[33,30.279,157,35.833,313,29.525]],["name/25-3",[]],["text/25-3",[]],["component/25-3",[]],["title/25-4",[33,30.279,157,35.833,158,44.834]],["name/25-4",[]],["text/25-4",[]],["component/25-4",[]],["title/25-5",[20,15.775,157,35.833,176,17.558]],["name/25-5",[]],["text/25-5",[]],["component/25-5",[]],["title/25-6",[304,15.63,320,22.48]],["name/25-6",[]],["text/25-6",[]],["component/25-6",[]],["title/25",[24,7.999,63,19.608,156,27.955,157,28.47,158,35.621]],["name/25",[156,1.152,157,1.173,158,1.468]],["text/25",[0,1.42,1,1.485,4,2.083,5,2.024,18,1.487,20,2.202,24,1.832,25,2.572,33,3.609,36,3.079,48,1.42,53,1.694,55,2.365,57,2.24,59,1.075,61,2.267,65,0.873,69,2.124,70,2.207,71,2.61,72,1.017,73,2.454,74,0.888,84,2.658,87,1.063,94,1.972,100,2.166,103,0.824,107,2.771,127,1.017,133,1.006,138,1.006,140,1.485,152,1.611,156,2.233,157,6.519,158,7.849,169,1.73,176,1.924,188,2.348,191,1.102,192,2.175,194,3.196,208,1.051,209,1.401,220,1.922,227,2.307,247,1.526,249,2.233,253,3.224,283,1.337,304,0.508,308,1.42,313,3.953,321,2.083,322,0.896,323,2.919,330,1.115,358,1.912,364,0.904,366,3.079,373,1.29,386,1.176,387,1.472,388,1.851,391,1.859,397,1.13,401,0.786,402,0.786,403,0.786,404,0.786,405,0.786,406,0.786,407,0.786,408,0.786,409,0.786,414,1.643,429,3.953,430,1.569,439,0.929,472,1.618,474,2.915,487,3.087,507,4.875,513,1.313,514,1.102,560,1.363,563,2.029,586,1.947,634,1.13,646,1.193,668,1.313,670,2.274,719,1.028,786,2.611,788,1.39,819,1.452,832,1.815,856,2.091,905,1.193,914,1.313,959,3.224,1009,1.569,1062,2.692,1071,2.333,1092,1.088,1143,1.912,1151,1.912,1224,2.091,1225,1.29,1246,1.363,1248,1.29,1249,1.363,1306,3.302,1308,2.042,1309,1.618,1310,1.815,1314,1.912,1390,2.846,1424,1.487,1454,1.618,1550,1.569,1562,2.042,1579,3.591,1583,5.795,1719,1.569,1732,1.487,1761,1.737,1762,2.239,1763,7.086,1764,1.912,1765,5.349,1766,3.81,1767,2.239,1768,2.239,1769,1.912,1770,2.042,1771,1.526,1772,1.815,1773,6.577,1774,1.737,1775,3.81,1776,2.239,1777,2.239,1778,2.239,1779,3.81,1780,2.239,1781,2.042,1782,5.997,1783,2.042,1784,2.042,1785,2.042,1786,1.737,1787,1.912,1788,2.239,1789,2.042,1790,2.239,1791,4.972,1792,4.972,1793,2.239,1794,2.239,1795,2.239,1796,2.239,1797,2.239,1798,2.239,1799,1.526]],["component/25",[179,0.571]],["title/26-1",[24,11.564,107,38.425]],["name/26-1",[]],["text/26-1",[]],["component/26-1",[]],["title/26-2",[18,13.47,22,21.081,107,29.625,157,31.73]],["name/26-2",[]],["text/26-2",[]],["component/26-2",[]],["title/26-3",[16,16.242,17,20.772,18,12.086,22,18.915,107,26.581]],["name/26-3",[]],["text/26-3",[]],["component/26-3",[]],["title/26-4",[189,23.654,300,25.356]],["name/26-4",[]],["text/26-4",[]],["component/26-4",[]],["title/26-5",[304,15.63,320,22.48]],["name/26-5",[]],["text/26-5",[]],["component/26-5",[]],["title/26",[16,18.101,24,8.915,107,29.625,159,30.107]],["name/26",[16,0.528,73,0.499,107,0.865,160,0.851]],["text/26",[1,2.403,5,1.446,9,0.549,10,0.588,14,0.6,16,3.042,17,2.849,18,2.297,22,1.613,24,1.737,25,1.205,33,1.671,36,1.804,41,2.051,45,2.106,48,0.847,51,0.733,52,1.033,53,1.075,55,0.829,57,2.62,58,0.6,61,1.819,65,0.521,69,2.078,70,0.746,72,1.504,74,1.613,77,2.853,80,3.151,82,2.762,94,0.53,95,2.438,96,2.016,102,1.27,107,4.632,111,0.798,127,0.606,140,0.943,157,5.879,158,3.929,159,2.303,172,0.783,176,2.376,192,0.897,194,1.175,208,0.627,209,1.495,220,1.22,224,0.588,227,0.62,228,1.806,234,1.418,257,0.613,260,1.866,278,1.236,290,0.582,294,3.493,299,0.813,304,0.303,321,1.013,322,0.968,323,2,328,2.266,329,0.77,332,1.362,338,0.576,347,2.467,353,1.93,356,0.649,359,0.692,362,4.344,364,3.708,366,1.804,376,1.013,380,0.649,381,2.886,386,1.27,387,4.322,388,4.341,391,1.239,397,1.22,401,0.849,402,0.469,403,0.469,404,0.469,405,0.469,406,0.469,407,0.469,408,0.469,409,0.469,414,3.095,425,3.565,429,1.043,438,2.757,439,0.554,440,0.783,456,1.472,469,2.025,471,0.847,493,0.722,507,6.475,510,0.745,511,1.19,542,0.798,545,0.847,567,1.876,572,3.471,577,2.711,586,1.693,627,0.783,634,0.674,636,1.418,643,2.886,655,4.492,679,0.847,683,0.77,690,0.757,705,1.472,719,0.613,740,0.965,748,1.648,787,2.759,793,4.023,803,3.516,832,1.96,856,1.818,924,2.051,1014,1.418,1026,0.965,1062,1.11,1071,1.135,1083,2.474,1142,2.065,1143,4.018,1151,4.018,1168,3.471,1224,1.327,1225,0.77,1233,1.218,1235,1.218,1454,0.965,1514,1.648,1515,2.205,1579,0.965,1608,0.998,1719,0.936,1726,0.829,1761,5.968,1763,2.849,1765,1.218,1774,1.036,1782,2.205,1783,2.205,1784,2.205,1785,2.205,1786,1.876,1789,1.218,1800,1.336,1801,1.336,1802,0.965,1803,1.336,1804,1.336,1805,1.336,1806,0.887,1807,1.336,1808,3.313,1809,6.875,1810,2.418,1811,2.418,1812,2.418,1813,2.418,1814,2.418,1815,4.065,1816,2.418,1817,2.418,1818,2.418,1819,4.065,1820,2.418,1821,1.877,1822,5.26,1823,4.065,1824,6.165,1825,1.336,1826,6.76,1827,1.336,1828,3.707,1829,4.065,1830,4.707,1831,4.065,1832,4.065,1833,4.065,1834,4.065,1835,4.065,1836,4.065,1837,4.707,1838,4.065,1839,1.336,1840,1.336,1841,5.235,1842,1.336,1843,1.336,1844,5.26,1845,1.336,1846,1.336,1847,1.336,1848,1.876,1849,2.418,1850,2.418,1851,1.336,1852,2.418,1853,1.336]],["component/26",[179,0.571]],["title/27-1",[14,30.967,24,11.564]],["name/27-1",[]],["text/27-1",[]],["component/27-1",[]],["title/27-2",[15,36.524,1828,54.731,1854,60.022]],["name/27-2",[]],["text/27-2",[]],["component/27-2",[]],["title/27-3",[9,33.29]],["name/27-3",[]],["text/27-3",[]],["component/27-3",[]],["title/27-4",[156,35.186,463,33.456,902,31.091]],["name/27-4",[]],["text/27-4",[]],["component/27-4",[]],["title/27-5",[18,15.212,463,33.456,902,31.091]],["name/27-5",[]],["text/27-5",[]],["component/27-5",[]],["title/27-6",[18,12.086,85,19.608,306,26.169,391,17.826,967,25.045]],["name/27-6",[]],["text/27-6",[]],["component/27-6",[]],["title/27-7",[84,22.803,1482,51.494]],["name/27-7",[]],["text/27-7",[]],["component/27-7",[]],["title/27-8",[12,45.863]],["name/27-8",[]],["text/27-8",[]],["component/27-8",[]],["title/27-9",[143,43.128]],["name/27-9",[]],["text/27-9",[]],["component/27-9",[]],["title/27-10",[1343,69.125]],["name/27-10",[]],["text/27-10",[]],["component/27-10",[]],["title/27-11",[421,62.81]],["name/27-11",[]],["text/27-11",[]],["component/27-11",[]],["title/27-12",[7,24.761,45,35.709]],["name/27-12",[]],["text/27-12",[]],["component/27-12",[]],["title/27-13",[7,24.761,120,26.643]],["name/27-13",[]],["text/27-13",[]],["component/27-13",[]],["title/27-14",[7,19.09,52,22.698,120,20.541,189,18.236]],["name/27-14",[]],["text/27-14",[]],["component/27-14",[]],["title/27-15",[119,39.051,257,31.638]],["name/27-15",[]],["text/27-15",[]],["component/27-15",[]],["title/27-16",[1855,62.86,1856,62.86]],["name/27-16",[]],["text/27-16",[]],["component/27-16",[]],["title/27-17",[304,15.63,320,22.48]],["name/27-17",[]],["text/27-17",[]],["component/27-17",[]],["title/27",[161,69.125]],["name/27",[2,1.699,3,1.826]],["text/27",[1,0.934,5,2.623,7,3.403,9,3.048,10,0.307,12,3.473,13,1.405,14,0.594,15,6.554,16,0.643,17,0.822,18,2.49,19,2.004,20,0.183,21,0.705,24,0.784,25,0.392,27,0.685,28,0.504,34,0.377,35,0.635,36,1.26,37,0.927,38,0.805,43,0.858,45,2.569,46,0.875,49,0.695,52,2.437,53,1.066,54,1.461,57,1.689,59,0.635,61,1.27,63,1.796,65,1.702,67,0.695,68,1.004,69,1.036,70,1.689,71,1.199,73,0.224,76,1.005,77,0.995,78,0.372,83,0.366,84,3.066,85,2.347,87,1.358,90,1.035,91,0.282,94,1.135,97,1.259,100,0.822,103,0.257,116,2.961,118,0.402,119,4.339,120,1.807,121,3.813,127,1.983,133,0.848,134,2.576,136,2.55,137,1.126,138,0.848,143,3.644,144,0.636,145,3.888,148,2.877,150,1.224,152,1.211,156,0.409,160,0.383,163,1.171,164,0.541,165,1.087,168,0.452,169,0.857,170,1.259,171,1.224,176,2.001,178,2.75,183,0.307,184,0.659,188,0.279,189,0.647,191,0.343,192,0.889,194,0.643,205,2.49,208,0.327,224,2.3,234,1.678,239,0.541,249,1.077,257,1.313,260,0.32,263,3.002,273,1.052,275,0.489,277,0.463,278,1.225,279,0.596,283,0.417,292,0.433,295,0.541,298,0.636,300,0.694,301,2.868,304,0.544,306,2.018,315,1.777,316,2.138,320,0.228,322,0.529,323,1.628,328,0.737,329,1.087,330,1.425,332,0.287,334,3.011,338,0.301,339,0.879,340,0.402,341,1.464,347,3.383,348,1.336,353,2.219,357,0.452,362,0.463,364,0.534,366,2.098,374,2.272,376,2.992,378,0.409,380,0.339,381,0.726,383,0.977,385,0.726,386,0.366,387,0.511,391,2.906,392,1.791,393,0.749,395,1.052,401,0.245,402,0.245,403,0.245,404,0.245,405,0.245,406,0.245,407,0.464,408,0.245,409,0.245,413,0.565,414,3.716,418,0.956,421,4.906,425,0.433,426,1.68,429,2.806,430,1.68,438,1.151,439,2.169,440,3.474,444,0.927,448,0.988,454,1.592,463,4.27,469,0.348,473,0.389,474,0.776,480,1.026,485,1.072,487,1.529,490,0.521,493,0.715,498,0.452,502,1.464,512,0.409,524,0.475,526,0.643,531,0.521,546,2.442,560,3.473,576,1.13,578,0.988,579,0.565,584,0.521,585,0.377,587,0.504,593,1.52,595,0.805,600,0.858,613,1.731,617,0.395,633,2.047,646,0.372,657,0.565,668,1.106,670,0.79,678,2.186,679,3.888,681,1.069,694,0.762,697,0.452,698,0.879,717,0.475,719,0.607,725,0.521,727,0.425,743,0.425,786,0.991,796,0.596,800,1.358,801,0.541,812,1.555,819,0.452,821,0.927,833,1.791,834,1.035,861,0.409,862,0.636,881,0.402,902,3.624,903,0.541,905,0.372,906,0.452,908,1.943,911,1.555,914,0.409,924,0.667,963,0.409,966,1.286,967,2.998,978,0.541,996,1.026,1024,0.409,1045,1.791,1060,1.68,1061,1.95,1062,0.866,1065,0.636,1116,1.196,1167,0.636,1193,0.489,1223,0.956,1243,0.596,1246,2.237,1247,1.529,1248,2.118,1249,1.459,1251,1.026,1252,1.363,1253,0.988,1256,0.565,1274,0.988,1281,0.521,1283,1.815,1288,1.611,1293,1.72,1295,1.206,1296,1.206,1303,0.541,1304,0.636,1305,0.596,1306,0.463,1309,0.504,1310,0.565,1312,0.636,1314,0.596,1316,0.541,1317,1.791,1318,0.541,1319,0.541,1320,0.596,1321,0.636,1322,0.636,1323,0.636,1324,0.636,1325,0.636,1332,0.504,1333,0.504,1339,0.636,1343,3.446,1345,2.047,1346,1.791,1347,1.68,1359,0.596,1361,0.541,1373,0.521,1408,0.541,1421,0.565,1432,0.636,1433,0.636,1437,0.541,1443,0.636,1482,0.521,1542,1.206,1543,1.529,1551,1.206,1608,0.521,1638,2.455,1662,0.902,1741,1.026,1770,1.206,1855,3.982,1856,1.72,1857,2.997,1858,0.636,1859,0.636,1860,0.698,1861,0.698,1862,0.596,1863,0.442,1864,0.698,1865,0.698,1866,0.698,1867,0.636,1868,0.698,1869,0.636,1870,1.887,1871,0.698,1872,4.367,1873,1.323,1874,0.698,1875,1.323,1876,0.636,1877,1.887,1878,1.887,1879,1.323,1880,1.887,1881,1.887,1882,1.206,1883,0.698,1884,0.698,1885,0.636,1886,1.206,1887,0.698,1888,0.698,1889,1.13,1890,1.206,1891,0.698,1892,1.323,1893,2.186,1894,0.698,1895,0.698,1896,0.636,1897,1.206,1898,0.596,1899,0.698,1900,0.698,1901,1.72,1902,1.13,1903,0.636,1904,1.072,1905,0.636,1906,0.636,1907,0.636,1908,0.636,1909,0.698,1910,1.13,1911,1.323,1912,1.206,1913,1.323,1914,0.698,1915,0.698,1916,1.323,1917,1.323,1918,1.323,1919,0.698,1920,1.887,1921,0.698,1922,0.698,1923,3.287,1924,0.698,1925,0.698,1926,0.698,1927,0.698,1928,0.698,1929,0.698,1930,0.698,1931,0.839,1932,1.943,1933,0.698,1934,0.541,1935,0.565,1936,0.636,1937,0.698,1938,2.997,1939,0.698,1940,0.636,1941,0.636,1942,0.698,1943,1.323,1944,0.698,1945,0.698,1946,3.287,1947,0.698,1948,0.698,1949,1.206,1950,1.323,1951,0.698,1952,1.206,1953,0.698,1954,0.636,1955,0.698,1956,0.698,1957,0.698,1958,0.698,1959,0.698,1960,0.698,1961,1.323,1962,0.698,1963,0.698,1964,0.596,1965,0.698]],["component/27",[179,0.571]],["title/28-1",[7,21.559,120,23.198,165,34.576]],["name/28-1",[]],["text/28-1",[]],["component/28-1",[]],["title/28-2",[119,34.001,165,34.576,257,27.546]],["name/28-2",[]],["text/28-2",[]],["component/28-2",[]],["title/28-3",[41,30.279,49,31.523,165,34.576]],["name/28-3",[]],["text/28-3",[]],["component/28-3",[]],["title/28-4",[5,15.121,15,36.524,906,38.925]],["name/28-4",[]],["text/28-4",[]],["component/28-4",[]],["title/28-5",[304,15.63,320,22.48]],["name/28-5",[]],["text/28-5",[]],["component/28-5",[]],["title/28",[5,13.39,15,32.342,70,16.396,103,19.549]],["name/28",[70,0.826,103,0.985]],["text/28",[5,2.6,7,3.264,9,2.174,10,0.844,13,3.1,15,6.819,18,2.389,19,0.881,21,1.777,22,2.097,24,1.606,25,1.567,33,1.683,34,1.803,35,1.602,37,3.705,41,1.683,49,1.752,50,1.638,52,0.82,54,0.853,59,0.921,63,0.789,65,0.748,67,3.45,68,2.102,69,3.139,70,3.4,71,3.542,83,1.008,84,2.787,91,0.775,97,1.008,100,1.453,103,3.615,118,3.046,119,4.235,120,3.028,127,3.937,131,2.351,133,0.862,138,3.171,140,3.38,152,1.411,160,1.053,164,1.489,165,4.066,169,1.514,170,0.844,171,2.163,176,1.752,192,0.712,208,0.9,209,2.416,210,1.07,220,4.754,249,2.375,257,3.867,273,1.859,275,2.337,283,3.157,290,1.453,300,0.706,304,0.435,323,0.668,330,0.956,366,1.696,376,0.804,378,1.125,383,0.994,391,0.717,392,1.433,393,1.087,395,3.934,401,0.673,402,0.673,403,0.673,404,0.673,405,0.673,406,0.673,407,0.673,408,0.673,409,0.673,414,0.828,438,1.602,439,0.796,463,2.466,493,1.037,496,1.308,514,2.177,526,0.933,532,2.996,546,1.275,578,2.492,592,2.588,593,1.217,613,1.386,676,2.507,681,1.087,719,2.031,727,1.168,786,1.752,798,1.345,801,1.489,902,2.292,905,2.357,906,3.884,908,1.555,913,1.345,914,1.125,962,1.555,966,1.308,967,2.777,1062,2.427,1092,0.933,1093,3.978,1116,2.806,1223,3.196,1225,3.046,1255,1.555,1256,5.324,1257,1.638,1259,1.638,1260,3.429,1262,1.638,1263,1.638,1264,1.638,1266,1.555,1267,3.433,1351,4.822,1352,3.778,1361,1.489,1408,1.489,1411,1.75,1414,1.191,1417,1.345,1418,1.433,1419,1.433,1420,2.848,1423,2.115,1424,2.216,1425,1.75,1426,1.75,1550,1.345,1713,1.75,1726,2.747,1863,1.217,1893,3.042,1931,2.115,1935,1.555,1952,1.75,1966,1.75,1967,1.919,1968,1.75,1969,2.848,1970,1.919,1971,1.919,1972,1.919,1973,1.919,1974,1.919,1975,1.919]],["component/28",[179,0.571]],["title/29-1",[1265,53.776]],["name/29-1",[]],["text/29-1",[]],["component/29-1",[]],["title/29-2",[10,19.028,12,24.497,18,10.96,24,7.254,25,12.817,143,23.036]],["name/29-2",[]],["text/29-2",[]],["component/29-2",[]],["title/29-3",[189,23.654,300,25.356]],["name/29-3",[]],["text/29-3",[]],["component/29-3",[]],["title/29-4",[304,15.63,320,22.48]],["name/29-4",[]],["text/29-4",[]],["component/29-4",[]],["title/29",[10,20.983,14,21.422,18,12.086,20,12.533,143,25.403]],["name/29",[10,0.864,14,0.883,143,1.047]],["text/29",[1,1.43,4,0.898,5,2.215,9,1.509,10,4.915,12,3.629,14,3.355,16,1.25,18,2.288,22,1.908,23,1.423,24,1.714,25,2.926,34,2.601,35,1.029,36,2.862,37,1.501,41,2.874,52,1.567,53,3.657,54,2.848,57,2.182,61,2.476,63,1.509,65,0.835,69,1.742,70,3.261,71,1.339,72,1.666,73,1.547,78,1.141,80,1.176,84,1.214,85,0.881,92,1.214,100,0.933,103,0.788,118,1.234,127,0.973,128,3.206,130,2.278,133,0.963,139,4.627,140,2.497,143,4.808,145,3.613,165,2.772,166,2.601,169,0.973,170,0.943,176,1.667,189,1.651,191,1.054,192,2.92,194,1.041,208,1.006,209,2.096,220,1.081,253,1.39,260,0.983,263,2.284,275,1.501,300,1.349,304,0.486,316,1.601,321,3.3,322,2.28,323,2.743,332,1.509,338,1.582,345,1.501,347,0.857,351,2.013,356,1.783,359,1.901,366,2.862,374,1.783,376,2.016,378,1.256,380,1.041,386,1.125,387,3.044,388,1.783,391,1.372,401,0.752,402,0.752,403,0.752,404,0.752,405,0.752,406,0.752,407,0.752,408,0.752,409,0.752,418,4.627,422,1.194,429,2.075,439,1.523,472,3.475,493,1.158,496,1.46,532,3.629,533,1.33,541,3.993,551,1.601,561,2.278,563,1.141,615,1.423,617,2.078,643,1.176,646,1.141,655,1.983,670,1.279,681,1.214,722,1.83,740,1.548,774,3.34,784,2.571,849,1.041,864,1.662,882,1.83,905,1.141,967,1.125,1019,1.662,1062,0.983,1071,1.006,1092,1.041,1093,1.423,1178,5.965,1224,3.516,1225,1.234,1283,2.327,1347,1.501,1408,1.662,1414,2.987,1417,1.501,1469,4.366,1601,4.618,1613,1.601,1632,1.662,1694,3.133,1774,1.662,1806,1.423,1886,1.954,1905,1.954,1906,1.954,1907,1.954,1976,5.698,1977,1.954,1978,1.83,1979,5.196,1980,1.954,1981,5.842,1982,4.421,1983,1.954,1984,1.954,1985,1.954,1986,2.143,1987,2.143,1988,2.143,1989,3.346,1990,3.346,1991,2.143,1992,1.954,1993,2.143,1994,3.346,1995,2.143,1996,2.143,1997,1.954,1998,1.954,1999,2.143,2000,2.143,2001,1.954]],["component/29",[179,0.571]],["title/30-1",[12,30.107,84,17.581,86,41.232,87,25.226]],["name/30-1",[]],["text/30-1",[]],["component/30-1",[]],["title/30-2",[189,23.654,300,25.356]],["name/30-2",[]],["text/30-2",[]],["component/30-2",[]],["title/30-3",[304,15.63,320,22.48]],["name/30-3",[]],["text/30-3",[]],["component/30-3",[]],["title/30",[18,10.96,24,7.254,25,12.817,61,16.713,70,13.34,143,23.036]],["name/30",[12,1.517,143,1.427]],["text/30",[5,0.938,7,0.783,9,2.9,10,0.96,12,5.543,14,0.98,16,2.205,18,2.4,20,1.281,21,1.162,24,1.753,25,2.233,27,1.13,36,1.868,46,1.012,47,1.692,48,1.383,52,1.591,53,0.97,54,2.563,57,2.205,59,1.789,61,2.228,63,0.897,65,2.524,68,0.766,69,2.344,70,2.922,71,3.134,72,0.99,73,1.568,77,0.905,78,2.597,83,1.146,84,1.613,85,3.531,86,1.692,87,1.035,90,3.164,94,0.865,100,2.511,109,1.086,127,3.202,138,0.98,140,3.231,143,4.947,145,5.446,146,3.38,148,1.748,149,1.768,150,2.416,160,2.044,162,1.236,163,1.354,166,2.014,169,2.213,176,2.063,183,2.537,184,1.086,194,4.413,209,3.341,220,2.459,224,1.639,260,1.001,283,1.302,292,1.354,304,0.495,306,1.197,321,2.415,322,1.491,323,2.457,326,4.941,328,2.076,332,0.897,340,1.256,347,1.491,348,1.216,351,2.044,355,1.528,364,0.881,366,2.21,374,1.06,376,1.561,387,1.44,388,2.369,390,1.327,391,0.815,392,1.629,395,1.216,397,1.1,401,1.307,402,0.766,403,0.766,404,0.766,405,0.766,406,0.766,407,0.766,408,0.766,409,0.766,410,1.449,411,1.862,414,0.941,416,1.989,418,5.986,422,2.076,424,1.862,426,1.528,427,1.862,428,1.989,429,3.249,431,3.397,432,3.18,433,1.629,434,3.397,435,2.61,439,1.546,440,1.279,473,2.076,505,2.691,516,1.692,517,1.486,524,3.322,532,2.11,585,1.179,655,1.179,668,2.184,676,3.668,683,1.256,684,1.768,690,1.236,698,1.449,719,1.001,787,1.279,799,1.989,819,1.415,821,1.528,822,2.61,849,1.06,850,1.383,856,1.197,859,3.929,877,1.486,881,1.256,905,1.162,963,1.279,1014,1.279,1024,2.858,1062,1.001,1071,1.748,1092,1.06,1224,1.197,1225,1.256,1272,1.989,1283,2.362,1302,1.768,1306,2.474,1345,1.862,1349,1.449,1402,1.862,1414,2.313,1445,1.989,1454,2.691,1571,3.642,1662,1.486,1694,3.18,1712,1.575,1715,1.989,2002,2.782,2003,2.181,2004,1.692,2005,2.181,2006,1.768,2007,2.181,2008,3.397,2009,3.397,2010,2.181,2011,2.181,2012,2.181,2013,1.989,2014,1.989,2015,3.725,2016,2.181,2017,2.181,2018,2.181,2019,1.768]],["component/30",[179,0.571]],["title/31-1",[146,47.462]],["name/31-1",[]],["text/31-1",[]],["component/31-1",[]],["title/31-2",[18,13.47,146,31.157,150,34.468,2020,38.388]],["name/31-2",[]],["text/31-2",[]],["component/31-2",[]],["title/31-3",[18,13.47,131,23.627,146,31.157,150,34.468]],["name/31-3",[]],["text/31-3",[]],["component/31-3",[]],["title/31-4",[9,24.68,283,35.833,1904,48.643]],["name/31-4",[]],["text/31-4",[]],["component/31-4",[]],["title/31-5",[146,40.412,2021,55.868]],["name/31-5",[]],["text/31-5",[]],["component/31-5",[]],["title/31-6",[18,13.47,70,16.396,84,17.581,2021,43.073]],["name/31-6",[]],["text/31-6",[]],["component/31-6",[]],["title/31-7",[18,13.47,131,23.627,150,34.468,2021,43.073]],["name/31-7",[]],["text/31-7",[]],["component/31-7",[]],["title/31-8",[36,20.368,146,31.157,150,34.468,162,30.107]],["name/31-8",[]],["text/31-8",[]],["component/31-8",[]],["title/31-9",[304,15.63,320,22.48]],["name/31-9",[]],["text/31-9",[]],["component/31-9",[]],["title/31",[143,31.973,145,38.061,146,35.186]],["name/31",[143,1.047,146,1.152,150,1.274]],["text/31",[1,1.288,4,2.199,9,2.685,12,1.872,14,1.485,18,2.381,19,2.409,20,1.379,22,1.311,35,1.587,43,3.404,46,2.436,57,1.126,69,1.9,84,1.736,85,3.058,90,4.081,111,1.973,127,4.11,131,2.333,140,1.288,143,3.478,145,6.136,146,6.207,147,3.134,148,2.463,149,6.027,150,6.866,170,2.873,176,0.967,183,2.31,184,1.646,192,1.225,209,3.455,220,1.667,224,2.31,238,2.822,252,2.822,271,2.096,277,2.195,281,3.013,282,2.469,283,3.134,304,0.749,321,2.199,323,1.151,326,4.453,328,2.926,330,1.646,340,1.904,347,1.322,348,1.842,351,2.88,376,2.199,383,1.712,387,2.523,401,1.842,402,1.16,403,1.16,404,1.16,405,1.16,406,1.16,407,1.16,408,1.16,409,1.16,414,1.425,418,2.387,429,1.425,439,2.178,531,2.469,585,1.786,596,2.252,619,2.143,647,2.678,670,1.973,679,2.096,694,1.904,698,2.195,719,1.517,740,3.791,775,2.252,786,3.905,819,2.143,901,2.678,907,2.678,911,2.143,976,2.469,1092,2.551,1097,1.973,1098,2.052,1116,2.096,1119,2.822,1130,3.013,1248,1.904,1346,3.921,1347,2.316,1353,2.052,1354,3.013,1394,3.013,1422,2.096,1424,2.195,1437,2.564,1550,3.678,1774,2.564,1802,5.371,1806,3.486,1903,5.954,1904,6.999,1910,2.822,1938,3.013,1941,3.013,2008,4.786,2009,3.013,2013,3.013,2014,3.013,2021,4.254,2022,2.822,2023,3.305,2024,3.305,2025,3.305,2026,3.305,2027,3.305,2028,3.305,2029,3.305,2030,3.305,2031,3.305,2032,3.305,2033,3.305,2034,5.954,2035,3.791,2036,6.529,2037,3.305,2038,3.305,2039,3.305,2040,3.305,2041,3.013,2042,3.305,2043,3.305,2044,3.305,2045,5.249,2046,3.305,2047,3.305,2048,3.305,2049,3.305,2050,3.305,2051,2.822,2052,3.305]],["component/31",[179,0.571]],["title/32-1",[5,13.39,112,22.921,121,29.625,1265,35.302]],["name/32-1",[]],["text/32-1",[]],["component/32-1",[]],["title/32-2",[121,29.625,133,23.875,176,15.547,309,37.24]],["name/32-2",[]],["text/32-2",[]],["component/32-2",[]],["title/32-3",[121,29.625,176,15.547,2053,48.464,2054,36.22]],["name/32-3",[]],["text/32-3",[]],["component/32-3",[]],["title/32-4",[45,27.531,121,29.625,176,15.547,456,32.342]],["name/32-4",[]],["text/32-4",[]],["component/32-4",[]],["title/32-5",[121,29.625,124,39.7,125,39.7,176,15.547]],["name/32-5",[]],["text/32-5",[]],["component/32-5",[]],["title/32-6",[176,15.547,1638,39.7,1714,41.232,2054,36.22]],["name/32-6",[]],["text/32-6",[]],["component/32-6",[]],["title/32-7",[189,23.654,300,25.356]],["name/32-7",[]],["text/32-7",[]],["component/32-7",[]],["title/32-8",[304,15.63,320,22.48]],["name/32-8",[]],["text/32-8",[]],["component/32-8",[]],["title/32",[5,13.39,20,13.968,112,22.921,121,29.625]],["name/32",[5,0.391,52,0.662,112,0.669,121,0.865]],["text/32",[5,1.544,6,1.599,8,7.232,18,2.269,19,0.454,20,0.26,21,0.527,24,0.793,25,0.293,36,0.379,42,0.657,45,3.685,52,3.038,53,0.817,54,1.679,57,0.875,59,1.542,63,0.755,67,1.35,69,2.78,70,2.127,71,0.361,74,1.875,77,0.762,84,3.148,85,2.634,87,0.47,90,2.072,91,1.727,94,2.541,103,1.573,112,3.727,121,3.571,122,1.372,123,1.372,124,4.785,125,2.821,126,3.667,131,0.44,133,3.931,138,0.825,140,1.252,155,1.097,176,3.121,188,3.364,191,0.487,192,0.953,208,1.772,209,2.885,224,0.435,227,0.459,234,2.771,249,1.442,260,0.454,267,1.097,278,0.506,299,0.602,300,0.676,304,0.224,309,4.294,310,2.041,319,0.657,321,0.77,322,0.396,323,0.895,326,1.857,328,2.859,329,3.356,330,0.493,332,0.407,334,3.165,338,0.427,340,0.57,346,0.768,347,1.028,356,0.481,359,0.513,364,3.03,366,0.985,372,1.801,373,0.57,376,1.077,381,2.594,386,1.35,387,4.585,390,2.298,391,2.395,393,0.561,395,0.552,397,0.499,401,0.347,402,0.347,403,0.347,404,0.347,405,0.347,406,0.347,407,0.347,408,0.347,409,0.347,413,0.802,414,1.845,422,2.105,425,1.14,429,0.792,440,0.58,456,5.447,457,0.614,463,1.024,469,1.881,473,0.552,474,0.58,511,1.264,522,2.508,546,2.841,557,0.715,560,2.603,568,1.905,586,2.978,598,2.554,600,1.191,626,2.646,634,1.905,636,0.58,681,0.561,684,0.802,686,0.802,690,0.561,705,1.564,712,0.674,719,0.454,746,2.929,786,0.965,787,1.882,788,0.614,793,2.646,821,0.693,822,0.693,824,0.768,830,1.568,837,1.489,856,0.543,902,0.952,905,0.527,913,0.693,918,2.344,926,0.845,973,0.715,979,0.902,1014,1.077,1302,0.802,1346,1.372,1347,0.693,1379,1.675,1414,0.614,1482,0.739,1583,0.642,1624,0.802,1638,4.578,1700,4.035,1714,3.667,1732,0.657,1737,0.845,1771,6.438,1885,0.902,1901,0.902,1931,0.628,2053,5.589,2054,4.986,2055,6.406,2056,4.678,2057,2.57,2058,6.487,2059,0.99,2060,0.99,2061,1.994,2062,0.99,2063,0.902,2064,2.928,2065,0.99,2066,0.99,2067,0.99,2068,0.99,2069,0.99,2070,0.902,2071,0.902,2072,0.902,2073,2.57,2074,3.776,2075,3.06,2076,3.224,2077,3.776,2078,0.99,2079,0.99,2080,0.99,2081,0.99,2082,2.57,2083,0.99,2084,0.99,2085,0.99,2086,2.57,2087,0.99,2088,0.99,2089,0.99,2090,1.837,2091,0.99,2092,4.278,2093,1.675,2094,1.675,2095,1.837,2096,1.675,2097,1.837,2098,0.902,2099,0.902,2100,3.211,2101,0.99,2102,4.678,2103,0.99,2104,0.99,2105,0.99,2106,0.99,2107,0.99,2108,0.902,2109,0.99,2110,0.902,2111,0.99,2112,1.837,2113,0.902,2114,0.902,2115,0.99,2116,0.99,2117,0.99,2118,0.99,2119,0.99,2120,0.99,2121,0.99,2122,0.99,2123,0.99,2124,0.99]],["component/32",[179,0.571]],["title/33-1",[6,23.752,24,7.999,124,35.621,125,35.621,176,13.95]],["name/33-1",[]],["text/33-1",[]],["component/33-1",[]],["title/33-2",[6,18.155,24,6.115,25,10.803,70,11.245,73,11.72,84,12.058,126,28.279,176,10.663]],["name/33-2",[]],["text/33-2",[]],["component/33-2",[]],["title/33-3",[25,17.789,61,23.198,176,17.558]],["name/33-3",[]],["text/33-3",[]],["component/33-3",[]],["title/33-4",[189,23.654,300,25.356]],["name/33-4",[]],["text/33-4",[]],["component/33-4",[]],["title/33-5",[304,15.63,320,22.48]],["name/33-5",[]],["text/33-5",[]],["component/33-5",[]],["title/33",[5,9.183,6,18.155,18,9.238,121,20.318,122,27.228,123,27.228,124,27.228,125,27.228]],["name/33",[5,0.323,6,0.638,122,0.957,123,0.957,126,0.994]],["text/33",[1,1.7,5,2.32,6,3.525,8,2.972,9,2.534,16,1.485,18,1.916,19,0.551,20,0.166,21,0.336,22,0.476,24,1.678,25,1.972,28,0.867,34,0.341,36,1.304,41,2.471,42,1.143,45,0.326,46,0.292,51,0.659,52,0.513,53,0.28,54,0.534,56,0.511,57,0.586,58,1.528,61,1.172,65,0.246,67,0.331,69,2.166,70,2.005,71,0.438,72,0.286,73,1.923,74,1.73,76,2.861,77,1.554,80,1.664,82,2.436,84,1.777,85,1.793,87,0.299,88,0.704,90,1.444,91,1.062,92,2.302,93,0.897,94,1.202,95,0.326,96,2.712,100,1.146,102,0.631,109,0.598,112,1.753,118,0.363,121,2.088,124,4.173,125,4.325,126,5.163,127,1.845,138,1.362,148,0.296,156,0.369,165,0.692,167,0.383,168,0.409,170,2.041,172,0.704,176,2.613,183,0.528,188,2.601,189,0.216,192,0.445,194,0.584,200,0.538,208,1.03,209,1.802,210,1.69,219,0.779,227,1.019,228,1.64,231,0.346,234,2.557,249,0.539,260,0.551,267,1.311,271,0.4,301,1.205,304,0.143,306,2.23,310,0.649,312,0.391,319,1.458,321,0.264,322,1.053,323,1.871,326,0.591,329,0.363,332,2.46,334,0.363,338,2.316,347,0.878,351,1.205,353,0.817,354,0.511,356,2.254,357,0.409,359,1.762,361,0.867,364,3.137,366,1.435,372,0.442,374,0.306,380,0.306,381,1.444,383,0.622,385,0.346,386,0.331,387,4.402,388,1.278,390,0.383,391,2.596,393,0.357,395,0.669,401,0.221,402,0.221,403,0.221,404,0.221,405,0.221,406,0.221,407,0.421,408,0.221,409,0.221,414,0.947,417,0.4,422,1.896,425,1.363,429,0.518,430,0.442,432,0.538,436,1.703,438,1.054,439,0.262,440,1.009,454,1.458,463,0.351,467,0.669,469,1.695,471,0.4,474,2.872,482,1.966,488,0.341,509,0.649,510,1.69,511,1.999,514,0.846,515,0.489,522,0.419,526,1.278,528,0.959,529,1.027,532,0.68,533,1.068,541,2.124,546,0.798,549,1.172,557,0.455,560,0.731,565,1.243,568,1.107,570,0.867,577,3.218,586,0.614,593,1.922,613,0.455,615,0.419,626,1.538,631,0.93,634,0.868,635,0.511,643,1.444,644,1.458,646,0.916,650,1.458,655,0.341,664,2.031,676,0.975,681,0.68,694,0.363,697,0.409,727,0.383,739,0.779,746,0.489,748,0.818,771,0.511,787,0.704,788,0.391,793,0.442,800,0.357,804,4.353,812,1.116,830,0.538,831,3.759,849,0.306,860,2.604,861,0.369,872,0.489,873,0.511,879,0.489,883,0.489,902,0.326,905,0.916,914,0.369,924,1.107,949,1.027,953,1.172,957,3.198,969,0.575,973,2.19,978,0.489,986,2.384,1013,1.571,1014,0.704,1024,1.287,1031,0.897,1062,0.289,1071,0.296,1083,2.07,1085,1.392,1089,0.867,1092,1.82,1093,0.419,1095,1.336,1097,1.81,1098,1.068,1178,0.538,1193,0.442,1230,2.19,1252,0.455,1283,1.668,1340,0.489,1398,5.28,1417,0.442,1489,0.471,1514,2.066,1550,0.442,1561,0.455,1571,2.265,1572,3.599,1575,0.471,1577,0.538,1583,0.779,1599,2.041,1608,0.897,1613,0.897,1700,1.469,1711,0.575,1714,2.041,1749,1.586,1771,1.496,1841,0.575,1896,0.575,1935,0.973,2004,0.489,2006,0.511,2054,0.818,2056,0.575,2058,0.575,2061,0.932,2075,0.511,2076,0.538,2093,0.575,2094,0.575,2096,0.575,2099,1.569,2102,3.102,2108,0.575,2110,0.575,2113,0.575,2114,0.575,2125,8.389,2126,8.872,2127,8.678,2128,8.539,2129,0.63,2130,0.63,2131,1.469,2132,0.63,2133,0.489,2134,0.575,2135,2.195,2136,1.72,2137,1.201,2138,1.095,2139,0.63,2140,0.575,2141,4.639,2142,1.201,2143,5.142,2144,1.201,2145,1.201,2146,4.639,2147,3.402,2148,5.587,2149,1.201,2150,0.63,2151,0.63,2152,4.899,2153,5.142,2154,4.899,2155,1.72,2156,3.402,2157,0.63,2158,1.72,2159,0.63,2160,1.72,2161,3.032,2162,0.63,2163,0.63,2164,1.201,2165,0.63,2166,0.575,2167,0.63,2168,0.63,2169,1.72,2170,0.63,2171,1.095,2172,0.63,2173,1.201,2174,0.63,2175,0.63,2176,0.63,2177,3.032,2178,0.575,2179,0.538,2180,0.575,2181,1.201,2182,0.471,2183,0.63,2184,0.63,2185,1.201,2186,1.201,2187,1.201,2188,0.63,2189,0.63,2190,0.63,2191,0.511,2192,0.63,2193,0.63,2194,0.63,2195,0.63,2196,0.63,2197,0.63,2198,0.63,2199,0.63,2200,1.201,2201,0.63,2202,0.63,2203,0.63,2204,0.575,2205,0.511,2206,0.63,2207,1.243,2208,0.63,2209,0.63,2210,1.538,2211,0.538,2212,0.63,2213,0.63,2214,0.63,2215,0.63,2216,1.025,2217,0.973,2218,1.025,2219,0.63,2220,4.361,2221,3.102,2222,1.72,2223,0.63,2224,0.63,2225,0.63,2226,0.63,2227,0.63,2228,0.63,2229,0.63,2230,0.63,2231,2.195,2232,0.63,2233,0.63,2234,0.63,2235,0.63,2236,0.63,2237,0.575,2238,1.201,2239,1.201,2240,1.201,2241,1.201,2242,1.201,2243,0.63,2244,0.63,2245,0.63,2246,0.63,2247,0.63,2248,0.63,2249,0.63,2250,0.63,2251,0.63]],["component/33",[179,0.571]],["title/34-1",[1265,53.776]],["name/34-1",[]],["text/34-1",[]],["component/34-1",[]],["title/34-2",[18,15.212,595,36.524,2252,51.246]],["name/34-2",[]],["text/34-2",[]],["component/34-2",[]],["title/34-3",[5,10.895,84,14.305,112,18.65,169,19.633,227,20.066,902,22.401]],["name/34-3",[]],["text/34-3",[]],["component/34-3",[]],["title/34-4",[5,12.014,94,18.915,169,21.65,438,22.9,902,24.702]],["name/34-4",[]],["text/34-4",[]],["component/34-4",[]],["title/34-5",[5,17.367,61,26.643]],["name/34-5",[]],["text/34-5",[]],["component/34-5",[]],["title/34-6",[24,7.999,25,14.133,61,18.431,290,20.772,493,25.777]],["name/34-6",[]],["text/34-6",[]],["component/34-6",[]],["title/34-7",[24,7.999,25,14.133,61,18.431,493,25.777,1863,30.24]],["name/34-7",[]],["text/34-7",[]],["component/34-7",[]],["title/34-8",[5,9.183,18,9.238,94,14.458,169,16.549,438,17.504,463,20.318,902,29.367]],["name/34-8",[]],["text/34-8",[]],["component/34-8",[]],["title/34-9",[189,23.654,300,25.356]],["name/34-9",[]],["text/34-9",[]],["component/34-9",[]],["title/34-10",[304,15.63,320,22.48]],["name/34-10",[]],["text/34-10",[]],["component/34-10",[]],["title/34",[5,13.39,84,17.581,112,22.921,227,24.662]],["name/34",[5,0.391,84,0.513,112,0.669,227,0.72]],["text/34",[1,1.276,5,2.75,6,0.505,10,1.44,18,2.331,20,1.772,21,1,24,1.629,25,2.436,27,0.973,36,1.668,41,1.652,45,0.525,52,0.433,53,0.835,57,0.64,58,0.455,59,1.572,61,3.449,63,1.346,64,0.657,69,2.249,70,1.343,71,0.37,73,1.236,74,0.745,76,1.744,77,0.421,84,2.671,85,3.257,87,0.891,91,1.757,94,2.675,96,1.668,103,0.691,109,0.505,112,3.01,128,1.765,138,2.79,140,0.732,147,1.121,152,0.794,155,0.605,166,1.015,169,2.82,170,0.446,176,2.782,188,2.486,192,0.696,204,0.865,205,3.457,208,1.804,209,2.051,210,0.565,227,0.871,228,0.757,231,0.556,234,1.919,249,0.455,260,0.465,273,0.565,275,0.71,278,0.518,290,2.706,300,0.373,304,0.23,306,0.556,321,2.336,322,0.752,323,1.673,324,2.54,326,0.924,327,0.822,330,0.505,332,2.43,338,0.81,343,0.865,347,0.752,353,0.481,364,1.553,366,1.841,372,0.71,374,2.532,376,1.372,386,1.719,387,4.324,388,1.591,389,1.712,391,2.835,395,0.565,397,1.94,401,0.356,402,0.356,403,0.356,404,0.356,405,0.356,406,0.356,407,0.356,408,0.356,409,0.356,414,1.412,417,0.643,435,0.71,438,2.502,439,0.421,455,2.393,456,3.17,459,0.924,460,0.924,461,0.924,463,2.426,467,0.565,469,1.307,493,3.508,509,1.015,510,1.825,511,1.291,514,2.563,522,0.673,526,0.913,528,1.047,529,1.121,534,1.712,568,1.324,577,1.511,586,2.663,595,2.34,617,1.064,631,1.418,634,1.324,636,1.538,643,0.556,644,1.743,653,0.732,676,2.721,682,1.603,705,0.617,719,0.465,789,0.924,804,0.822,812,3.832,834,2.11,860,0.605,878,0.865,902,4.019,905,0.54,926,2.24,949,1.566,950,5.917,953,1.788,959,1.218,967,0.532,1013,3.527,1024,0.594,1062,1.997,1071,1.536,1073,0.71,1092,2.871,1093,3.191,1094,3.893,1095,1.597,1097,2.598,1098,1.629,1127,0.924,1155,0.924,1281,1.403,1305,1.603,1306,1.247,1335,1.356,1476,0.822,1599,3.376,1608,1.96,1613,1.403,1624,0.822,1739,2.983,1749,4.268,1859,0.924,1863,2.438,1954,0.924,2020,1.895,2070,4.381,2071,0.924,2072,0.924,2075,0.822,2179,0.865,2191,4.222,2216,0.865,2217,0.822,2218,0.865,2252,1.603,2253,1.014,2254,1.878,2255,1.014,2256,1.014,2257,5.909,2258,1.014,2259,2.624,2260,1.014,2261,1.014,2262,1.014,2263,1.014,2264,1.014,2265,9.328,2266,1.014,2267,1.014,2268,1.014,2269,1.014,2270,1.014,2271,0.924,2272,1.878,2273,1.014,2274,1.014,2275,1.014,2276,1.014,2277,1.014,2278,2.624,2279,0.757,2280,1.014,2281,6.978,2282,3.845,2283,1.014,2284,1.014,2285,5.21,2286,1.014,2287,2.624,2288,1.878,2289,1.878,2290,1.014,2291,1.878,2292,1.014,2293,1.712,2294,1.712,2295,4.804,2296,1.878,2297,1.014,2298,1.878,2299,1.014,2300,1.014,2301,1.878,2302,2.624,2303,2.624,2304,3.845,2305,1.014,2306,1.014,2307,1.014,2308,2.624,2309,2.624,2310,1.878,2311,1.878,2312,1.878,2313,1.878,2314,1.014,2315,0.924,2316,1.014,2317,1.014,2318,1.014,2319,1.014,2320,1.014,2321,1.712,2322,1.014,2323,1.014,2324,1.014,2325,1.014]],["component/34",[179,0.571]],["title/35-1",[376,25.145,414,25.885,2326,54.731]],["name/35-1",[]],["text/35-1",[]],["component/35-1",[]],["title/35-2",[24,10.068,25,17.789,61,23.198]],["name/35-2",[]],["text/35-2",[]],["component/35-2",[]],["title/35-3",[114,45.789,712,46.979]],["name/35-3",[]],["text/35-3",[]],["component/35-3",[]],["title/35-4",[114,35.302,474,31.157,475,39.7,1026,38.388]],["name/35-4",[]],["text/35-4",[]],["component/35-4",[]],["title/35-5",[114,35.302,234,31.157,475,39.7,1026,38.388]],["name/35-5",[]],["text/35-5",[]],["component/35-5",[]],["title/35-6",[114,39.867,475,44.834,2327,54.731]],["name/35-6",[]],["text/35-6",[]],["component/35-6",[]],["title/35-7",[304,15.63,320,22.48]],["name/35-7",[]],["text/35-7",[]],["component/35-7",[]],["title/35",[5,13.39,6,26.472,63,21.854,114,35.302]],["name/35",[5,0.495,6,0.979,114,1.305]],["text/35",[1,1.287,3,0.907,5,2.28,9,0.991,14,0.598,18,1.884,19,1.106,20,0.868,24,1.637,25,1.934,35,1.157,38,0.81,41,0.671,46,0.617,49,1.266,51,2.879,52,1.029,53,1.071,54,0.591,55,0.826,57,0.453,59,1.946,61,2.377,63,0.547,64,0.863,65,0.519,69,1.467,70,1.25,71,0.879,73,1.062,74,0.956,76,1.284,77,0.552,84,0.44,85,2.157,91,1.333,92,0.754,94,1.31,95,0.689,96,2.01,102,1.266,109,0.663,114,6.482,133,1.483,138,2.573,140,0.939,147,0.794,155,3.419,169,1.499,170,1.06,176,2.372,188,1.321,189,0.457,191,0.654,192,1.503,208,1.131,209,3.329,210,1.841,224,1.06,234,3.357,247,1.642,253,1.563,257,2.629,260,3.149,271,0.844,274,1.439,283,0.794,290,0.58,292,0.826,293,3.484,303,0.81,304,0.302,309,0.932,310,0.719,320,0.434,321,0.557,322,0.532,323,1.15,330,0.663,332,0.991,339,0.884,340,0.766,347,0.964,353,0.632,360,5.804,364,0.973,366,1.266,376,2.577,378,2.751,382,5.126,383,0.689,387,4.32,391,3.706,396,1.078,397,2.368,401,0.467,402,0.467,403,0.467,404,0.467,405,0.467,406,0.467,407,0.467,408,0.467,409,0.467,414,2.024,417,0.844,422,1.841,439,1.371,451,1.078,456,1.466,463,0.742,466,1.213,468,2.197,469,3.825,474,4.633,475,6.198,488,0.719,498,1.563,505,0.961,509,1.785,510,3.192,511,1.185,514,0.654,526,1.171,528,1.343,529,1.439,532,1.871,533,0.826,545,1.528,560,2.466,561,2.516,565,1.74,568,2.368,569,1.078,570,2.385,578,0.994,580,2.385,586,1.688,595,2.01,608,2.057,621,1.6,627,4.502,631,2.537,634,0.671,639,0.863,655,0.719,676,1.365,683,0.766,685,1.6,697,0.863,699,1.136,705,1.466,712,0.907,739,1.563,743,0.81,760,1.136,778,3.641,812,2.142,849,1.171,850,0.844,907,1.953,915,1.688,916,1.953,920,2.676,949,2.802,953,2.762,961,1.213,963,1.413,967,0.699,973,1.74,991,1.136,999,1.136,1009,1.688,1013,1.972,1024,1.413,1026,1.74,1068,2.562,1073,0.932,1092,2.281,1093,1.6,1094,1.078,1095,3.192,1097,4.096,1098,2.914,1224,0.73,1317,0.994,1349,0.884,1417,0.932,1421,1.078,1437,1.032,1550,1.688,1560,1.136,1566,4.28,1607,1.213,1612,1.466,1701,3.39,1739,1.032,1741,1.032,1771,2.762,1802,0.961,1897,1.213,1940,1.213,2054,1.642,2210,1.688,2327,1.213,2328,1.032,2329,6.526,2330,5.246,2331,6.526,2332,2.41,2333,4.053,2334,1.213,2335,1.136,2336,2.41,2337,7.162,2338,4.693,2339,1.331,2340,1.331,2341,1.331,2342,3.302,2343,1.136,2344,1.331,2345,1.331,2346,1.331,2347,1.331,2348,1.213,2349,1.331,2350,1.331,2351,1.331,2352,1.213,2353,1.078,2354,1.331,2355,1.331,2356,3.506,2357,4.714,2358,2.197,2359,1.331,2360,1.331,2361,1.331,2362,1.331,2363,1.331,2364,1.331,2365,1.331,2366,1.331,2367,1.331,2368,1.331,2369,1.331,2370,1.331,2371,1.331,2372,3.302,2373,3.302,2374,5.246,2375,4.053,2376,1.331,2377,2.41,2378,1.331,2379,1.331,2380,1.331,2381,1.331,2382,1.331,2383,2.41]],["component/35",[179,0.571]],["title/36-1",[91,24.234,96,23.002,112,25.885]],["name/36-1",[]],["text/36-1",[]],["component/36-1",[]],["title/36-2",[41,21.815,63,17.781,74,17.152,112,18.65,138,19.426,514,21.272]],["name/36-2",[]],["text/36-2",[]],["component/36-2",[]],["title/36-3",[24,8.915,94,21.081,96,20.368,112,22.921]],["name/36-3",[]],["text/36-3",[]],["component/36-3",[]],["title/36-4",[24,8.915,77,22.057,96,20.368,511,26.144]],["name/36-4",[]],["text/36-4",[]],["component/36-4",[]],["title/36-5",[5,12.014,84,15.774,112,20.566,227,22.128,438,22.9]],["name/36-5",[]],["text/36-5",[]],["component/36-5",[]],["title/36-6",[189,23.654,300,25.356]],["name/36-6",[]],["text/36-6",[]],["component/36-6",[]],["title/36-7",[304,15.63,320,22.48]],["name/36-7",[]],["text/36-7",[]],["component/36-7",[]],["title/36",[5,15.121,6,29.895,112,25.885]],["name/36",[5,0.391,6,0.773,63,0.638,112,0.669]],["text/36",[0,0.71,1,0.437,2,0.71,4,1.198,5,2.149,6,0.558,16,1.208,18,2.226,19,0.945,20,1.556,22,1.134,24,1.493,25,1.854,36,2.269,41,4.079,42,1.368,45,1.837,49,2.697,52,1.994,54,1.271,55,0.696,56,0.908,57,1.208,59,0.989,61,0.433,63,1.458,68,0.393,69,2.566,70,1.712,71,1.043,72,0.935,73,1.502,74,3.653,75,0.71,77,2.457,79,0.682,80,1.13,84,2.558,85,1.175,87,2.81,90,2.275,91,3.329,92,0.635,94,2.904,96,3.859,100,0.488,102,0.588,103,0.758,105,0.588,112,4.388,120,0.433,121,0.625,129,1.026,131,0.498,133,1.284,138,2.81,140,1.382,152,1.5,155,1.23,156,1.676,160,0.615,169,0.509,170,0.493,172,1.207,176,2.771,184,1.424,188,2.837,191,1.013,192,0.764,208,0.967,209,3.387,210,0.625,219,1.336,224,0.493,227,2.383,234,1.676,245,1.022,249,2.493,260,0.945,263,1.357,273,0.625,292,0.696,299,0.682,304,0.254,306,0.615,310,1.917,312,1.279,320,0.365,321,1.486,322,0.824,323,2.179,324,1.598,326,0.551,330,0.558,332,2.282,334,1.647,338,2.393,339,0.744,347,0.448,348,0.625,353,0.978,354,0.908,355,0.785,356,1.723,359,1.067,364,2.649,366,2.269,372,0.785,374,0.544,376,0.863,380,0.544,383,1.837,385,1.13,386,2.453,387,4.24,388,1.001,390,0.682,391,2.817,393,0.635,394,0.908,397,0.565,400,0.809,401,1.003,402,0.393,403,0.393,404,0.393,405,0.393,406,0.393,407,0.393,408,0.393,409,0.393,414,0.483,422,1.148,438,2.243,439,0.855,456,2.158,463,2.862,469,0.558,471,1.813,488,0.606,509,3.201,510,1.148,511,2.913,514,2.039,522,0.744,526,1.723,528,1.593,529,1.707,542,0.669,545,0.71,548,0.837,560,3.603,563,0.597,568,1.039,585,0.606,586,2.625,587,0.809,593,0.71,595,3.377,596,0.764,597,1.443,598,0.669,611,2.441,626,0.785,631,0.606,634,2.091,636,0.657,639,0.727,643,0.615,644,1.368,664,1.23,676,0.635,681,1.167,685,0.744,690,0.635,697,0.727,705,2.842,715,1.022,719,0.514,739,1.336,740,1.488,746,3.216,773,3.836,778,2.218,787,2.079,788,0.696,793,1.443,814,4.383,824,0.869,849,1.389,859,1.948,860,0.669,901,0.908,902,2.66,905,0.597,930,3.78,931,3.78,932,1.022,934,5.399,935,1.022,936,2.607,937,2.607,938,1.878,942,1.022,963,0.657,967,0.588,973,1.488,1013,0.669,1014,1.207,1062,1.628,1071,1.664,1073,0.785,1120,0.869,1252,0.809,1281,0.837,1335,0.809,1368,0.809,1550,3.272,1555,0.957,1741,0.869,1771,3.183,1799,0.764,1863,0.71,2035,1.488,2051,0.957,2064,1.878,2075,0.908,2076,0.957,2178,1.878,2179,0.957,2182,0.837,2191,1.669,2293,1.878,2294,2.607,2384,1.12,2385,1.12,2386,1.12,2387,1.12,2388,1.12,2389,1.12,2390,4.145,2391,1.12,2392,1.12,2393,1.12,2394,1.12,2395,1.12,2396,1.12,2397,2.06,2398,2.06,2399,1.12,2400,1.12,2401,1.12,2402,1.12,2403,1.12,2404,1.12,2405,1.12,2406,1.12,2407,1.12,2408,2.06,2409,1.12,2410,1.022,2411,1.12,2412,3.547,2413,2.859,2414,4.145,2415,1.12,2416,2.06,2417,1.12,2418,1.12,2419,1.12,2420,1.12,2421,1.12,2422,1.12,2423,1.12,2424,1.12,2425,0.957,2426,1.12]],["component/36",[179,0.571]],["title/37-1",[78,31.973,112,25.885,176,17.558]],["name/37-1",[]],["text/37-1",[]],["component/37-1",[]],["title/37-2",[84,19.854,133,26.963,1359,51.246]],["name/37-2",[]],["text/37-2",[]],["component/37-2",[]],["title/37-3",[189,23.654,300,25.356]],["name/37-3",[]],["text/37-3",[]],["component/37-3",[]],["title/37-4",[304,15.63,320,22.48]],["name/37-4",[]],["text/37-4",[]],["component/37-4",[]],["title/37",[20,15.775,78,31.973,112,25.885]],["name/37",[35,0.943,78,1.047,112,0.847]],["text/37",[1,0.719,5,2.345,7,3.704,13,1.082,18,2.031,20,0.847,24,1.844,25,1.732,29,5.566,33,2.596,34,1.742,36,1.235,38,1.962,49,2.703,51,1.769,57,0.628,63,0.759,65,2.278,69,2.502,70,1.802,72,1.464,73,2.223,74,0.732,76,0.983,77,3.72,78,5.917,83,1.693,84,1.702,87,0.876,91,1.302,96,1.645,103,0.679,109,0.919,112,3.866,116,1.101,117,4.165,120,0.713,133,3.6,137,3.834,138,2.312,155,2.563,159,1.045,163,1.145,167,1.123,169,1.464,170,0.812,176,2.564,183,1.418,188,0.738,192,1.592,193,1.333,194,0.897,209,1.893,227,0.856,244,1.293,249,1.448,257,1.479,260,1.479,263,0.876,267,1.101,277,1.225,279,1.575,290,0.804,292,2.001,294,1.225,304,0.418,306,1.769,321,2.156,322,1.29,323,1.495,329,1.063,330,2.138,347,0.738,351,1.012,364,2.96,366,1.645,371,1.575,385,2.356,386,0.969,387,3.709,388,2.501,391,1.924,396,1.495,397,0.931,401,0.648,402,0.648,403,1.131,404,0.648,405,0.648,406,0.648,407,0.648,408,0.648,409,0.648,438,3.084,439,1.338,444,1.293,445,1.257,448,1.378,463,1.028,467,1.028,469,1.606,473,5.485,486,1.378,499,2.197,509,0.997,510,1.028,514,2.874,526,3.74,528,1.028,529,1.101,533,3.988,549,1.257,551,1.378,554,1.333,563,2.287,577,1.857,595,1.123,597,2.259,598,1.101,599,3.606,600,1.197,631,0.997,634,0.931,636,1.082,643,1.769,655,0.997,671,2.501,676,1.045,679,1.17,681,2.915,685,1.225,712,1.257,783,1.495,800,1.826,805,1.333,815,1.378,822,3.606,823,2.612,828,1.495,849,2.086,850,1.17,856,1.769,858,1.257,860,1.101,861,1.082,864,3.33,869,1.495,881,2.473,902,0.956,905,1.717,911,1.197,918,1.145,924,1.626,964,2.752,966,1.257,999,1.575,1014,1.89,1016,1.495,1017,1.575,1018,1.682,1019,1.431,1020,4.844,1021,1.682,1022,1.682,1023,1.682,1024,1.082,1027,1.225,1038,1.682,1039,1.682,1040,1.682,1041,1.682,1042,1.682,1044,1.575,1047,1.682,1048,1.575,1148,1.575,1176,2.939,1267,5.363,1454,1.333,1862,1.575,2427,1.845,2428,1.845,2429,1.845,2430,1.845,2431,1.845,2432,1.845,2433,1.495,2434,1.845,2435,1.845,2436,3.224,2437,1.845,2438,1.845,2439,1.845,2440,1.845,2441,1.845,2442,1.845,2443,1.845,2444,1.845,2445,1.845]],["component/37",[179,0.571]],["title/38-1",[189,23.654,300,25.356]],["name/38-1",[]],["text/38-1",[]],["component/38-1",[]],["title/38-2",[304,15.63,320,22.48]],["name/38-2",[]],["text/38-2",[]],["component/38-2",[]],["title/38",[10,17.406,18,10.026,24,6.636,25,11.724,41,19.956,70,12.203,139,28.572]],["name/38",[10,0.683,14,0.697,142,1.414,309,1.087]],["text/38",[1,0.739,5,0.831,9,1.356,10,4.529,14,1.482,18,1.506,20,0.498,22,2.079,24,1.575,25,1.933,29,1.81,36,1.264,37,3.07,41,4.879,45,0.981,51,1.04,53,0.842,57,1.785,60,1.415,61,2.296,63,1.356,69,1.897,70,1.617,71,1.599,72,0.86,73,2.389,79,1.153,82,1.733,89,1.839,94,2.079,95,1.709,100,0.825,102,0.995,103,1.213,109,1.643,112,0.817,118,1.091,127,2.697,132,2.191,133,1.482,134,1.327,135,2.139,138,3.149,139,6.663,140,0.739,143,1.009,154,1.153,156,1.111,176,2.173,184,0.944,192,0.702,194,2.129,198,1.47,203,2.191,205,1.009,209,1.213,210,1.056,220,0.956,227,0.879,234,1.934,237,1.111,249,1.482,257,2.011,295,1.47,301,1.04,304,0.43,306,1.04,312,3.254,320,1.709,321,2.196,322,1.32,323,1.526,326,0.932,332,2.443,338,1.423,340,1.091,351,1.81,356,1.603,359,1.709,364,0.765,366,1.679,374,1.603,376,1.382,387,3.496,388,0.921,390,1.153,391,1.959,395,1.056,401,0.665,402,0.665,403,0.665,404,0.665,405,0.665,406,0.665,407,0.665,408,0.665,409,0.665,414,0.817,429,1.423,438,0.91,453,3.741,454,1.258,469,2.182,499,1.291,510,1.056,511,0.932,512,1.111,522,7.182,532,2.482,541,2.311,551,2.464,553,4.57,560,1.153,561,2.72,563,2.792,565,1.368,568,1.664,577,1.091,597,2.311,598,1.131,615,2.91,617,1.073,627,1.934,631,1.024,634,0.956,644,1.258,646,1.009,664,1.969,727,4.266,769,1.728,774,1.111,788,1.176,834,1.04,850,1.201,856,1.04,918,3.254,927,2.248,953,1.291,986,1.327,1024,1.934,1027,1.258,1045,1.415,1062,2.011,1071,0.889,1083,2.007,1085,2.092,1089,1.368,1092,1.603,1093,1.258,1126,1.535,1224,1.04,1230,5.627,1260,2.841,1332,4.71,1414,3.254,1417,1.327,1514,5.309,1517,1.728,1561,1.368,1572,3.399,1586,3.008,1608,1.415,1613,3.273,1630,1.728,1632,1.47,1636,1.535,1637,1.728,1638,1.415,1639,1.728,1786,1.47,1821,1.073,1978,1.618,1989,1.728,1990,1.728,1992,1.728,2166,1.728,2357,4.71,2446,1.728,2447,5.947,2448,1.895,2449,1.895,2450,1.895,2451,1.895,2452,1.895,2453,3.299,2454,1.895,2455,1.895,2456,1.728,2457,1.895,2458,1.895,2459,1.895,2460,1.728,2461,1.895,2462,1.895,2463,1.618,2464,1.728,2465,1.728,2466,1.895,2467,1.895,2468,1.895,2469,1.895,2470,1.895,2471,1.895,2472,1.895,2473,1.895,2474,3.008,2475,4.779,2476,3.299,2477,7.429,2478,1.895,2479,1.895,2480,1.895,2481,1.895,2482,1.895,2483,1.895,2484,3.299,2485,3.299,2486,3.299,2487,3.299,2488,3.299,2489,3.299,2490,3.299,2491,3.299,2492,3.299,2493,3.299,2494,1.895,2495,1.895,2496,1.895,2497,1.895,2498,1.728,2499,1.895,2500,1.895,2501,3.299,2502,1.895,2503,1.895,2504,1.895,2505,1.895,2506,1.895,2507,1.895,2508,1.895,2509,1.895,2510,1.895,2511,1.895,2512,1.895,2513,1.895,2514,1.895,2515,1.895]],["component/38",[179,0.571]],["title/39",[]],["name/39",[9,0.638,24,0.26,160,0.851,490,1.159]],["text/39",[]],["component/39",[179,0.571]],["title/40",[]],["name/40",[4,0.823,11,1.468,290,0.856]],["text/40",[]],["component/40",[179,0.571]],["title/41-1",[20,12.533,100,20.772,120,18.431,130,29.607,131,21.199]],["name/41-1",[]],["text/41-1",[]],["component/41-1",[]],["title/41-2",[18,10.96,24,7.254,57,14.728,71,15.779,120,16.713,131,19.224]],["name/41-2",[]],["text/41-2",[]],["component/41-2",[]],["title/41-3",[18,10.96,22,17.152,24,7.254,71,15.779,120,16.713,131,19.224]],["name/41-3",[]],["text/41-3",[]],["component/41-3",[]],["title/41-4",[22,21.081,24,8.915,71,19.393,435,37.24]],["name/41-4",[]],["text/41-4",[]],["component/41-4",[]],["title/41-5",[18,10.96,24,7.254,68,15.177,71,15.779,120,16.713,131,19.224]],["name/41-5",[]],["text/41-5",[]],["component/41-5",[]],["title/41-6",[189,23.654,300,25.356]],["name/41-6",[]],["text/41-6",[]],["component/41-6",[]],["title/41-7",[304,15.63,320,22.48]],["name/41-7",[]],["text/41-7",[]],["component/41-7",[]],["title/41",[20,13.968,120,20.541,130,32.997,131,23.627]],["name/41",[24,0.26,618,1.057,1265,1.03,1982,1.203]],["text/41",[4,0.547,5,0.329,7,0.851,8,0.89,9,0.974,18,2.705,19,1.087,20,1.865,22,3.883,24,1.881,25,0.702,27,1.684,34,1.281,36,2.476,38,0.795,46,1.854,51,1.3,52,0.558,53,0.581,54,0.581,57,3.019,61,2.003,67,0.686,68,2.824,69,3.046,70,1.598,71,4.041,72,1.076,73,1.285,74,1.29,89,0.728,100,3.971,103,2.376,112,1.022,120,3.251,127,1.814,130,5.114,131,3.812,140,1.558,152,0.552,160,2.193,170,1.042,176,0.382,182,0.915,183,1.758,192,3.054,194,1.942,208,1.526,209,1.906,210,2.582,224,0.575,237,0.766,249,3.779,253,0.847,263,4.867,273,1.321,275,0.915,278,0.667,290,0.569,292,0.811,304,0.296,306,0.717,308,2.937,315,3.778,321,0.993,322,0.523,323,2.25,347,1.301,351,0.717,355,0.915,366,2.332,374,0.635,375,0.89,376,1.362,379,0.975,380,0.635,383,1.227,386,1.708,387,1.79,391,2.931,393,0.74,401,0.458,402,0.458,403,0.458,404,0.458,405,0.458,406,0.458,407,0.458,408,0.458,409,0.458,414,1.022,415,1.574,429,0.563,435,0.915,439,0.542,457,0.811,488,1.281,511,1.966,532,0.74,545,0.828,577,0.752,586,1.662,600,1.536,618,6.724,619,1.536,634,2.856,646,0.696,670,2.386,690,0.74,694,1.873,698,0.867,719,0.599,774,0.766,780,4.526,783,1.058,801,1.013,812,0.847,814,0.915,827,1.013,856,0.717,877,0.89,902,0.676,905,0.696,913,0.915,918,0.811,925,2.16,949,0.78,967,1.708,973,1.711,1009,2.278,1014,0.766,1024,1.906,1027,0.867,1045,0.975,1062,1.834,1071,1.875,1073,0.915,1092,4.719,1097,0.78,1260,1.536,1283,3.59,1302,1.058,1402,2.023,1413,5.801,1418,2.429,1419,2.429,1420,2.776,1422,1.502,1423,0.828,1570,1.191,1575,0.975,1577,1.115,1583,0.847,1602,1.191,1611,2.16,1612,1.979,1712,0.943,1726,0.811,1764,1.115,1799,0.89,1802,1.711,1821,0.74,1904,1.058,1949,1.191,1982,2.523,2035,2.349,2133,1.013,2134,1.191,2138,1.191,2180,1.191,2182,2.429,2207,0.943,2321,1.191,2328,1.013,2334,1.191,2516,2.369,2517,3.412,2518,1.115,2519,1.306,2520,2.023,2521,1.013,2522,1.306,2523,1.306,2524,1.838,2525,2.369,2526,1.306,2527,1.115,2528,1.306,2529,0.943,2530,1.306,2531,1.191,2532,1.306,2533,3.252,2534,1.306,2535,1.306,2536,1.306,2537,1.306,2538,1.306,2539,1.306,2540,2.369,2541,3.996,2542,1.191,2543,1.058,2544,4.761,2545,2.843,2546,1.306,2547,1.306,2548,1.306,2549,1.306,2550,1.306,2551,1.306,2552,1.115,2553,1.306,2554,2.369,2555,1.306,2556,1.306,2557,1.306,2558,1.013,2559,1.306]],["component/41",[179,0.571]],["title/42-1",[1265,53.776]],["name/42-1",[]],["text/42-1",[]],["component/42-1",[]],["title/42-2",[10,20.983,18,12.086,24,7.999,25,14.133,1361,36.996]],["name/42-2",[]],["text/42-2",[]],["component/42-2",[]],["title/42-3",[9,21.854,10,23.386,176,15.547,297,45.378]],["name/42-3",[]],["text/42-3",[]],["component/42-3",[]],["title/42-4",[189,23.654,300,25.356]],["name/42-4",[]],["text/42-4",[]],["component/42-4",[]],["title/42-5",[304,15.63,320,22.48]],["name/42-5",[]],["text/42-5",[]],["component/42-5",[]],["title/42",[18,10.96,29,23.731,132,28.724,133,19.426,134,30.3,135,28.045]],["name/42",[29,0.851,132,1.03,133,0.697,135,1.006]],["text/42",[1,1.885,5,1.536,7,3.598,9,2.77,10,4.623,14,1.34,18,2.13,22,0.467,24,1.67,25,2.613,28,1.558,29,2.361,31,1.006,33,1.088,34,3.477,35,0.566,36,2.337,41,1.862,45,1.546,51,1.637,53,2.15,54,2.15,55,0.732,56,0.955,57,1.95,59,1.036,61,1.663,63,1.227,64,0.764,65,1.163,68,0.414,69,2.439,70,1.327,72,0.98,73,1.96,74,0.467,77,0.895,80,0.647,83,2.54,84,1.755,85,0.485,87,0.559,92,0.668,98,0.803,112,0.508,116,0.704,120,2.357,130,1.34,132,4.05,133,1.658,134,6.484,135,2.79,138,1.658,139,3.107,140,1.677,141,0.955,152,0.498,162,0.668,165,2.126,166,1.166,176,2.761,183,1.893,188,0.472,189,0.74,191,1.468,192,0.8,194,3.274,208,1.732,209,1.779,227,0.547,260,0.99,267,1.781,271,5.805,274,1.288,304,0.267,316,0.88,321,2.026,322,1.194,323,2.124,329,1.243,332,2.182,338,1.855,351,1.637,356,2.091,359,1.546,361,0.851,364,1.205,366,2.034,373,2.126,374,1.048,380,0.573,382,0.764,383,0.61,386,2.54,387,4.076,388,1.45,390,1.313,391,0.441,401,0.414,402,0.414,403,0.414,404,0.414,405,0.414,406,0.414,407,0.414,408,0.414,409,0.414,429,0.93,438,0.566,439,1.238,440,0.691,444,1.512,445,0.803,469,0.587,472,3.107,473,0.657,474,3.574,482,1.399,488,1.995,493,0.637,498,1.935,499,2.033,514,1.468,532,2.437,533,1.853,541,3.388,546,1.982,549,2.033,551,2.229,554,0.851,560,2.246,561,1.853,563,0.628,568,1.505,586,0.602,593,2.34,597,0.826,598,0.704,599,0.826,615,2.451,617,1.69,631,1.613,643,1.637,646,1.589,650,1.433,653,1.558,655,2.325,664,1.288,676,1.69,681,0.668,690,0.668,705,0.717,748,0.803,774,3.574,784,1.512,793,2.586,796,1.006,800,4.245,829,0.955,837,0.955,847,0.955,849,0.573,856,1.184,864,1.674,882,1.006,924,2.44,953,0.803,966,2.033,967,1.133,1027,0.783,1031,0.88,1044,1.006,1060,1.512,1062,0.541,1064,1.075,1068,0.914,1071,0.553,1083,1.313,1085,1.368,1089,1.558,1092,0.573,1093,0.783,1138,1.006,1224,2.025,1300,0.914,1350,1.006,1360,0.783,1361,2.863,1407,0.851,1414,0.732,1417,0.826,1440,1.967,1469,2.515,1561,2.155,1575,1.612,1632,0.914,1714,0.914,1774,0.914,1786,0.914,1890,1.967,1898,3.673,1931,0.747,1977,1.967,1978,1.006,1979,2.721,1980,1.075,1981,3.923,1982,2.863,1983,1.075,1984,1.075,1985,1.075,1994,3.365,1997,1.967,1998,1.967,2001,3.923,2221,1.075,2463,1.006,2464,1.967,2465,1.075,2560,1.006,2561,1.075,2562,1.179,2563,1.179,2564,1.075,2565,1.967,2566,1.179,2567,2.984,2568,5.866,2569,1.179,2570,1.179,2571,1.179,2572,1.179,2573,2.158,2574,1.179,2575,1.179,2576,2.158,2577,1.179,2578,4.41,2579,2.158,2580,2.158,2581,2.991,2582,2.158,2583,2.158,2584,5.724,2585,5.724,2586,2.158,2587,2.158,2588,2.158,2589,2.158,2590,2.158,2591,2.158,2592,2.984,2593,2.984,2594,4.836,2595,2.984,2596,2.984,2597,1.179,2598,1.967,2599,1.967,2600,1.179,2601,1.075,2602,1.006,2603,1.179,2604,3.691,2605,2.984,2606,1.179,2607,2.158,2608,1.179,2609,1.179,2610,1.179]],["component/42",[179,0.571]],["title/43-1",[5,12.014,10,20.983,112,20.566,132,31.675,191,23.458]],["name/43-1",[]],["text/43-1",[]],["component/43-1",[]],["title/43-2",[1,20.718,135,34.468,474,31.157,2611,48.464]],["name/43-2",[]],["text/43-2",[]],["component/43-2",[]],["title/43-3",[1,18.589,10,20.983,74,18.915,135,30.926,474,27.955]],["name/43-3",[]],["text/43-3",[]],["component/43-3",[]],["title/43-4",[189,23.654,300,25.356]],["name/43-4",[]],["text/43-4",[]],["component/43-4",[]],["title/43-5",[304,15.63,320,22.48]],["name/43-5",[]],["text/43-5",[]],["component/43-5",[]],["title/43",[5,12.014,18,12.086,112,20.566,132,31.675,135,30.926]],["name/43",[5,0.391,112,0.669,132,1.03,135,1.006]],["text/43",[0,0.956,1,3.62,4,1.129,5,1.914,6,1.821,10,4.549,14,0.677,18,2.32,19,1.237,20,0.396,24,1.459,25,1.829,36,2.365,41,1.845,45,1.894,46,1.251,49,1.92,51,3.119,53,1.978,54,0.67,57,2.9,61,1.413,63,1.108,65,1.051,69,2.524,70,0.832,71,2.407,72,2.02,73,1.431,74,1.45,76,2.725,84,0.498,85,1.108,94,2.254,95,0.781,100,0.656,104,1.92,112,2.206,122,1.126,123,1.126,132,3.398,135,6.705,139,1.947,140,1.425,141,1.221,147,0.9,169,0.684,176,2.433,182,1.056,183,2.903,189,1.255,191,1.799,194,0.732,209,1.345,224,0.663,227,1.697,301,0.827,304,0.342,321,2.143,322,2.047,323,2.298,326,0.741,330,1.821,332,2.713,338,2.451,347,1.079,352,1.287,356,2.762,359,1.396,364,1.476,366,2.365,380,1.31,383,1.396,386,2.985,387,4.374,395,0.84,400,1.088,401,0.529,402,0.529,403,0.529,404,0.529,405,0.529,406,0.529,407,0.529,408,0.529,409,0.529,415,1.79,422,0.84,438,0.724,439,0.625,454,1.001,457,0.936,463,0.84,469,2.548,471,0.956,474,5.702,488,1.977,498,2.886,510,2.852,541,4.324,542,0.9,547,1.169,549,2.492,551,4.245,554,2.641,559,3.122,563,0.803,593,1.709,597,1.889,598,0.9,615,4.382,639,0.977,644,2.429,655,0.815,664,1.609,705,1.64,727,5.918,743,2.225,748,1.027,755,1.221,756,3.334,849,1.777,850,0.956,902,0.781,903,1.169,914,1.58,966,1.027,1016,1.221,1031,3.324,1045,1.126,1062,2.608,1071,2.401,1083,1.64,1224,2.442,1561,4.105,1589,1.287,1712,1.088,1732,1.001,2020,1.088,2191,1.221,2433,2.184,2456,2.458,2460,2.458,2463,2.301,2524,1.169,2564,1.374,2565,1.374,2568,8.219,2578,6.357,2599,2.458,2611,6.357,2612,1.507,2613,1.507,2614,2.695,2615,1.507,2616,1.507,2617,1.507,2618,4.45,2619,1.374,2620,1.507,2621,4.45,2622,2.695,2623,1.507,2624,1.507,2625,3.657,2626,3.657,2627,3.657,2628,1.507,2629,1.507,2630,1.507,2631,4.45,2632,2.695,2633,2.695,2634,2.695,2635,2.695,2636,1.507,2637,2.695,2638,1.507,2639,1.507,2640,2.695,2641,2.695,2642,2.695,2643,2.695,2644,1.507,2645,2.695,2646,1.507,2647,2.695,2648,1.507,2649,3.657,2650,1.507,2651,3.657,2652,2.695,2653,1.507,2654,1.507,2655,2.695,2656,2.695,2657,2.695,2658,1.507,2659,2.695,2660,2.695,2661,1.507,2662,1.507]],["component/43",[179,0.571]],["title/44",[]],["name/44",[4,1.763]],["text/44",[]],["component/44",[179,0.571]],["title/45-1",[175,42.056,177,39.867,1265,39.867]],["name/45-1",[]],["text/45-1",[]],["component/45-1",[]],["title/45-2",[24,8.915,175,37.24,176,15.547,177,35.302]],["name/45-2",[]],["text/45-2",[]],["component/45-2",[]],["title/45-3",[10,19.028,24,7.254,61,16.713,175,30.3,176,12.65,177,28.724]],["name/45-3",[]],["text/45-3",[]],["component/45-3",[]],["title/45-4",[189,23.654,300,25.356]],["name/45-4",[]],["text/45-4",[]],["component/45-4",[]],["title/45-5",[304,15.63,320,22.48]],["name/45-5",[]],["text/45-5",[]],["component/45-5",[]],["title/45",[6,26.472,20,13.968,175,37.24,176,15.547]],["name/45",[6,0.773,63,0.638,175,1.087,177,1.03]],["text/45",[1,0.43,2,0.699,5,0.882,6,1.011,7,0.396,9,3.488,10,0.893,12,0.625,16,1.193,18,1.842,19,0.506,20,1.077,24,1.643,25,1.506,28,0.797,36,0.423,41,0.556,46,0.512,49,1.84,51,1.922,55,0.685,57,0.961,58,0.495,60,4.859,61,0.426,63,0.835,67,1.066,69,2.245,70,1.264,73,1.634,74,0.805,76,1.081,77,3.187,78,0.588,82,4.455,83,1.481,87,0.523,89,1.132,91,1.414,94,2.46,96,1.77,109,0.549,112,0.476,114,0.733,116,1.212,122,0.824,123,0.824,138,2.075,140,0.43,148,0.518,155,1.212,162,0.625,163,0.685,165,0.635,166,0.596,167,0.671,175,6.487,176,2.804,177,4.97,183,0.485,192,1.299,194,3.982,201,6.184,203,2.326,208,0.953,209,0.747,234,0.647,237,1.19,252,0.942,253,2.271,260,0.932,267,0.658,271,5.98,276,1.006,303,0.671,304,0.25,306,1.548,317,6.557,322,0.812,323,1.77,329,1.17,330,2.737,332,0.453,335,0.894,338,0.476,339,0.733,355,0.773,356,0.536,364,1.139,366,0.778,367,0.856,378,0.647,385,2.535,386,1.066,387,3.918,391,0.759,395,0.615,397,0.556,398,2.454,401,0.387,402,0.387,403,0.387,404,0.387,405,0.387,406,0.387,407,0.387,408,0.387,409,0.387,414,0.476,417,0.699,439,0.458,454,3.068,467,1.572,469,2.531,473,1.572,509,0.596,514,0.543,522,4.119,524,0.752,526,3.732,528,0.615,533,1.751,536,3.736,539,0.942,540,0.942,541,1.422,549,0.752,553,4.558,554,2.037,556,0.942,562,0.824,563,1.081,565,1.466,568,1.024,571,2.107,577,0.635,586,2.361,614,0.752,617,0.625,630,0.894,631,1.097,644,1.348,670,0.658,673,0.942,679,0.699,681,0.625,685,1.874,687,0.824,688,3.744,690,1.984,719,0.932,725,0.824,774,1.654,782,1.733,798,1.422,800,0.625,806,0.715,834,0.605,841,5.931,847,2.839,849,1.371,856,1.548,859,1.922,860,1.212,861,0.647,872,0.856,911,1.317,914,1.654,924,2.772,949,1.212,957,0.942,967,1.066,968,3.194,986,3.237,1011,1.348,1013,0.658,1014,1.654,1024,0.647,1045,0.824,1095,1.235,1097,1.212,1116,0.699,1125,0.773,1230,4.698,1349,0.733,1360,0.733,1391,1.851,1421,3.744,1442,0.942,1486,0.942,1489,0.824,1514,4.433,1522,1.006,1726,4.768,1848,0.856,1857,3.194,1858,2.572,1867,1.006,1869,1.006,1898,4.339,1936,1.006,2204,1.006,2265,5.011,2663,6.201,2664,2.03,2665,2.03,2666,1.103,2667,1.103,2668,4.619,2669,1.103,2670,1.103,2671,8.344,2672,1.103,2673,2.572,2674,1.103,2675,1.103,2676,1.103,2677,0.797,2678,1.103,2679,1.103,2680,1.103,2681,1.103,2682,1.103,2683,1.103,2684,1.103,2685,1.103,2686,1.103,2687,1.103,2688,1.103,2689,2.821,2690,1.103,2691,2.03,2692,2.03,2693,1.103,2694,2.821,2695,1.103,2696,1.103,2697,1.103,2698,1.103,2699,1.103,2700,1.103,2701,1.103,2702,1.103,2703,1.103,2704,2.03,2705,2.03,2706,2.03,2707,2.03,2708,6.505,2709,7.482,2710,7.482,2711,7.482,2712,7.482,2713,1.103,2714,1.103,2715,1.103,2716,1.103,2717,1.103,2718,2.03,2719,2.03,2720,5.495,2721,1.103,2722,1.103,2723,1.103,2724,1.103,2725,1.103,2726,2.03,2727,1.103,2728,1.103,2729,1.103,2730,1.103,2731,1.103,2732,1.103,2733,1.103,2734,1.103,2735,1.103,2736,1.103,2737,1.103,2738,3.503,2739,2.03,2740,1.103,2741,1.103,2742,2.821,2743,1.103,2744,2.821,2745,1.103,2746,2.03,2747,1.103,2748,2.03,2749,2.03,2750,2.821,2751,0.942,2752,1.103,2753,1.103,2754,1.103,2755,1.103,2756,1.103,2757,1.103,2758,2.03,2759,2.03,2760,2.03,2761,2.03,2762,2.03,2763,2.03,2764,2.03,2765,2.03,2766,2.03,2767,2.03,2768,1.103,2769,1.103,2770,1.103,2771,1.103,2772,1.103,2773,2.03,2774,1.103,2775,1.103,2776,1.103,2777,1.103,2778,1.103,2779,1.103,2780,1.103,2781,1.103,2782,1.103,2783,1.103,2784,1.103,2785,1.103,2786,1.103]],["component/45",[179,0.571]],["title/46-1",[24,11.564,2787,62.86]],["name/46-1",[]],["text/46-1",[]],["component/46-1",[]],["title/46-2",[24,11.564,2788,62.86]],["name/46-2",[]],["text/46-2",[]],["component/46-2",[]],["title/46-3",[24,11.564,2789,62.86]],["name/46-3",[]],["text/46-3",[]],["component/46-3",[]],["title/46-4",[9,28.345,24,11.564]],["name/46-4",[]],["text/46-4",[]],["component/46-4",[]],["title/46-5",[20,13.968,128,24.392,188,21.268,205,28.312]],["name/46-5",[]],["text/46-5",[]],["component/46-5",[]],["title/46-6",[5,12.014,24,7.999,70,14.711,71,17.401,906,30.926]],["name/46-6",[]],["text/46-6",[]],["component/46-6",[]],["title/46-7",[5,12.014,24,7.999,70,14.711,71,17.401,171,30.926]],["name/46-7",[]],["text/46-7",[]],["component/46-7",[]],["title/46-8",[28,58.477]],["name/46-8",[]],["text/46-8",[]],["component/46-8",[]],["title/46-9",[61,26.643,176,20.165]],["name/46-9",[]],["text/46-9",[]],["component/46-9",[]],["title/46-10",[189,23.654,300,25.356]],["name/46-10",[]],["text/46-10",[]],["component/46-10",[]],["title/46-11",[304,15.63,320,22.48]],["name/46-11",[]],["text/46-11",[]],["component/46-11",[]],["title/46",[20,15.775,97,31.523,178,40.904]],["name/46",[97,1.032,176,0.575,178,1.339]],["text/46",[5,2.316,7,3.559,9,3.878,13,1.535,14,0.656,15,4.374,16,2.797,17,2.638,18,1.643,19,1.635,20,1.142,22,0.579,24,1.76,28,1.892,35,1.258,36,1.665,41,0.736,43,1.698,49,0.766,52,0.623,53,0.649,59,0.701,65,2.171,68,2.126,69,1.812,70,1.341,71,1.826,72,0.663,77,3.701,78,2.315,84,2.564,85,1.077,88,0.856,91,2.445,94,1.724,97,4.954,120,1.377,127,2.528,128,1.635,143,1.395,145,2.756,147,0.871,148,0.685,152,1.838,164,2.764,167,0.888,168,2.31,169,0.663,170,1.152,171,1.698,172,0.856,176,1.629,178,3.795,188,2.003,192,1.611,205,1.898,210,1.986,224,1.912,239,1.132,244,3.507,257,1.202,267,0.871,271,0.925,273,2.79,274,0.871,290,0.636,300,0.537,301,0.801,304,0.331,323,2.388,329,2.052,330,1.304,332,0.6,338,0.629,339,0.969,346,1.132,347,1.048,353,0.693,356,0.709,357,2.31,359,0.756,364,1.754,366,1.665,374,2.112,376,0.611,378,2.934,379,1.09,381,0.801,387,4.507,391,2.264,392,1.09,401,0.512,402,0.512,403,0.512,404,0.512,405,0.512,406,0.512,407,0.512,408,0.512,409,0.512,414,0.629,417,0.925,435,1.023,436,1.132,439,1.087,444,1.023,471,0.925,472,1.054,473,2.422,480,1.132,488,2.349,509,1.926,516,2.032,526,3.332,528,1.986,529,2.127,532,0.827,570,1.892,578,1.956,579,1.183,593,0.925,599,1.023,617,1.484,634,0.736,639,1.698,655,0.789,690,0.827,709,1.331,712,1.785,719,0.67,725,1.09,780,1.023,786,0.766,788,2.212,798,1.023,800,2.018,802,1.183,805,3.615,815,2.661,821,2.496,824,1.132,828,5.826,832,1.183,857,4.564,860,4.628,861,2.547,863,3.249,866,3.249,867,1.331,868,2.388,869,2.887,870,3.249,871,1.331,872,1.132,873,1.183,874,1.331,875,1.331,876,3.249,880,1.331,883,2.032,884,1.331,885,2.388,886,1.331,887,2.388,888,1.331,889,1.331,892,3.962,893,2.123,894,2.123,895,2.388,896,1.331,897,2.388,898,3.962,899,1.331,900,1.331,902,1.357,903,2.032,904,1.183,905,0.777,906,2.818,907,1.183,908,2.887,924,2.192,927,0.995,963,0.856,967,1.871,978,1.132,996,1.132,1013,2.127,1024,2.088,1092,1.731,1116,1.661,1136,1.331,1193,1.023,1271,3.71,1300,1.132,1390,1.09,1408,1.132,1472,2.236,1519,1.331,1571,5.121,1572,4.32,1599,2.764,1638,1.09,1726,2.212,1862,1.246,1863,1.661,1902,1.246,1969,1.246,2004,2.764,2006,2.887,2098,1.331,2210,2.496,2211,3.042,2343,1.246,2352,2.388,2561,1.331,2787,3.249,2788,3.249,2789,2.388,2790,1.459,2791,1.459,2792,1.459,2793,1.459,2794,1.459,2795,2.619,2796,1.331,2797,1.459,2798,1.459,2799,1.246,2800,1.459,2801,1.459,2802,1.459,2803,1.459]],["component/46",[179,0.571]],["title/47-1",[22,23.807,84,19.854,967,31.523]],["name/47-1",[]],["text/47-1",[]],["component/47-1",[]],["title/47-2",[18,10.96,24,7.254,63,17.781,193,31.234,263,20.525,1349,28.724]],["name/47-2",[]],["text/47-2",[]],["component/47-2",[]],["title/47-3",[22,21.081,58,23.875,63,21.854,2804,48.464]],["name/47-3",[]],["text/47-3",[]],["component/47-3",[]],["title/47-4",[54,26.683,148,28.165,189,20.595]],["name/47-4",[]],["text/47-4",[]],["component/47-4",[]],["title/47-5",[22,27.343,152,29.157]],["name/47-5",[]],["text/47-5",[]],["component/47-5",[]],["title/47-6",[22,21.081,57,18.101,513,31.157,701,43.073]],["name/47-6",[]],["text/47-6",[]],["component/47-6",[]],["title/47-7",[57,16.242,121,26.581,192,17.682,319,31.675,2545,26.169]],["name/47-7",[]],["text/47-7",[]],["component/47-7",[]],["title/47-8",[20,8.882,22,13.405,24,5.669,84,11.18,188,13.524,319,22.449,1234,28.856,1360,22.449,2545,18.547]],["name/47-8",[]],["text/47-8",[]],["component/47-8",[]],["title/47-9",[22,27.343,313,33.91]],["name/47-9",[]],["text/47-9",[]],["component/47-9",[]],["title/47-10",[63,21.854,148,24.94,193,38.388,263,25.226]],["name/47-10",[]],["text/47-10",[]],["component/47-10",[]],["title/47-11",[22,23.807,24,10.068,68,21.065]],["name/47-11",[]],["text/47-11",[]],["component/47-11",[]],["title/47-12",[24,10.068,61,23.198,646,31.973]],["name/47-12",[]],["text/47-12",[]],["component/47-12",[]],["title/47-13",[189,23.654,300,25.356]],["name/47-13",[]],["text/47-13",[]],["component/47-13",[]],["title/47-14",[304,15.63,320,22.48]],["name/47-14",[]],["text/47-14",[]],["component/47-14",[]],["title/47",[22,21.081,24,8.915,68,18.653,188,21.268]],["name/47",[22,0.779,24,0.33,68,0.69]],["text/47",[1,0.797,5,0.515,8,0.758,9,0.457,10,0.9,16,0.967,18,1.79,19,0.51,20,2.271,21,1.513,22,3.521,24,1.774,25,0.33,27,1.471,35,1.364,43,0.721,48,0.705,49,1.074,52,0.475,54,1.567,55,2.884,57,2.746,58,3.173,59,0.982,61,2.408,63,1.168,65,1.374,68,1.447,69,1.492,72,0.505,74,0.441,76,0.592,77,0.462,83,0.584,84,1.69,91,1.423,94,0.441,95,1.471,96,0.426,99,0.568,100,2.024,111,3.051,121,2.298,127,0.505,133,0.919,137,0.664,138,0.919,148,2.398,152,2.336,154,0.677,156,2.416,160,0.61,163,0.69,166,0.601,169,0.505,176,1.992,181,0.949,182,0.779,183,1.814,184,0.554,188,3.844,189,2.577,192,1.307,193,4.919,194,1.713,198,0.863,205,0.592,208,0.522,209,1.297,219,1.327,224,1.814,230,1.887,231,1.123,237,2.724,247,0.758,249,0.919,257,0.51,261,1.587,263,3.463,267,0.664,271,0.705,273,1.965,282,1.528,288,1.394,290,2.024,303,1.245,304,0.644,305,2.286,307,1.478,309,2.47,310,0.601,313,3.064,314,2.774,315,2.559,319,3.394,321,0.857,322,0.819,323,0.713,326,1.397,330,0.554,332,0.841,338,0.882,341,0.863,345,1.433,347,0.819,351,1.559,353,1.348,357,0.721,364,1.876,365,0.863,366,1.089,374,0.54,375,5.118,376,1.19,378,0.652,380,1.713,382,1.842,383,1.06,387,3.551,391,2.95,393,0.63,395,0.62,401,0.718,402,0.39,403,0.997,404,0.39,405,0.39,406,0.39,407,0.39,408,0.39,409,0.39,429,0.882,438,0.982,439,1.711,469,1.019,474,0.652,486,0.831,493,0.601,502,1.587,509,0.601,511,1.006,512,1.665,513,3.83,514,0.547,526,0.54,528,0.62,529,0.664,531,1.528,545,0.705,549,0.758,557,0.803,560,1.245,562,0.831,563,0.592,568,1.032,585,0.601,593,1.297,601,0.949,617,0.63,627,4.626,631,0.601,633,2.425,643,1.123,646,1.878,650,0.739,668,2.724,683,0.641,694,1.178,701,0.901,705,0.677,711,1.014,727,0.677,743,2.145,783,0.901,786,1.852,800,0.63,819,0.721,834,0.61,837,0.901,850,0.705,860,2.105,879,0.863,881,1.178,883,0.863,911,0.721,913,0.779,915,1.433,916,0.901,918,0.69,919,0.949,920,0.901,922,2.425,923,1.747,925,1.359,927,1.394,949,0.664,959,0.721,967,2.44,990,0.803,1020,0.779,1062,0.51,1071,0.522,1092,0.994,1095,1.245,1097,1.221,1098,0.69,1125,0.779,1246,2.827,1248,2.676,1249,2.827,1253,0.831,1278,1.865,1280,0.949,1283,3.503,1315,0.779,1333,2.546,1346,0.831,1347,0.779,1349,0.739,1353,0.69,1360,1.887,1368,2.546,1422,0.705,1423,4.143,1424,1.887,1469,0.758,1482,0.831,1506,1.014,1581,0.721,1636,0.901,1701,0.803,1726,1.764,1732,0.739,1741,0.863,1769,0.949,1772,2.302,1876,1.865,1882,1.014,1931,0.705,1934,0.863,1968,1.014,2020,4.5,2022,0.949,2061,0.863,2171,1.014,2217,0.901,2279,3.47,2356,0.831,2357,0.803,2410,1.014,2446,1.014,2527,0.949,2543,0.901,2544,1.99,2545,4.121,2558,0.863,2751,0.949,2804,3.759,2805,1.112,2806,0.863,2807,2.857,2808,0.949,2809,2.046,2810,2.046,2811,1.865,2812,1.014,2813,1.014,2814,1.014,2815,1.014,2816,1.014,2817,6.493,2818,3.215,2819,1.014,2820,1.112,2821,1.112,2822,0.949,2823,1.865,2824,1.865,2825,1.112,2826,1.112,2827,1.112,2828,0.949,2829,1.112,2830,1.112,2831,1.112,2832,1.112,2833,1.112,2834,1.112,2835,1.112,2836,1.112,2837,1.112,2838,1.112,2839,1.112,2840,1.112,2841,1.112,2842,1.112,2843,1.014,2844,1.112,2845,3.526,2846,3.526,2847,3.526,2848,3.526,2849,1.112,2850,1.112,2851,1.112,2852,1.112,2853,1.112,2854,1.112,2855,1.112,2856,1.112,2857,1.112,2858,1.112,2859,1.112,2860,1.112,2861,1.112,2862,1.112,2863,1.112,2864,3.341,2865,1.865,2866,3.01,2867,1.865,2868,1.865,2869,1.865,2870,1.014,2871,0.779,2872,1.014,2873,1.112,2874,3.01,2875,1.112,2876,1.112,2877,2.59,2878,1.112,2879,1.112,2880,1.112,2881,1.112,2882,1.112,2883,2.046,2884,2.046,2885,1.112,2886,0.949,2887,2.046,2888,1.112,2889,1.112,2890,1.112,2891,1.112,2892,1.112,2893,1.658,2894,1.112,2895,1.112,2896,1.112,2897,1.112,2898,1.112,2899,0.949,2900,0.949,2901,0.949,2902,1.865,2903,1.865,2904,2.59,2905,1.014,2906,1.014,2907,2.046,2908,1.112,2909,1.865,2910,2.046,2911,0.901,2912,1.112,2913,1.112,2914,1.112,2915,1.112,2916,1.112,2917,1.112,2918,1.112,2919,1.112,2920,1.112,2921,1.112,2922,1.112,2923,1.112,2924,1.112,2925,1.112]],["component/47",[179,0.571]],["title/48-1",[24,10.068,84,19.854,111,35.833]],["name/48-1",[]],["text/48-1",[]],["component/48-1",[]],["title/48-2",[85,28.345,2806,53.481]],["name/48-2",[]],["text/48-2",[]],["component/48-2",[]],["title/48-3",[189,23.654,300,25.356]],["name/48-3",[]],["text/48-3",[]],["component/48-3",[]],["title/48-4",[304,15.63,320,22.48]],["name/48-4",[]],["text/48-4",[]],["component/48-4",[]],["title/48",[5,15.121,24,10.068,84,19.854]],["name/48",[24,0.449,84,0.886]],["text/48",[5,1.923,9,1.741,16,1.442,18,1.934,20,2.389,22,1.679,24,1.808,25,1.884,51,2.323,57,1.442,63,1.741,64,2.745,68,2.231,70,2.354,84,3.37,85,4.49,94,1.679,99,2.164,111,4.556,128,1.943,140,1.65,148,3.581,152,1.791,160,2.323,176,2.232,188,3.963,205,2.255,209,1.557,224,1.863,249,1.902,277,2.812,278,3.249,286,3.284,288,2.885,290,1.844,303,2.576,304,1.441,305,2.745,307,3.058,310,3.436,321,2.663,322,2.544,323,1.475,328,3.543,332,1.741,340,2.439,348,2.36,376,3.197,387,2.457,391,3.171,401,1.486,402,1.486,403,1.486,404,1.486,405,1.486,406,1.486,407,1.486,408,1.486,409,1.486,414,2.741,415,2.812,429,1.826,456,4.644,507,2.885,513,2.482,627,4.973,636,2.482,668,2.482,676,3.601,727,2.576,743,2.576,787,2.482,806,2.745,859,2.885,963,2.482,996,3.284,1009,2.966,1120,3.284,1246,2.576,1248,2.439,1253,3.162,1309,3.058,1353,2.628,1423,4.031,1583,2.745,1732,2.812,1737,3.614,2279,7.132,2328,3.284,2806,4.931,2926,7.735,2927,3.86,2928,4.233,2929,4.233,2930,4.233,2931,4.233,2932,4.233,2933,4.233,2934,4.233]],["component/48",[179,0.571]],["title/49-1",[161,51.246,205,31.973,290,26.144]],["name/49-1",[]],["text/49-1",[]],["component/49-1",[]],["title/49-2",[24,10.068,68,21.065,183,26.41]],["name/49-2",[]],["text/49-2",[]],["component/49-2",[]],["title/49-3",[24,10.068,61,23.198,646,31.973]],["name/49-3",[]],["text/49-3",[]],["component/49-3",[]],["title/49-4",[24,11.564,819,44.707]],["name/49-4",[]],["text/49-4",[]],["component/49-4",[]],["title/49-5",[24,10.068,189,20.595,299,36.524]],["name/49-5",[]],["text/49-5",[]],["component/49-5",[]],["title/49-6",[18,12.086,24,7.999,63,19.608,263,22.634,1349,31.675]],["name/49-6",[]],["text/49-6",[]],["component/49-6",[]],["title/49-7",[11,51.494,24,11.564]],["name/49-7",[]],["text/49-7",[]],["component/49-7",[]],["title/49-8",[11,51.494,309,48.303]],["name/49-8",[]],["text/49-8",[]],["component/49-8",[]],["title/49-9",[203,39.867,378,35.186,417,38.061]],["name/49-9",[]],["text/49-9",[]],["component/49-9",[]],["title/49-10",[52,29.44,184,34.335]],["name/49-10",[]],["text/49-10",[]],["component/49-10",[]],["title/49-11",[24,10.068,84,19.854,976,44.834]],["name/49-11",[]],["text/49-11",[]],["component/49-11",[]],["title/49-12",[24,10.068,91,24.234,976,44.834]],["name/49-12",[]],["text/49-12",[]],["component/49-12",[]],["title/49-13",[189,23.654,300,25.356]],["name/49-13",[]],["text/49-13",[]],["component/49-13",[]],["title/49-14",[304,15.63,320,22.48]],["name/49-14",[]],["text/49-14",[]],["component/49-14",[]],["title/49",[24,10.068,188,24.018,290,26.144]],["name/49",[24,0.449,290,1.167]],["text/49",[1,1.809,3,0.893,5,1.308,8,0.893,9,1.908,10,1.045,11,0.978,16,0.809,18,2.249,19,0.601,20,2.213,21,0.698,22,1.841,24,1.854,25,0.388,27,1.688,32,2.437,35,0.629,36,1.249,38,1.983,41,0.661,43,1.541,47,1.016,48,0.831,49,0.688,54,0.582,57,1.932,58,2.738,59,0.629,61,2.63,63,0.539,65,0.511,68,2.828,69,2.053,70,0.404,72,0.595,73,1.048,74,0.519,75,0.831,76,0.698,77,0.986,79,0.797,82,1.712,84,1.535,85,1.647,87,0.622,89,0.73,91,2.979,92,1.846,95,2.074,96,0.502,99,2.047,100,0.571,102,0.688,111,2.771,128,2.13,129,2.586,133,0.588,138,1.067,148,2.86,152,2.399,154,0.797,156,1.911,167,0.797,176,1.991,177,0.87,181,1.118,182,1.664,183,2.284,184,2.312,188,3.819,189,1.781,192,0.486,203,0.87,205,2.766,208,1.115,209,2.242,219,1.541,224,1.762,231,2.547,237,2.721,238,1.118,247,2.221,257,1.496,260,0.601,262,1.061,263,3.23,267,1.418,271,1.506,272,1.194,273,0.73,278,1.214,282,1.774,286,1.016,288,1.619,290,3.322,291,1.774,294,3.767,297,1.118,299,1.445,300,0.874,301,3.113,303,1.445,304,1.177,305,1.541,306,0.719,307,1.716,308,2.067,313,0.644,314,1.418,321,0.549,322,0.951,323,1.395,326,0.644,332,1.34,338,1.024,340,0.754,348,0.73,353,1.127,357,0.849,364,1.874,365,1.016,366,2.48,375,4.154,376,1.678,378,1.911,379,0.978,380,1.154,382,1.541,383,0.678,385,0.719,387,3.48,388,0.636,391,2.851,395,2.587,401,0.834,402,0.46,403,1.406,404,0.46,405,0.46,406,0.46,407,0.834,408,0.46,409,0.46,426,0.918,438,1.565,439,1.353,445,1.619,454,0.87,457,0.813,472,0.946,486,0.978,493,0.708,509,0.708,511,0.644,513,1.393,526,0.636,528,0.73,529,0.782,531,2.435,542,0.782,545,0.831,563,0.698,565,0.946,568,0.661,571,0.978,577,2.307,582,1.016,585,0.708,601,1.118,617,0.742,619,0.849,621,2.165,627,4.723,631,1.284,643,0.719,645,1.118,646,2.472,668,0.768,669,1.194,670,1.946,673,1.118,681,1.346,683,0.754,690,2.269,694,0.754,719,1.838,720,1.194,743,2.437,773,3.467,775,0.893,786,2.438,788,0.813,800,0.742,819,1.541,834,1.789,849,0.636,858,0.893,860,2.391,879,1.016,881,3.727,883,1.016,902,1.23,905,0.698,913,0.918,915,0.918,916,1.061,918,1.475,919,1.118,920,1.061,922,2.783,923,2.028,924,0.661,925,0.87,965,1.061,976,1.774,990,0.946,1024,0.768,1071,0.615,1092,2.256,1095,0.797,1116,1.506,1125,0.918,1140,1.118,1223,0.946,1246,0.797,1248,0.754,1249,1.445,1266,1.061,1281,0.978,1317,0.978,1349,0.87,1353,1.475,1358,1.194,1360,0.87,1366,2.028,1367,1.194,1368,1.716,1407,0.946,1423,4.679,1424,3.083,1460,1.118,1469,1.619,1486,1.118,1494,1.061,1561,0.946,1589,2.783,1721,1.118,1732,2.165,1748,1.118,1769,1.118,1863,0.831,1889,1.118,1932,1.061,1966,1.194,2133,1.843,2237,1.194,2279,3.467,2447,2.166,2475,1.194,2527,1.118,2543,1.061,2601,1.194,2806,1.016,2807,2.642,2811,1.194,2813,1.194,2814,1.194,2815,1.194,2816,1.194,2817,3.601,2818,2.972,2819,1.194,2822,1.118,2843,1.194,2864,1.061,2871,0.918,2872,1.194,2893,1.061,2899,1.118,2900,1.118,2901,2.783,2902,2.166,2903,2.166,2904,2.972,2905,1.194,2906,1.194,2909,1.194,2926,2.166,2927,1.194,2935,1.31,2936,1.31,2937,2.166,2938,2.375,2939,2.166,2940,1.31,2941,1.31,2942,1.194,2943,2.375,2944,1.31,2945,1.31,2946,1.31,2947,3.26,2948,1.31,2949,1.016,2950,1.061,2951,1.31,2952,0.849,2953,2.375,2954,1.31,2955,1.31,2956,1.31,2957,1.31,2958,1.31,2959,1.31,2960,1.194,2961,1.194,2962,2.375,2963,1.31,2964,1.016,2965,1.31,2966,1.31,2967,1.194,2968,2.166,2969,1.194,2970,1.31,2971,1.194,2972,1.31,2973,1.31]],["component/49",[179,0.571]],["title/50-1",[20,13.968,100,23.151,188,21.268,313,26.144]],["name/50-1",[]],["text/50-1",[]],["component/50-1",[]],["title/50-2",[2974,65.614]],["name/50-2",[]],["text/50-2",[]],["component/50-2",[]],["title/50-3",[20,13.968,100,23.151,152,22.479,188,21.268]],["name/50-3",[]],["text/50-3",[]],["component/50-3",[]],["title/50-4",[2974,65.614]],["name/50-4",[]],["text/50-4",[]],["component/50-4",[]],["title/50-5",[20,13.968,100,23.151,188,21.268,283,31.73]],["name/50-5",[]],["text/50-5",[]],["component/50-5",[]],["title/50-6",[65,23.397,314,35.833,1274,44.834]],["name/50-6",[]],["text/50-6",[]],["component/50-6",[]],["title/50-7",[100,35.266]],["name/50-7",[]],["text/50-7",[]],["component/50-7",[]],["title/50-8",[2974,65.614]],["name/50-8",[]],["text/50-8",[]],["component/50-8",[]],["title/50-9",[189,23.654,300,25.356]],["name/50-9",[]],["text/50-9",[]],["component/50-9",[]],["title/50-10",[304,15.63,320,22.48]],["name/50-10",[]],["text/50-10",[]],["component/50-10",[]],["title/50",[20,15.775,100,26.144,188,24.018]],["name/50",[73,0.632,100,0.856,188,0.786]],["text/50",[0,1.401,1,2.267,2,1.401,4,0.926,10,0.972,18,2.254,20,2.775,21,1.177,22,1.494,24,0.976,27,1.951,32,1.345,35,1.061,36,0.847,46,1.025,51,1.213,57,2.222,58,1.692,59,1.809,61,3.221,65,2.769,67,4.377,68,1.728,69,2.571,72,1.71,73,1.87,83,1.161,84,0.731,87,2.337,89,2.1,94,0.877,100,4.214,131,0.982,148,1.037,152,3.207,157,1.319,163,4.051,170,0.972,176,1.102,183,0.972,188,4.57,189,1.995,191,1.087,216,3.435,220,1.9,237,2.886,247,1.506,263,1.788,273,3.637,277,1.468,288,1.506,290,1.641,301,1.213,303,2.292,304,0.854,305,1.433,313,3.73,314,5.309,315,1.372,321,2.734,322,0.884,323,0.77,326,3.929,359,1.145,374,1.074,375,3.355,376,0.926,380,1.074,381,1.213,387,0.854,391,1.84,392,1.651,393,2.134,395,2.1,401,0.776,402,0.776,403,0.776,404,0.776,405,0.776,406,0.776,407,0.776,408,0.776,409,0.776,438,1.061,439,1.563,474,1.296,477,2.015,502,1.714,513,3.825,517,1.506,537,2.015,553,3.449,617,1.252,620,1.651,650,1.468,683,2.17,690,1.252,694,1.273,743,1.345,775,1.506,786,1.161,806,1.433,819,3.193,849,1.831,902,1.145,927,1.506,962,1.791,967,2.586,986,2.639,1011,1.468,1063,4.203,1070,2.015,1071,1.768,1092,3.171,1116,1.401,1122,4.344,1248,2.17,1283,2.389,1306,2.502,1333,4.2,1353,1.372,1368,3.556,1422,1.401,1423,5.284,1424,3.27,1436,1.887,1543,1.791,1732,1.468,1908,2.015,1932,7.207,2517,4.965,2545,2.702,2581,1.791,2807,5.288,2817,1.714,2823,4.489,2866,4.965,2874,1.887,2886,1.887,2893,1.791,2939,4.489,2964,1.714,2967,5.303,2974,4.713,2975,2.21,2976,2.21,2977,2.21,2978,2.21,2979,2.21,2980,3.216,2981,2.015,2982,2.21,2983,2.21,2984,2.21,2985,2.21,2986,2.21,2987,2.21,2988,2.015,2989,2.21,2990,2.21,2991,3.767,2992,2.21,2993,2.21,2994,2.21,2995,2.21,2996,5.816,2997,2.21,2998,4.923,2999,4.923,3000,2.21,3001,2.21,3002,2.21,3003,2.21,3004,2.21,3005,2.21,3006,2.21,3007,6.065,3008,2.21,3009,2.21,3010,2.21,3011,1.714,3012,2.21,3013,2.21,3014,2.21,3015,2.21,3016,2.21,3017,2.21,3018,2.21]],["component/50",[179,0.571]],["title/51-1",[288,55.175]],["name/51-1",[]],["text/51-1",[]],["component/51-1",[]],["title/51-2",[74,21.081,75,33.703,222,48.464,3019,53.149]],["name/51-2",[]],["text/51-2",[]],["component/51-2",[]],["title/51-3",[24,10.068,205,31.973,1863,38.061]],["name/51-3",[]],["text/51-3",[]],["component/51-3",[]],["title/51-4",[14,30.967,120,26.643]],["name/51-4",[]],["text/51-4",[]],["component/51-4",[]],["title/51",[20,11.365,188,17.305,288,29.47,303,26.315,304,9.805,305,28.045]],["name/51",[303,1.63,304,0.607]],["text/51",[7,3.118,14,2.957,20,1.73,22,2.611,24,1.63,27,4.497,45,3.409,51,3.612,52,2.811,55,4.086,58,2.957,67,3.457,69,2.383,76,3.506,92,3.728,96,3.327,120,3.355,128,3.021,140,2.566,152,2.784,170,2.896,188,3.474,190,4.754,193,4.754,203,4.372,205,3.506,215,7.412,220,4.379,247,4.485,260,3.021,262,5.334,263,3.124,290,2.867,304,1.492,313,3.238,314,3.929,326,3.238,361,4.754,376,2.757,429,2.838,439,2.731,493,3.558,582,5.106,621,4.372,834,3.612,1863,4.174,2545,3.612,2598,6.001,2971,6.001,3007,5.619,3020,6.582,3021,6.582,3022,6.001,3023,6.582,3024,6.582,3025,6.582,3026,6.582,3027,6.582]],["component/51",[179,0.571]],["title/52-1",[326,33.91,3028,62.86]],["name/52-1",[]],["text/52-1",[]],["component/52-1",[]],["title/52",[21,36.723,146,40.412]],["name/52",[21,1.427,146,1.57]],["text/52",[20,2.695,22,3.401,65,2.02,138,3.31,146,3.038,148,4.812,176,2.509,189,2.529,215,4.425,230,7.007,262,4.2,305,4.779,319,4.895,326,2.549,391,3.833,617,4.858,668,6.011,1062,2.378,1246,6.24,1248,5.907,1249,6.24,1280,6.292,1315,3.631,1333,6.746,1360,4.895,2020,3.743,2545,4.044,2817,8.184,2822,4.425,2864,8.31,2865,6.72,2866,7.974,2867,6.72,2868,6.72,2869,6.72,2877,6.72,3028,4.726,3029,5.182,3030,5.182,3031,5.182,3032,5.182,3033,5.182,3034,5.182,3035,5.182,3036,7.369]],["component/52",[179,0.571]],["title/53-1",[24,7.999,57,16.242,209,17.54,300,17.54,2279,35.621]],["name/53-1",[]],["text/53-1",[]],["component/53-1",[]],["title/53-2",[5,13.39,57,18.101,615,35.302,2545,29.166]],["name/53-2",[]],["text/53-2",[]],["component/53-2",[]],["title/53-3",[189,23.654,300,25.356]],["name/53-3",[]],["text/53-3",[]],["component/53-3",[]],["title/53-4",[304,15.63,320,22.48]],["name/53-4",[]],["text/53-4",[]],["component/53-4",[]],["title/53",[24,8.915,209,19.549,299,32.342,300,19.549]],["name/53",[189,0.674,209,0.723,299,1.196]],["text/53",[1,1.526,5,2.621,6,1.152,16,2.478,18,1.29,20,2.487,24,1.71,25,0.685,27,2.028,38,2.383,41,2.568,42,1.536,43,2.539,46,1.073,54,1.741,57,2.776,58,1.759,59,2.445,64,3.302,65,1.526,68,1.374,69,0.837,74,2.376,77,1.625,84,0.765,87,2.843,88,2.295,89,1.289,90,2.794,91,3.13,94,0.917,96,1.501,111,1.381,112,2.584,113,3.95,115,2.925,128,1.797,133,1.039,136,1.794,140,0.902,160,1.269,163,1.436,169,1.05,172,1.356,176,2.129,183,1.018,188,3.398,189,2.056,191,1.138,192,1.452,209,3.86,210,2.182,224,2.636,267,3.577,273,1.289,274,3.04,282,1.728,288,1.576,290,1.705,299,3.098,300,1.44,303,1.407,304,0.888,305,1.5,321,0.969,322,1.567,323,0.806,332,2.463,338,2.584,340,1.332,353,1.858,356,1.903,364,2.419,374,1.124,375,1.576,383,2.637,385,1.269,387,1.513,391,3.38,401,1.787,402,0.812,403,0.812,404,0.812,405,0.812,406,0.812,407,0.812,408,0.812,409,0.812,439,0.96,488,1.25,511,2.504,512,1.356,513,3.512,526,1.903,528,2.182,529,2.338,557,1.671,568,1.167,585,1.25,599,2.743,613,1.671,615,1.536,617,2.884,634,1.975,636,1.356,643,2.149,645,1.975,668,2.985,690,1.31,705,2.383,712,1.576,717,1.576,719,2.749,739,1.5,771,3.173,786,1.215,788,1.436,798,1.621,803,1.728,812,1.5,819,2.539,881,2.933,918,2.431,925,2.601,959,1.5,967,1.215,1017,1.975,1062,1.061,1063,1.975,1069,1.975,1071,1.085,1246,3.098,1248,2.933,1249,3.646,1253,1.728,1317,1.728,1353,1.436,1423,1.467,1442,1.975,1469,2.668,1476,3.173,1489,1.728,1550,1.621,1662,1.576,1732,1.536,1739,1.794,1786,1.794,1932,3.173,2022,4.347,2140,4.643,2279,8.016,2521,1.794,2543,1.874,2545,1.269,2751,1.975,2824,2.109,2864,3.173,2870,3.57,2899,3.343,2900,3.343,2901,3.343,2937,3.57,2960,2.109,3007,6.619,3037,3.915,3038,5.991,3039,5.991,3040,3.915,3041,3.915,3042,1.975,3043,2.313,3044,2.313,3045,2.313,3046,3.915,3047,2.313,3048,3.915,3049,2.313,3050,2.313,3051,2.313,3052,2.313]],["component/53",[179,0.571]],["title/54-1",[249,30.967,301,37.83]],["name/54-1",[]],["text/54-1",[]],["component/54-1",[]],["title/54-2",[205,31.973,231,32.938,290,26.144]],["name/54-2",[]],["text/54-2",[]],["component/54-2",[]],["title/54-3",[205,31.973,231,32.938,1863,38.061]],["name/54-3",[]],["text/54-3",[]],["component/54-3",[]],["title/54-4",[189,23.654,300,25.356]],["name/54-4",[]],["text/54-4",[]],["component/54-4",[]],["title/54-5",[304,15.63,320,22.48]],["name/54-5",[]],["text/54-5",[]],["component/54-5",[]],["title/54",[5,12.014,24,7.999,167,29.019,231,26.169,301,26.169]],["name/54",[24,0.33,231,1.078,301,1.078]],["text/54",[1,0.956,5,0.618,11,3.073,14,1.102,18,1.043,19,1.126,20,1.635,22,3.66,24,1.91,25,0.727,27,3.222,32,2.503,36,2.874,53,1.09,55,1.523,57,0.835,61,4.138,65,0.956,67,1.288,68,3.496,69,1.923,72,1.113,76,2.191,77,2.205,85,1.691,120,0.948,137,1.464,152,1.037,167,1.492,170,1.079,183,1.079,188,3.692,189,0.841,192,0.909,194,1.192,198,3.191,203,1.629,205,3.313,227,1.138,231,5.673,237,4.397,249,1.848,257,3.442,263,2.952,271,1.555,273,1.367,277,1.629,278,2.102,288,1.671,290,3.019,301,4.927,303,1.492,304,0.933,305,1.59,308,1.555,310,5.105,321,1.027,322,1.646,323,0.854,328,3.863,332,1.008,334,3.583,338,1.058,348,5.264,353,2.522,356,1.192,374,1.999,375,1.671,378,2.411,380,1.999,398,1.718,401,0.861,402,0.861,403,0.861,404,0.861,405,0.861,406,0.861,407,0.861,408,0.861,409,0.861,417,1.555,454,2.732,473,3.467,488,2.224,511,1.206,522,4.982,542,1.464,584,3.073,596,1.671,621,2.732,646,4.245,701,1.988,719,3.442,727,1.492,743,3.233,784,1.718,849,1.192,850,3.369,856,1.346,858,1.671,860,2.456,861,1.438,881,1.413,954,5.311,962,3.334,965,3.334,976,1.832,991,3.512,996,5.819,1027,1.629,1068,3.191,1092,1.192,1140,2.094,1360,2.732,1368,6.039,1423,1.555,1476,1.988,1612,2.503,1739,1.903,1799,4.723,1863,2.609,1889,3.512,2133,3.191,2343,2.094,2796,2.236,2806,3.191,2817,1.903,2874,2.094,2942,4.845,2961,3.751,2964,1.903,3053,6.22,3054,2.452,3055,2.452,3056,2.452,3057,2.452,3058,2.452,3059,2.452,3060,4.114,3061,4.114,3062,4.114,3063,2.452,3064,2.452,3065,2.452,3066,2.452,3067,2.452,3068,2.452,3069,2.236,3070,2.452,3071,2.452]],["component/54",[179,0.571]],["title/55-1",[18,15.212,25,17.789,176,17.558]],["name/55-1",[]],["text/55-1",[]],["component/55-1",[]],["title/55-2",[22,23.807,24,10.068,25,17.789]],["name/55-2",[]],["text/55-2",[]],["component/55-2",[]],["title/55-3",[18,10.96,22,17.152,23,28.724,24,7.254,25,12.817,263,20.525]],["name/55-3",[]],["text/55-3",[]],["component/55-3",[]],["title/55-4",[10,26.41,24,10.068,263,28.488]],["name/55-4",[]],["text/55-4",[]],["component/55-4",[]],["title/55-5",[189,23.654,300,25.356]],["name/55-5",[]],["text/55-5",[]],["component/55-5",[]],["title/55-6",[304,15.63,320,22.48]],["name/55-6",[]],["text/55-6",[]],["component/55-6",[]],["title/55",[18,10.96,22,17.152,24,7.254,70,13.34,131,19.224,263,20.525]],["name/55",[22,0.508,24,0.215,70,0.395,131,0.57,263,0.608]],["text/55",[0,1.001,1,2.28,4,1.928,5,0.707,9,1.56,10,0.694,18,2.24,19,1.289,20,1.21,22,3.941,23,5.871,24,1.751,25,2.712,36,2.429,46,1.303,53,0.701,54,1.687,57,2.43,61,1.779,63,0.649,68,1.332,69,2.449,70,3.366,71,2.313,72,1.275,73,2.175,74,0.626,84,0.522,85,2.606,94,1.505,95,0.817,100,3.688,103,2.746,116,0.942,118,2.651,127,2.09,131,3.669,138,0.709,140,1.794,152,1.188,155,0.942,170,1.236,176,2.534,191,2.264,192,3.211,193,1.14,205,3.115,208,1.318,209,0.58,210,0.88,263,4.794,273,0.88,304,0.358,307,1.14,313,1.867,314,1.677,321,1.59,322,0.631,323,2.485,326,1.381,342,1.224,347,2.112,348,0.88,351,0.866,353,2.185,366,2.429,376,1.59,382,1.821,387,3.639,388,1.365,390,0.96,391,1.721,393,0.894,395,1.565,400,1.14,401,0.554,402,0.554,403,0.554,404,0.554,405,0.554,406,0.554,407,0.554,408,0.554,409,0.554,414,1.636,415,1.048,439,1.165,469,0.786,485,1.279,513,0.925,522,1.865,532,2.989,542,0.942,546,1.048,547,1.224,561,0.98,565,1.14,568,0.796,577,1.618,586,1.939,619,1.821,627,4.964,631,0.853,636,0.925,694,0.909,739,2.461,774,1.646,780,1.106,834,2.082,849,0.767,915,1.968,918,0.98,927,1.075,949,0.942,959,1.023,967,1.993,1013,1.677,1024,0.925,1062,2.422,1071,2.16,1092,3.287,1095,0.96,1097,1.677,1098,0.98,1126,2.276,1132,1.279,1224,0.866,1234,1.347,1283,4.733,1332,2.741,1353,1.744,1360,1.048,1413,6.093,1414,2.356,1422,1.001,1571,2.834,1572,2.179,1599,1.224,1601,1.279,1632,3.571,1636,1.279,1649,1.439,1662,1.914,1701,1.14,1712,1.14,1726,0.98,1747,1.439,1764,1.347,1799,1.914,2004,1.224,2006,1.279,2210,2.659,2211,1.347,2356,1.179,2357,2.028,2358,1.439,2498,2.561,2544,2.659,2545,2.896,2552,3.24,2886,1.347,2911,2.276,3072,3.795,3073,1.578,3074,1.578,3075,1.578,3076,1.179,3077,4.277,3078,1.578,3079,8.207,3080,4.603,3081,1.578,3082,1.578,3083,1.578,3084,1.578,3085,1.578,3086,1.578,3087,3.24,3088,3.795,3089,3.075,3090,3.46,3091,1.578,3092,1.578,3093,1.347,3094,4.603,3095,3.73,3096,1.578,3097,1.578,3098,1.578,3099,2.808,3100,3.46,3101,3.46,3102,1.439,3103,2.808,3104,2.808,3105,1.578,3106,1.578,3107,1.279,3108,1.578,3109,1.578,3110,1.578,3111,1.578,3112,1.578]],["component/55",[179,0.571]],["title/56",[]],["name/56",[22,0.615,24,0.26,263,0.736,3113,1.551]],["text/56",[]],["component/56",[179,0.571]],["title/57-1",[120,20.541,152,22.479,719,24.392,774,31.157]],["name/57-1",[]],["text/57-1",[]],["component/57-1",[]],["title/57-2",[24,8.915,25,15.752,68,18.653,152,22.479]],["name/57-2",[]],["text/57-2",[]],["component/57-2",[]],["title/57-3",[18,10.96,24,7.254,25,12.817,68,15.177,120,16.713,131,19.224]],["name/57-3",[]],["text/57-3",[]],["component/57-3",[]],["title/57-4",[18,10.96,24,7.254,25,12.817,68,15.177,131,19.224,152,18.29]],["name/57-4",[]],["text/57-4",[]],["component/57-4",[]],["title/57-5",[18,10.96,24,7.254,25,12.817,68,15.177,70,13.34,131,19.224]],["name/57-5",[]],["text/57-5",[]],["component/57-5",[]],["title/57-6",[304,15.63,320,22.48]],["name/57-6",[]],["text/57-6",[]],["component/57-6",[]],["title/57",[24,7.999,25,14.133,68,16.737,73,15.333,152,20.169]],["name/57",[68,0.94,152,1.133]],["text/57",[4,1.359,5,1.689,7,0.933,9,0.764,18,2.278,20,1.135,21,0.534,22,2.197,23,1.234,24,1.82,25,2.788,27,1.346,32,4.08,35,0.892,36,2.569,46,1.206,53,0.826,54,0.826,57,1.886,61,0.387,68,2.919,69,2.335,70,3.042,71,0.678,73,1.043,74,0.398,84,0.615,85,2.414,87,0.476,89,2.883,94,0.737,95,1.346,100,3.363,103,1.753,110,0.622,113,3.699,120,3.872,121,0.559,127,2.348,130,0.622,131,4.246,133,0.835,137,0.598,138,1.939,140,2.159,152,3.671,154,0.61,162,0.568,163,1.154,169,1.18,170,0.441,176,2.03,184,0.499,191,0.493,192,1.601,194,0.903,205,0.534,208,0.872,209,1.588,210,0.559,220,1.637,224,0.441,230,0.666,231,1.426,249,2.142,263,2.786,273,2.406,277,0.666,278,1.328,283,0.598,291,0.749,292,0.622,304,0.227,310,0.542,311,0.856,319,0.666,321,1.089,322,0.744,323,2.335,332,1.334,338,0.802,347,2.349,353,1.233,356,2.852,359,0.963,364,1.049,366,2.249,375,0.683,376,1.359,380,0.903,382,1.685,387,2.386,388,0.487,391,2.411,393,0.568,401,0.912,402,0.352,403,1.139,404,0.352,405,0.352,406,0.352,407,0.352,408,0.352,409,0.352,410,1.726,438,2.659,439,0.416,469,1.294,473,1.036,482,1.205,488,1.005,498,2.104,507,1.267,511,0.493,512,1.902,513,3.246,514,1.278,532,0.568,542,1.937,553,1.821,568,1.311,617,0.568,618,2.598,619,2.473,620,2.423,621,1.726,624,2.517,626,1.821,627,3.93,631,1.405,634,0.938,646,1.384,664,1.11,668,1.089,670,0.598,676,1.053,717,0.683,719,2.188,748,1.267,774,2.795,775,0.683,786,0.526,806,0.65,833,0.749,834,1.426,849,1.576,858,0.683,861,1.089,877,0.683,881,1.071,910,0.702,911,1.205,914,0.588,915,1.821,918,5.08,924,0.506,949,1.551,959,1.205,967,1.365,990,0.724,1013,0.598,1020,0.702,1031,0.749,1061,0.683,1062,2.188,1071,1.789,1083,1.131,1085,1.179,1092,3.576,1095,1.581,1097,2.577,1098,1.613,1223,1.342,1224,1.02,1225,0.577,1230,0.724,1241,0.778,1246,0.61,1248,0.577,1249,1.131,1303,1.442,1306,0.666,1309,1.342,1311,4.716,1315,0.702,1316,0.778,1318,0.778,1319,0.778,1335,0.724,1340,1.442,1353,0.622,1390,1.388,1407,1.877,1414,0.622,1415,1.506,1416,1.506,1418,0.749,1419,0.749,1422,3.28,1423,4.401,1424,0.666,1435,0.812,1469,0.683,1489,1.388,1514,0.683,1583,1.685,1612,0.61,1662,0.683,1701,1.877,1719,1.302,1726,1.154,1771,1.267,1799,2.598,1806,1.726,1931,0.636,1934,0.778,2002,0.749,2019,1.506,2020,1.342,2051,0.856,2061,0.778,2182,0.749,2207,0.724,2328,0.778,2356,1.941,2357,1.877,2524,0.778,2544,1.821,2545,3.039,2552,0.856,2949,0.778,2964,0.778,3011,0.778,3022,1.695,3076,0.749,3077,2.629,3089,0.812,3090,0.914,3093,0.856,3095,1.506,3107,0.812,3114,0.914,3115,1.859,3116,1.002,3117,1.002,3118,1.002,3119,4.317,3120,1.859,3121,1.002,3122,1.002,3123,1.002,3124,1.002,3125,1.002,3126,1.002,3127,1.002,3128,1.002,3129,1.002,3130,1.002,3131,1.002,3132,1.859,3133,1.002,3134,1.002,3135,1.859,3136,0.914,3137,1.002,3138,1.002,3139,1.002,3140,1.442,3141,0.914,3142,0.914,3143,0.914,3144,0.914,3145,1.002,3146,1.002,3147,1.002,3148,1.002,3149,0.856,3150,0.856,3151,0.856,3152,0.856,3153,1.587,3154,0.856,3155,0.856,3156,0.856,3157,0.856,3158,0.724,3159,0.856,3160,0.856,3161,4.07,3162,4.07,3163,2.77,3164,0.856,3165,0.856,3166,2.218,3167,2.218,3168,2.218,3169,2.218,3170,2.218,3171,2.218,3172,2.218,3173,2.218,3174,0.856,3175,2.218,3176,0.856,3177,0.914,3178,0.856,3179,1.506,3180,0.856,3181,1.587,3182,0.856,3183,0.856,3184,0.856,3185,0.856,3186,0.856,3187,0.856,3188,0.856,3189,0.856,3190,0.856,3191,1.002,3192,0.856,3193,1.587,3194,1.587,3195,0.856,3196,1.587,3197,1.587,3198,1.587,3199,1.587,3200,0.856,3201,0.856,3202,0.856,3203,0.856,3204,0.856,3205,1.002,3206,0.856,3207,0.856,3208,0.856]],["component/57",[179,0.571]],["title/58-1",[100,26.144,120,23.198,314,35.833]],["name/58-1",[]],["text/58-1",[]],["component/58-1",[]],["title/58-2",[24,8.915,25,15.752,68,18.653,314,31.73]],["name/58-2",[]],["text/58-2",[]],["component/58-2",[]],["title/58-3",[18,10.96,24,7.254,25,12.817,68,15.177,120,16.713,131,19.224]],["name/58-3",[]],["text/58-3",[]],["component/58-3",[]],["title/58-4",[18,10.96,24,7.254,25,12.817,68,15.177,131,19.224,152,18.29]],["name/58-4",[]],["text/58-4",[]],["component/58-4",[]],["title/58-5",[18,10.96,24,7.254,25,12.817,68,15.177,70,13.34,131,19.224]],["name/58-5",[]],["text/58-5",[]],["component/58-5",[]],["title/58-6",[304,15.63,320,22.48]],["name/58-6",[]],["text/58-6",[]],["component/58-6",[]],["title/58",[20,13.968,25,15.752,68,18.653,314,31.73]],["name/58",[68,0.94,314,1.599]],["text/58",[0,0.51,1,1.252,4,1.134,5,1.436,7,0.77,9,1.113,18,2.416,19,0.369,20,0.711,21,0.429,22,2.361,23,1.423,24,1.804,25,2.696,27,1.11,32,3.468,35,0.727,36,2.281,46,0.994,49,0.422,53,0.673,54,1.428,57,1.747,61,0.828,67,0.422,68,2.764,69,2.649,70,2.868,71,0.552,72,0.365,73,0.87,74,0.319,82,1.421,83,0.795,84,1.697,85,2.447,89,3.024,92,0.456,94,0.6,95,1.402,100,3.793,103,1.502,105,0.795,107,0.448,110,0.499,113,3.169,120,3.88,127,2.027,130,1.68,131,4.213,133,0.68,138,2.005,140,1.875,152,3.095,154,0.921,169,0.973,170,0.666,172,0.472,176,2.044,184,0.401,191,0.396,192,1.902,194,1.315,205,3.413,208,1.006,209,1.35,210,0.448,220,1.365,224,0.666,230,0.534,231,1.485,249,1.835,253,0.522,263,3.473,273,2.045,278,2.282,283,0.904,292,0.499,301,0.441,304,0.182,310,0.435,314,5.869,315,0.94,321,0.898,322,0.322,323,2.232,326,1.805,332,1.113,338,0.653,345,0.564,347,2.171,348,0.448,353,1.284,356,2.769,359,0.784,364,0.611,366,2.455,376,0.337,380,0.735,382,1.755,387,2.476,388,0.391,391,2.13,393,0.456,397,0.406,401,0.752,402,0.282,403,0.282,404,0.282,405,0.282,406,0.282,407,0.282,408,0.282,409,0.282,410,0.534,414,0.347,429,0.347,438,2.736,439,1.123,457,1.994,464,0.734,469,1.348,473,0.844,482,0.981,488,0.818,498,1.755,507,1.031,510,0.448,512,1.586,513,2.821,514,1.331,532,0.456,542,1.615,553,1.502,568,1.365,586,1.095,587,1.093,618,3.042,619,2.38,620,2.021,621,1.797,624,2.492,626,1.896,627,3.756,631,1.463,634,0.763,646,0.429,664,0.904,668,0.887,670,1.279,676,0.857,717,0.548,719,1.684,739,0.981,748,1.031,774,3.008,775,0.548,786,0.422,806,0.981,812,0.522,833,0.601,834,0.831,849,1.561,861,0.887,902,0.417,910,1.06,911,0.981,914,0.472,915,1.896,918,4.966,949,1.615,959,0.522,963,0.472,967,1.927,990,0.581,1011,1.797,1013,1.917,1014,0.472,1061,0.548,1062,2.049,1071,1.722,1083,0.921,1085,0.96,1092,4.144,1095,1.646,1097,2.665,1098,1.68,1224,0.831,1225,0.463,1230,0.581,1241,0.624,1246,0.49,1248,0.463,1249,0.921,1274,0.601,1283,3.44,1303,1.174,1306,0.534,1309,1.093,1315,0.564,1316,1.174,1318,0.624,1319,0.624,1320,0.687,1335,0.581,1340,0.624,1347,0.564,1353,0.499,1390,1.13,1407,2.32,1414,0.499,1415,1.227,1416,1.227,1418,0.601,1419,0.601,1422,2.831,1423,4.538,1424,0.534,1435,0.652,1454,0.581,1469,0.548,1489,0.601,1514,0.548,1583,1.39,1612,1.954,1662,0.548,1701,1.954,1719,1.06,1726,0.499,1749,1.093,1771,1.031,1787,0.687,1799,2.784,1806,0.534,1931,0.51,1934,0.624,2002,0.601,2019,1.227,2020,1.093,2182,1.601,2207,0.581,2252,0.687,2356,2.021,2357,1.954,2520,0.687,2524,0.624,2542,0.734,2544,1.502,2545,2.45,2871,0.564,2911,0.652,2949,0.624,2950,0.652,2964,0.624,2988,0.734,3011,0.624,3076,0.601,3077,2.193,3079,0.734,3087,0.687,3089,0.652,3095,1.227,3100,0.734,3101,3.346,3102,0.734,3107,0.652,3136,0.734,3140,1.174,3141,0.734,3142,0.734,3143,0.734,3144,0.734,3149,0.687,3150,0.687,3151,0.687,3152,0.687,3153,1.292,3154,0.687,3155,0.687,3156,0.687,3157,0.687,3158,0.581,3159,0.687,3160,0.687,3161,4.108,3162,4.108,3163,2.742,3164,0.687,3165,0.687,3166,2.31,3167,2.31,3168,2.31,3169,2.31,3170,2.31,3171,2.31,3172,2.31,3173,2.31,3174,0.687,3175,1.83,3176,0.687,3177,0.734,3178,0.687,3179,1.227,3180,0.687,3181,1.292,3182,0.687,3183,0.687,3184,0.687,3185,0.687,3186,0.687,3187,0.687,3188,0.687,3189,0.687,3190,0.687,3192,0.687,3193,1.292,3194,1.292,3195,0.687,3196,1.292,3197,1.292,3198,1.292,3199,1.292,3200,0.687,3201,0.687,3202,0.687,3203,0.687,3204,0.687,3206,0.687,3207,0.687,3208,0.687,3209,0.804,3210,0.804,3211,2.706,3212,0.804,3213,0.804,3214,0.804,3215,0.804,3216,0.804,3217,0.804,3218,3.212,3219,0.804,3220,0.804,3221,0.804,3222,0.804,3223,0.804,3224,0.804,3225,0.804,3226,0.804,3227,1.513,3228,0.804,3229,0.804,3230,0.804,3231,0.804]],["component/58",[179,0.571]],["title/59-1",[100,26.144,313,29.525,315,37.264]],["name/59-1",[]],["text/59-1",[]],["component/59-1",[]],["title/59-2",[24,8.915,25,15.752,68,18.653,313,26.144]],["name/59-2",[]],["text/59-2",[]],["component/59-2",[]],["title/59-3",[1274,44.834,2545,32.938,2980,51.246]],["name/59-3",[]],["text/59-3",[]],["component/59-3",[]],["title/59-4",[18,10.96,24,7.254,25,12.817,68,15.177,120,16.713,131,19.224]],["name/59-4",[]],["text/59-4",[]],["component/59-4",[]],["title/59-5",[18,10.96,24,7.254,25,12.817,68,15.177,131,19.224,313,21.272]],["name/59-5",[]],["text/59-5",[]],["component/59-5",[]],["title/59-6",[18,10.96,24,7.254,25,12.817,68,15.177,70,13.34,131,19.224]],["name/59-6",[]],["text/59-6",[]],["component/59-6",[]],["title/59-7",[304,15.63,320,22.48]],["name/59-7",[]],["text/59-7",[]],["component/59-7",[]],["title/59",[20,13.968,25,15.752,68,18.653,313,26.144]],["name/59",[68,0.94,313,1.318]],["text/59",[4,1.039,5,1.432,7,1.314,9,0.727,18,2.328,20,1.312,21,1.321,22,1.647,23,1.174,24,1.791,25,2.767,27,0.916,32,4.11,35,1.191,36,1.761,46,1.151,52,0.406,53,0.786,54,1.38,55,0.59,57,1.565,61,0.958,63,0.391,68,2.989,69,2.268,70,2.88,71,1.677,72,0.803,73,1.925,74,0.377,82,0.928,84,0.314,85,2.338,87,0.451,89,2.784,94,0.701,95,1.285,100,3.425,103,1.69,113,3.565,120,3.637,121,0.529,127,2.718,131,4.083,133,0.794,138,1.865,140,2.088,152,1.756,154,2.527,156,2.434,166,0.513,169,0.803,176,1.976,183,0.418,184,0.473,188,1.243,190,1.277,191,0.467,192,1.704,194,0.859,205,0.506,208,0.446,209,1.527,210,0.529,220,1.566,224,0.418,228,0.709,231,1.361,237,1.454,249,2.064,257,0.811,263,4.042,273,2.561,278,1.267,282,0.709,283,0.567,292,0.59,304,0.215,308,0.602,310,0.513,313,4.662,315,2.271,320,0.31,321,0.398,322,0.707,323,1.866,326,0.467,330,0.473,332,1.277,338,0.762,340,0.547,347,1.998,353,1.177,356,2.763,359,0.916,364,0.714,366,1.591,375,1.205,376,1.039,380,1.205,382,1.608,387,2.52,388,0.462,391,2.125,393,0.538,401,0.87,402,0.333,403,0.62,404,0.333,405,0.333,406,0.333,407,0.87,408,0.333,409,0.333,410,2.43,414,0.41,425,0.59,438,2.572,439,0.394,463,0.529,469,1.235,473,0.985,482,1.146,488,0.956,498,2.014,507,1.205,510,0.529,511,0.467,512,0.557,513,1.454,514,1.22,532,0.538,542,1.48,553,1.738,568,1.251,585,0.513,586,0.485,618,2.493,619,2.373,620,1.852,621,1.647,624,2.409,626,1.738,627,3.822,631,1.34,634,0.892,636,0.557,646,1.654,664,1.055,668,1.036,670,0.567,676,1.001,693,0.866,717,0.647,719,1.425,727,0.578,748,1.205,774,1.454,775,0.647,786,0.499,819,0.616,833,0.709,834,0.97,849,1.778,861,2.434,881,0.547,902,0.492,910,1.239,911,1.146,915,1.738,918,4.973,927,0.647,949,1.48,959,0.616,963,0.557,967,1.302,990,0.686,1013,0.567,1014,0.557,1061,1.69,1062,1.679,1071,1.948,1083,1.076,1085,1.121,1092,3.044,1095,1.509,1097,2.479,1098,1.54,1132,0.77,1223,0.686,1224,0.97,1225,0.547,1230,0.686,1241,0.737,1246,0.578,1248,0.547,1249,1.076,1274,0.709,1283,0.602,1303,1.371,1306,0.631,1309,1.277,1315,1.738,1316,0.737,1318,0.737,1319,0.737,1335,0.686,1340,1.371,1353,1.928,1360,0.631,1390,1.321,1407,1.791,1414,0.59,1415,1.433,1416,1.433,1418,0.709,1419,0.709,1422,2.633,1424,0.631,1435,0.77,1454,0.686,1460,0.811,1469,0.647,1514,0.647,1548,1.612,1581,0.616,1582,0.631,1583,1.146,1612,0.578,1662,0.647,1701,1.791,1712,0.686,1719,1.239,1726,3.1,1771,1.205,1772,4.852,1787,0.811,1799,3.131,1806,0.631,1931,0.602,1934,0.737,1935,0.77,1969,0.811,1982,0.737,2002,0.709,2019,1.433,2041,0.866,2054,0.647,2182,2.319,2207,0.686,2356,1.852,2357,1.791,2474,0.866,2517,3.124,2520,0.811,2531,0.866,2544,3.499,2545,4.139,2558,1.371,2893,0.77,2911,0.77,2949,0.737,2980,3.923,3011,0.737,3076,0.709,3077,2.516,3087,0.811,3089,0.77,3093,0.811,3095,2.965,3107,0.77,3114,0.866,3140,1.371,3149,0.811,3150,0.811,3151,0.811,3152,0.811,3153,1.509,3154,0.811,3155,0.811,3156,0.811,3157,0.811,3158,0.686,3159,0.811,3160,0.811,3161,3.923,3162,3.923,3163,2.651,3164,0.811,3165,0.811,3166,2.117,3167,2.117,3168,2.117,3169,2.117,3170,2.117,3171,2.117,3172,2.117,3173,2.117,3174,0.811,3175,2.117,3176,0.811,3178,0.811,3179,1.433,3180,0.811,3181,1.509,3182,0.811,3183,0.811,3184,0.811,3185,0.811,3186,0.811,3187,0.811,3188,0.811,3189,0.811,3190,0.811,3192,0.811,3193,1.509,3194,1.509,3195,0.811,3196,1.509,3197,1.509,3198,1.509,3199,1.509,3200,0.811,3201,0.811,3202,0.811,3203,0.811,3204,0.811,3206,0.811,3207,0.811,3208,0.811,3232,0.95,3233,0.95,3234,0.95,3235,0.95,3236,0.95,3237,1.768,3238,1.768,3239,0.95,3240,0.95,3241,0.95,3242,0.95,3243,0.95,3244,0.95,3245,1.768,3246,3.659,3247,0.95,3248,0.95,3249,3.659,3250,1.768,3251,2.48,3252,0.95,3253,0.95,3254,0.95]],["component/59",[179,0.571]],["title/60-1",[54,26.683,152,25.386,687,44.834]],["name/60-1",[]],["text/60-1",[]],["component/60-1",[]],["title/60-2",[5,13.39,84,17.581,152,22.479,312,32.997]],["name/60-2",[]],["text/60-2",[]],["component/60-2",[]],["title/60-3",[5,13.39,152,22.479,312,32.997,3255,53.149]],["name/60-3",[]],["text/60-3",[]],["component/60-3",[]],["title/60-4",[5,12.014,20,12.533,152,20.169,176,13.95,312,29.607]],["name/60-4",[]],["text/60-4",[]],["component/60-4",[]],["title/60-5",[5,13.39,152,22.479,312,32.997,429,22.921]],["name/60-5",[]],["text/60-5",[]],["component/60-5",[]],["title/60-6",[5,13.39,76,28.312,312,32.997,719,24.392]],["name/60-6",[]],["text/60-6",[]],["component/60-6",[]],["title/60-7",[189,23.654,300,25.356]],["name/60-7",[]],["text/60-7",[]],["component/60-7",[]],["title/60-8",[304,15.63,320,22.48]],["name/60-8",[]],["text/60-8",[]],["component/60-8",[]],["title/60",[5,13.39,20,13.968,152,22.479,312,32.997]],["name/60",[5,0.495,152,0.831,312,1.22]],["text/60",[1,0.666,5,2.723,8,1.164,18,2.378,19,2.237,24,0.933,25,2.456,27,1.561,33,0.862,35,1.447,36,1.868,38,1.04,43,1.108,45,2.525,46,0.793,48,1.083,52,1.726,54,2.729,57,1.026,58,2.757,59,0.82,61,2.15,63,0.703,68,1.058,69,3,70,2.176,72,1.368,74,1.603,80,0.938,84,2.193,85,2.004,91,0.69,94,1.195,96,0.655,112,0.737,120,2.15,127,1.368,131,0.76,133,0.768,136,1.326,138,1.354,140,0.666,147,1.02,152,4.285,154,1.04,156,2.37,166,0.924,169,1.368,170,0.752,176,1.627,177,4.684,184,1.501,189,3.116,192,1.499,220,2.039,224,1.779,227,1.398,234,1.002,237,2.37,247,1.164,273,1.68,274,1.02,278,3.137,291,1.276,292,1.061,300,1.108,303,1.834,304,0.387,306,1.654,308,1.083,310,1.629,312,5.824,313,1.988,320,1.318,322,0.684,323,0.595,326,1.482,347,0.684,366,0.655,367,1.326,372,3.416,374,1.464,376,1.694,381,1.654,383,0.885,385,1.654,386,0.897,387,3.768,391,2.774,393,1.707,395,0.952,397,0.862,401,0.6,402,0.6,403,0.6,404,0.6,405,0.6,406,0.6,407,0.6,408,0.6,409,0.6,414,3.042,415,1.135,422,0.952,425,4.116,429,2.102,430,1.197,438,1.941,439,0.709,451,1.385,490,1.276,498,4.574,507,5.647,512,1.002,513,3.598,524,2.054,526,0.83,531,1.276,560,2.46,561,1.061,563,1.605,586,0.873,587,1.234,595,5.621,609,1.459,615,1.135,617,2.761,621,1.135,627,1.002,634,0.862,657,1.385,668,1.767,687,5.543,690,1.707,719,0.784,788,1.061,803,2.251,814,2.111,849,0.83,859,4.183,881,0.984,924,0.862,959,1.108,966,2.054,978,1.326,1116,3.527,1120,1.326,1122,3.02,1225,1.736,1246,1.834,1248,3.536,1277,2.832,1310,1.385,1368,2.92,1482,1.276,1560,1.459,1583,1.108,1613,1.276,1619,5.597,1620,3.686,1621,2.748,1622,1.558,1623,1.558,1624,4.975,1662,2.755,1712,1.234,1719,1.197,1748,4.749,1771,2.054,1912,1.558,1931,1.911,2216,1.459,2217,1.385,2218,1.459,2271,1.558,2315,1.558,2348,1.558,2521,3.136,2560,1.459,2808,1.459,2949,1.326,2981,2.748,3011,1.326,3256,1.709,3257,3.013,3258,1.709,3259,1.709,3260,1.709,3261,1.709,3262,1.709,3263,1.709,3264,1.709,3265,1.709,3266,3.013,3267,1.709,3268,3.013,3269,1.709,3270,1.709,3271,1.709,3272,1.709,3273,3.013,3274,1.709,3275,1.709,3276,1.709,3277,1.709,3278,1.709,3279,1.709,3280,1.709,3281,1.709,3282,1.709,3283,1.709,3284,3.013,3285,3.013,3286,6.63,3287,6.138,3288,1.709,3289,1.709,3290,1.709,3291,1.709,3292,1.709,3293,1.709,3294,5.562,3295,1.709,3296,1.709,3297,1.709,3298,1.709,3299,1.709,3300,4.042,3301,4.042,3302,1.709,3303,1.709,3304,1.709,3305,1.709,3306,3.013]],["component/60",[179,0.571]],["title/61",[]],["name/61",[24,0.33,120,0.759,326,0.966]],["text/61",[]],["component/61",[179,0.571]],["title/62-1",[57,20.442,58,26.963,107,33.456]],["name/62-1",[]],["text/62-1",[]],["component/62-1",[]],["title/62-2",[57,18.101,58,23.875,107,29.625,209,19.549]],["name/62-2",[]],["text/62-2",[]],["component/62-2",[]],["title/62-3",[58,23.875,107,29.625,151,41.232,634,26.811]],["name/62-3",[]],["text/62-3",[]],["component/62-3",[]],["title/62-4",[107,38.425,381,37.83]],["name/62-4",[]],["text/62-4",[]],["component/62-4",[]],["title/62-5",[107,33.456,162,34.001,511,29.525]],["name/62-5",[]],["text/62-5",[]],["component/62-5",[]],["title/62-6",[304,15.63,320,22.48]],["name/62-6",[]],["text/62-6",[]],["component/62-6",[]],["title/62",[20,12.533,103,17.54,107,26.581,128,21.886,129,23.752]],["name/62",[58,0.49,70,0.337,107,0.609,128,0.501,129,0.544,1821,0.618]],["text/62",[18,1.868,20,1.362,21,2.761,57,1.765,58,3.852,61,2.003,63,2.131,69,1.876,85,2.131,87,2.46,103,1.906,107,6.512,128,2.378,129,2.581,140,2.02,151,6.653,159,4.858,160,2.844,162,4.858,176,2.156,192,1.922,209,2.711,278,3.766,294,4.895,304,1.175,323,1.805,328,4.108,332,2.131,338,2.235,347,2.074,356,2.518,359,2.685,366,1.986,374,2.518,376,3.087,381,5.415,391,3.833,401,1.819,402,1.819,403,1.819,404,1.819,405,1.819,406,1.819,407,1.819,408,1.819,409,1.819,429,2.235,467,2.889,567,4.021,584,5.505,585,2.801,634,4.326,683,2.985,719,3.382,786,3.87,924,4.712,1579,3.743,1612,3.154,1716,4.425,1761,4.021,1806,3.442,1821,5.809,1826,4.425,2210,3.631,2952,3.361,3307,5.182,3308,5.182,3309,5.182,3310,3.442,3311,4.726]],["component/62",[179,0.571]],["title/63-1",[9,17.781,24,7.254,65,16.857,110,26.848,162,24.497,323,15.062]],["name/63-1",[]],["text/63-1",[]],["component/63-1",[]],["title/63-2",[304,15.63,320,22.48]],["name/63-2",[]],["text/63-2",[]],["component/63-2",[]],["title/63",[20,12.533,103,17.54,128,21.886,129,23.752,1763,33.414]],["name/63",[70,0.395,128,0.588,129,0.638,1763,0.898,1821,0.726]],["text/63",[1,2.401,9,3.864,18,2.105,20,1.619,24,1.932,65,2.401,69,2.229,74,2.443,77,3.9,103,2.265,107,3.433,110,3.823,128,2.826,129,3.067,159,3.489,162,5.698,208,2.89,278,4.245,290,2.682,301,3.379,304,1.396,323,2.893,330,4.68,332,2.532,338,2.656,374,4.036,376,2.58,401,3.298,402,2.161,403,2.161,404,2.161,405,2.161,406,2.161,407,2.161,408,2.161,409,2.161,426,4.315,646,3.281,831,4.991,924,4.19,1555,7.091,1763,6.584,1821,3.489,2529,7.585,3312,6.158,3313,8.305,3314,6.158,3315,6.158]],["component/63",[179,0.571]],["title/64-1",[20,12.533,100,20.772,103,17.54,128,21.886,129,23.752]],["name/64-1",[]],["text/64-1",[]],["component/64-1",[]],["title/64-2",[304,15.63,320,22.48]],["name/64-2",[]],["text/64-2",[]],["component/64-2",[]],["title/64",[20,12.533,70,14.711,103,17.54,128,21.886,129,23.752]],["name/64",[70,0.479,128,0.712,129,0.773,1265,1.03]],["text/64",[1,2.887,4,2.566,9,2.518,14,1.81,20,2.56,24,1.572,25,2.637,36,1.544,53,3.678,61,1.557,65,2.387,67,2.116,69,3.392,70,3.511,71,2.235,73,2.381,91,1.627,100,4.081,102,2.116,103,3.855,107,2.246,110,2.502,127,3.756,128,4.717,129,4.998,130,2.502,131,2.722,140,3.796,170,3.259,172,2.362,192,1.494,208,2.874,209,3.78,220,3.737,249,1.81,290,1.755,304,0.914,308,2.555,323,2.133,332,1.657,366,1.544,401,1.414,402,1.414,403,1.414,404,1.414,405,1.414,406,1.414,407,1.414,408,1.414,409,1.414,471,2.555,511,1.982,542,2.406,586,3.13,655,5.065,924,2.033,1011,4.068,1013,2.406,1062,1.849,1071,1.891,1092,4.733,1132,3.266,1193,2.824,1224,4.54,1225,3.528,1338,3.675,1422,2.555,1612,3.727,1633,3.675,1719,4.291,1763,2.824,1821,2.283,3179,4.963,3316,5.229]],["component/64",[179,0.571]],["title/65-1",[24,7.999,91,19.254,328,26.581,381,26.169,786,25.045]],["name/65-1",[]],["text/65-1",[]],["component/65-1",[]],["title/65-2",[1,20.718,24,8.915,65,20.718,183,23.386]],["name/65-2",[]],["text/65-2",[]],["component/65-2",[]],["title/65-3",[1,16.857,18,10.96,24,7.254,41,21.815,65,16.857,183,19.028]],["name/65-3",[]],["text/65-3",[]],["component/65-3",[]],["title/65-4",[16,18.101,24,8.915,694,30.617,2353,43.073]],["name/65-4",[]],["text/65-4",[]],["component/65-4",[]],["title/65-5",[347,21.268,456,32.342,694,30.617,1848,41.232]],["name/65-5",[]],["text/65-5",[]],["component/65-5",[]],["title/65-6",[1,20.718,24,8.915,65,20.718,183,23.386]],["name/65-6",[]],["text/65-6",[]],["component/65-6",[]],["title/65-7",[1,18.589,7,17.129,13,27.955,18,12.086,24,7.999]],["name/65-7",[]],["text/65-7",[]],["component/65-7",[]],["title/65-8",[304,15.63,320,22.48]],["name/65-8",[]],["text/65-8",[]],["component/65-8",[]],["title/65",[20,11.365,24,7.254,91,17.46,103,15.906,128,19.846,129,21.539]],["name/65",[24,0.183,70,0.337,91,0.441,128,0.501,129,0.544,1821,0.618]],["text/65",[1,3.984,7,3.596,13,5.215,16,2.857,18,1.854,20,1.457,24,1.96,36,0.788,41,3.154,43,2.298,46,1.644,51,1.129,53,0.915,58,2.491,65,3.55,69,0.745,71,0.751,74,1.405,82,1.861,84,1.172,88,3.665,90,3.431,91,3.754,92,1.165,94,2.48,95,1.835,99,1.811,102,1.861,103,1.303,110,3.881,116,4.825,127,0.934,128,1.626,129,1.765,133,1.592,159,3.541,162,3.541,166,1.915,169,0.934,170,2.44,172,3.251,176,1.622,183,3.401,191,2.728,192,2.056,203,3.683,227,2.901,249,0.924,257,1.626,277,2.353,278,3.492,283,1.228,291,1.537,304,1.058,308,2.247,323,1.625,328,3.091,329,1.185,332,0.846,333,2.749,338,0.887,347,1.867,356,1,359,1.066,364,1.43,373,2.041,376,1.955,380,1,381,4.435,383,1.066,391,2.073,399,3.62,401,1.243,402,0.722,403,1.243,404,0.722,405,0.722,406,0.722,407,0.722,408,0.722,409,0.722,414,0.887,429,2.391,438,0.988,456,4.703,526,1,598,3.732,599,1.442,631,1.112,634,1.038,650,1.367,655,1.915,664,1.228,679,2.247,683,3.194,698,2.353,719,0.944,786,3.843,787,2.077,849,1,858,1.402,861,2.077,877,1.402,924,4.077,986,3.885,1027,2.353,1083,1.252,1085,1.305,1089,1.486,1122,3.485,1271,1.757,1373,1.537,1612,1.252,1806,2.353,1821,5.04,1848,5.996,2205,2.871,2210,2.482,2335,1.757,2353,4.494,2425,1.757,2602,3.025,2677,4.934,2871,2.482,2952,5.241,3042,3.025,3076,2.646,3310,5.751,3316,1.757,3317,2.057,3318,2.057,3319,3.543,3320,2.057,3321,1.876,3322,2.057,3323,5.7,3324,4.142,3325,4.302,3326,3.984,3327,2.057,3328,1.876,3329,1.876,3330,2.057]],["component/65",[179,0.571]],["title/66-1",[24,8.915,65,20.718,162,30.107,457,32.997]],["name/66-1",[]],["text/66-1",[]],["component/66-1",[]],["title/66-2",[7,15.533,13,25.351,24,7.254,65,16.857,514,21.272,834,23.731]],["name/66-2",[]],["text/66-2",[]],["component/66-2",[]],["title/66-3",[304,15.63,320,22.48]],["name/66-3",[]],["text/66-3",[]],["component/66-3",[]],["title/66",[20,11.365,24,7.254,65,16.857,103,15.906,128,19.846,129,21.539]],["name/66",[24,0.183,65,0.426,70,0.337,128,0.501,129,0.544,1821,0.618]],["text/66",[1,1.204,7,3.6,9,1.27,13,5.166,16,1.408,18,1.436,19,0.807,20,0.812,24,1.892,27,1.601,33,0.887,36,0.674,46,0.816,51,0.965,53,1.838,57,1.694,63,2.045,65,4.363,67,2.171,69,1.496,70,1.534,71,1.127,73,1.329,77,3.122,82,2.612,84,1.022,87,2.689,91,1.248,94,0.697,95,1.601,102,0.923,103,1.136,110,2.566,116,4.02,127,2.258,128,1.418,129,1.539,133,1.388,140,2.208,156,1.031,159,4.605,162,4.877,166,0.95,170,0.774,172,1.811,174,1.501,176,1.455,191,1.52,192,2.315,194,1.502,203,1.168,208,0.825,209,2.477,220,2.509,227,0.816,257,0.807,260,0.807,278,3.442,301,2.268,304,0.701,309,1.232,323,1.973,328,2.304,330,0.876,332,0.723,333,2.397,338,0.758,347,1.654,356,0.854,359,0.911,364,1.248,366,1.184,374,2.753,376,2.084,381,4.305,388,3.812,391,1.859,394,1.425,399,2.397,401,0.617,402,0.617,403,0.617,404,0.617,405,0.617,406,0.617,407,0.617,408,0.617,409,0.617,414,0.758,429,2.145,456,4.098,463,2.773,467,3.48,473,0.98,482,1.14,493,0.95,496,1.198,514,2.787,526,2.417,569,3.35,584,3.716,585,2.689,598,2.468,614,1.198,634,2.085,643,0.965,650,1.168,655,3.868,664,1.049,671,2.397,683,1.78,685,2.052,719,2.6,786,3.279,787,1.031,800,0.996,823,1.425,834,3.109,849,0.854,856,2.73,858,1.198,861,1.031,881,1.013,914,1.811,924,4.228,941,1.168,970,2.638,986,1.232,1014,2.423,1027,2.052,1066,2.817,1083,1.07,1085,1.115,1089,1.27,1168,1.501,1193,4.718,1223,1.27,1224,2.268,1225,1.78,1300,2.397,1353,1.091,1474,2.638,1575,1.313,1612,1.07,1763,1.232,1806,2.052,1821,5.193,1826,3.529,1848,5.224,1902,1.501,1931,1.115,1964,2.638,2205,1.425,2210,2.896,2353,2.504,2581,1.425,2602,2.638,2677,2.986,2812,1.603,2871,1.232,2952,4.367,3042,1.501,3076,1.313,3310,4.473,3311,1.603,3316,1.501,3323,2.817,3324,2.308,3325,2.397,3326,2.638,3328,2.817,3329,1.603,3331,1.758,3332,1.758,3333,9.713,3334,5.665,3335,1.758,3336,1.758,3337,1.758,3338,4.134,3339,1.758]],["component/66",[179,0.571]],["title/67-1",[20,13.968,68,18.653,71,19.393,72,24.13]],["name/67-1",[]],["text/67-1",[]],["component/67-1",[]],["title/67-2",[68,16.737,71,17.401,72,21.65,301,26.169,774,27.955]],["name/67-2",[]],["text/67-2",[]],["component/67-2",[]],["title/67-3",[304,15.63,320,22.48]],["name/67-3",[]],["text/67-3",[]],["component/67-3",[]],["title/67",[4,15.271,18,9.238,20,9.58,68,12.793,71,13.301,73,11.72,104,19.144,105,19.144]],["name/67",[4,0.457,68,0.383,71,0.398,73,0.351,104,0.573,105,0.573]],["text/67",[1,1.038,4,2.743,5,2.329,10,1.938,14,3.716,16,2.23,18,2.403,19,1.222,20,2.174,22,1.056,24,1.451,25,2.149,27,1.379,32,1.62,36,1.688,45,1.379,46,4.29,53,2.504,57,0.907,61,1.029,65,1.717,68,3.987,69,0.964,70,1.738,71,3.911,72,1.208,73,2.512,74,2.597,76,1.418,77,1.828,84,2.399,89,1.484,96,1.02,99,1.36,104,2.959,105,2.959,109,1.326,110,1.653,112,2.823,129,1.326,137,1.589,138,1.196,157,1.589,159,2.495,166,1.439,168,1.726,170,1.171,176,1.915,188,1.762,191,1.309,192,2.897,194,1.294,209,2.668,224,1.171,241,3.76,257,1.222,260,2.021,263,2.09,278,2.251,290,1.159,301,2.417,304,0.604,307,1.923,313,4.856,321,1.115,322,1.065,323,2.28,329,1.533,333,3.417,339,2.925,347,1.065,366,2.159,387,1.029,391,0.995,394,2.157,397,1.343,401,0.934,402,0.934,403,1.546,404,0.934,405,0.934,406,0.934,407,0.934,408,0.934,409,0.934,429,1.148,430,1.865,439,1.828,457,2.734,467,1.484,488,1.439,511,1.309,512,1.56,514,1.309,526,1.294,547,2.065,562,1.988,577,2.537,596,1.814,627,4.581,646,3.001,670,2.629,694,1.533,719,3.005,743,1.62,773,1.988,774,1.56,779,2.157,784,1.865,833,1.988,834,1.461,845,2.427,856,2.417,877,1.814,902,2.281,986,3.086,1027,2.925,1062,2.021,1071,2.067,1073,1.865,1224,1.461,1249,1.62,1277,3.086,1315,1.865,1407,3.181,1581,1.726,1582,1.768,1761,2.065,1799,3.001,1821,4.426,1863,1.688,2035,1.923,2207,1.923,2529,1.923,2545,3.593,2673,2.427,2677,3.181,2799,2.273,2871,1.865,2950,2.157,2952,5.067,2969,4.016,3310,1.768,3340,2.662,3341,2.662,3342,2.273,3343,2.427,3344,1.923,3345,4.404,3346,4.016,3347,4.404,3348,2.662,3349,2.662,3350,2.662]],["component/67",[179,0.571]],["title/68-1",[4,16.573,73,12.719,104,20.776,105,20.776,109,19.703,347,15.83,2054,26.959]],["name/68-1",[]],["text/68-1",[]],["component/68-1",[]],["title/68-2",[109,29.895,3344,43.352,3351,51.246]],["name/68-2",[]],["text/68-2",[]],["component/68-2",[]],["title/68-3",[109,29.895,727,36.524,3344,43.352]],["name/68-3",[]],["text/68-3",[]],["component/68-3",[]],["title/68-4",[304,15.63,320,22.48]],["name/68-4",[]],["text/68-4",[]],["component/68-4",[]],["title/68",[4,14.159,14,15.182,18,8.566,20,8.882,71,12.332,73,10.867,104,17.75,105,17.75,109,16.833]],["name/68",[4,0.457,14,0.49,73,0.351,104,0.573,105,0.573,109,0.544]],["text/68",[4,4.238,14,1.389,18,1.261,24,0.835,25,2.122,27,1.601,35,2.39,36,1.907,39,5.695,46,3.322,54,1.374,57,2.855,63,1.271,70,1.535,71,2.612,73,3.252,76,1.647,84,2.066,104,5.313,105,5.602,109,5.191,111,1.846,140,2.435,147,1.846,148,2.335,159,1.751,172,3.661,183,2.19,192,1.845,194,1.502,209,2.886,234,1.812,244,2.166,249,2.235,304,0.701,315,1.919,321,1.295,322,1.237,323,2.175,324,2.398,326,1.521,332,1.271,347,3.14,366,1.907,376,1.295,386,1.624,387,3.24,391,1.156,397,1.559,401,1.746,402,1.085,403,1.085,404,1.085,405,1.085,406,1.085,407,1.085,408,1.085,409,1.085,429,2.146,436,2.398,438,2.999,439,2.065,457,1.919,488,1.671,496,2.107,505,2.233,511,1.521,545,3.156,549,2.107,568,1.559,570,2.233,585,3.869,670,2.971,683,2.867,727,4.775,739,4.642,914,3.661,924,1.559,941,2.053,1024,6.11,1031,2.309,1062,2.866,1071,2.931,1073,2.166,1277,3.487,1317,2.309,1349,2.053,1571,3.717,1749,2.233,1821,1.751,2004,2.398,2035,2.233,2054,6.767,2521,2.398,2529,4.511,2544,5.016,2619,2.819,2952,5.946,3140,4.845,3158,2.233,3310,2.053,3324,2.309,3325,2.398,3344,6.622,3351,5.332,3352,2.819,3353,2.639,3354,2.505,3355,3.091,3356,4.976,3357,4.976,3358,2.819,3359,3.091,3360,3.091,3361,3.091]],["component/68",[179,0.571]],["title/69-1",[5,15.121,347,24.018,516,46.565]],["name/69-1",[]],["text/69-1",[]],["component/69-1",[]],["title/69-2",[4,15.271,18,9.238,65,14.209,73,11.72,104,19.144,105,19.144,313,17.931,440,21.369]],["name/69-2",[]],["text/69-2",[]],["component/69-2",[]],["title/69-3",[304,15.63,320,22.48]],["name/69-3",[]],["text/69-3",[]],["component/69-3",[]],["title/69",[4,14.159,14,15.182,18,8.566,20,8.882,71,12.332,73,10.867,104,17.75,105,17.75,313,16.625]],["name/69",[4,0.457,14,0.49,73,0.351,104,0.573,105,0.573,313,0.537]],["text/69",[4,3.521,5,2.619,8,1.881,9,2.376,10,1.215,14,1.24,18,1.696,19,1.267,20,2.09,25,1.984,27,1.43,32,2.762,36,1.739,45,3.831,53,1.227,54,1.227,57,0.94,61,2.233,65,3.276,68,2.791,71,3.639,73,2.378,82,1.45,100,1.202,104,3.885,105,4.414,131,2.017,138,1.24,140,1.076,152,1.168,159,2.571,172,3.924,182,1.934,183,1.997,188,1.816,192,2.143,209,1.015,230,1.834,237,1.618,244,3.18,257,3.072,290,1.977,292,1.714,303,1.68,304,0.626,313,5.222,323,2.013,326,1.358,332,1.135,338,1.19,347,2.312,366,2.565,371,2.357,386,1.45,387,1.754,391,2.765,397,1.393,401,0.969,402,0.969,403,0.969,404,0.969,405,1.593,406,0.969,407,0.969,408,0.969,409,0.969,414,3.19,429,2.492,439,1.883,440,5.146,457,2.818,474,4.336,511,2.843,513,2.66,516,8.155,542,2.709,545,3.665,568,1.393,585,2.453,619,1.79,683,3.329,698,1.834,760,2.357,775,1.881,780,1.934,834,1.515,858,1.881,914,1.618,924,2.289,939,2.517,941,3.014,967,2.383,977,2.517,1011,3.838,1062,2.083,1071,1.295,1092,3.253,1098,1.714,1133,2.517,1346,2.062,1581,1.79,1582,1.834,1612,4.073,1654,2.517,1716,2.357,1749,3.278,1763,1.934,1772,3.678,1802,3.278,1806,3.014,1821,1.564,1910,2.357,2002,2.062,2054,5.42,2131,2.357,2521,2.142,2524,2.142,2529,4.835,2558,3.521,2677,1.994,2807,2.237,2952,5.45,3069,2.517,3310,1.834,3324,4.317,3353,3.875,3354,4.683,3358,2.517,3362,2.76,3363,4.538,3364,2.76,3365,2.76,3366,2.76,3367,2.76,3368,2.76,3369,2.76,3370,2.76,3371,2.76,3372,5.779,3373,2.76,3374,2.76,3375,2.76,3376,2.76]],["component/69",[179,0.571]],["title/70-1",[4,16.573,24,6.636,57,13.473,73,12.719,104,20.776,105,20.776,293,26.275]],["name/70-1",[]],["text/70-1",[]],["component/70-1",[]],["title/70-2",[189,23.654,300,25.356]],["name/70-2",[]],["text/70-2",[]],["component/70-2",[]],["title/70-3",[304,15.63,320,22.48]],["name/70-3",[]],["text/70-3",[]],["component/70-3",[]],["title/70",[4,22.266,73,17.088,104,27.913,105,27.913]],["name/70",[4,0.537,73,0.412,104,0.673,105,0.673,1265,0.851]],["text/70",[1,1.59,4,4.405,5,1.028,10,1.795,12,2.311,14,4.229,16,1.389,18,2.267,20,2.474,24,1.037,25,2.467,36,1.563,57,3.047,68,2.169,71,3.038,73,3.435,95,2.113,99,4.572,104,5.522,105,5.688,106,5.009,109,3.717,111,2.435,148,1.914,169,1.852,170,3.283,172,2.391,183,2.719,192,1.512,208,1.914,209,3.984,224,1.795,260,1.872,290,1.777,293,4.956,294,2.709,304,0.925,313,3.04,323,2.153,330,2.032,332,1.677,338,1.759,339,4.105,364,3.013,366,1.563,380,1.982,383,2.113,391,2.31,401,1.432,402,1.432,403,1.432,404,1.432,405,1.432,406,1.432,407,1.432,408,1.432,409,1.432,429,1.759,439,1.693,493,2.205,542,2.435,578,3.047,585,2.205,905,2.173,914,3.623,924,3.118,925,2.709,941,2.709,1026,2.946,1062,1.872,1068,3.164,1581,2.645,1582,2.709,1761,4.795,1781,3.719,1821,3.501,2808,3.483,2828,3.483,2950,3.306,2952,4.008,3310,2.709,3344,2.946,3351,5.277,3377,6.18,3378,4.079,3379,4.079,3380,4.079,3381,4.079,3382,4.079,3383,4.079,3384,4.079]],["component/70",[179,0.571]],["title/71-1",[5,13.461,16,11.511,25,10.017,57,11.511,313,16.625,1277,23.681,1581,21.918,1582,22.449]],["name/71-1",[]],["text/71-1",[]],["component/71-1",[]],["title/71-2",[5,13.461,16,11.511,25,10.017,57,11.511,313,16.625,1581,21.918,1582,22.449,2545,18.547]],["name/71-2",[]],["text/71-2",[]],["component/71-2",[]],["title/71-3",[304,15.63,320,22.48]],["name/71-3",[]],["text/71-3",[]],["component/71-3",[]],["title/71",[5,9.966,14,17.77,16,13.473,25,11.724,313,19.459,1581,25.654,1582,26.275]],["name/71",[4,0.353,5,0.212,14,0.378,25,0.25,73,0.271,104,0.442,105,0.442,3385,0.842]],["text/71",[2,3.356,4,2.894,5,2.957,14,2.377,16,3.211,18,1.341,25,2.851,45,2.741,54,2.353,57,3.435,59,1.171,65,3.59,67,1.281,69,1.482,73,2.221,74,0.967,84,0.807,96,0.935,104,3.628,105,3.928,112,1.052,121,1.36,140,2.416,159,2.998,172,4.05,176,0.713,184,1.215,192,0.904,234,5.085,257,1.879,278,2.093,304,0.553,311,2.082,313,4.638,319,4.589,321,1.022,322,0.976,323,2.406,334,1.405,347,2.48,366,0.935,386,2.151,387,2.396,388,3.357,391,2.317,401,2.175,402,0.856,403,0.856,404,0.856,405,0.856,406,0.856,407,0.856,408,0.856,409,0.856,414,2.282,440,2.4,457,1.514,511,3.049,524,1.662,545,3.356,563,2.181,568,2.066,585,2.861,586,1.247,646,1.299,683,2.359,687,3.059,722,2.082,786,2.151,856,1.338,914,3.102,925,2.72,927,2.791,941,3.515,974,2.224,1009,1.709,1011,4.589,1062,2.429,1071,1.921,1277,7.234,1353,3.848,1474,2.082,1581,6.114,1582,6.262,1612,4.551,1726,3.848,1749,4.477,1931,1.547,1964,2.082,2131,2.082,2529,4.99,2545,5.869,2677,1.762,2799,2.082,2871,1.709,2952,6.54,3310,3.515,3324,3.953,3325,1.892,3342,2.082,3343,2.224,3346,2.224,3353,3.496,3354,4.289,3386,2.439,3387,2.439]],["component/71",[179,0.571]],["title/72-1",[24,6.636,73,12.719,99,20.218,100,17.231,103,14.55,108,27.718,109,19.703]],["name/72-1",[]],["text/72-1",[]],["component/72-1",[]],["title/72-2",[18,10.026,24,6.636,73,12.719,99,20.218,103,14.55,108,27.718,109,19.703]],["name/72-2",[]],["text/72-2",[]],["component/72-2",[]],["title/72-3",[304,15.63,320,22.48]],["name/72-3",[]],["text/72-3",[]],["component/72-3",[]],["title/72",[24,7.254,73,13.904,99,22.102,103,15.906,108,30.3,109,21.539]],["name/72",[99,0.793,103,0.571,108,1.087,261,1.203]],["text/72",[4,1.562,18,2.013,24,1.872,36,1.428,48,2.364,51,2.045,57,2.403,58,1.674,69,1.349,73,3.411,74,2.288,75,2.364,99,5.422,100,4.263,102,3.029,103,3.844,105,3.029,108,7.616,109,5.112,110,4.931,111,4.742,138,1.674,140,2.249,148,3.311,163,2.314,172,4.656,183,1.64,209,3.695,224,1.64,257,1.711,275,2.612,304,0.845,321,1.562,322,1.492,323,2.009,332,1.533,333,2.892,338,1.607,342,4.475,347,1.492,355,2.612,357,2.417,366,2.211,387,2.727,401,1.308,402,1.308,403,1.308,404,1.308,405,1.308,406,1.308,407,1.308,408,1.308,409,1.308,429,1.607,457,4.381,493,4.293,655,3.814,740,4.166,881,2.147,924,2.91,941,3.831,963,3.381,1027,2.476,1062,2.647,1071,2.707,1802,4.166,1821,4.499,1931,3.658,2034,3.399,2035,2.692,2518,3.182,2544,2.612,2828,3.182,2952,4.576,3140,2.892,3158,2.692,3310,2.476,3324,2.784,3325,4.475,3352,5.26,3354,4.675,3388,5.768,3389,3.727,3390,3.727,3391,3.727,3392,3.727,3393,3.727,3394,3.727,3395,3.727]],["component/72",[179,0.571]],["title/73-1",[24,8.915,73,17.088,99,27.164,184,26.472]],["name/73-1",[]],["text/73-1",[]],["component/73-1",[]],["title/73-2",[189,23.654,300,25.356]],["name/73-2",[]],["text/73-2",[]],["component/73-2",[]],["title/73-3",[304,15.63,320,22.48]],["name/73-3",[]],["text/73-3",[]],["component/73-3",[]],["title/73",[24,10.068,73,19.298,99,30.677]],["name/73",[99,1.004,261,1.524,1265,1.305]],["text/73",[4,2.037,18,2.097,24,1.942,35,2.335,63,2.895,69,2.549,73,3.527,74,3.282,75,4.465,82,2.554,90,2.669,92,4.688,95,3.647,99,5.679,101,3.407,102,4.764,103,3.044,104,2.554,105,2.554,108,3.407,109,2.422,110,3.019,111,2.903,148,3.883,170,3.098,183,2.14,184,2.422,192,2.61,197,4.152,209,3.692,249,2.184,289,3.941,294,3.23,304,1.103,323,1.694,332,2,366,1.864,401,1.707,402,1.707,403,1.707,404,1.707,405,2.471,406,1.707,407,1.707,408,1.707,409,1.707,414,2.097,512,4.127,517,3.314,563,3.75,585,3.806,596,3.314,743,2.959,798,3.407,856,4.541,881,4.056,905,2.59,924,2.453,925,3.23,1193,7.032,1332,3.512,1373,6.182,1579,3.512,2433,3.941,3344,3.512,3396,6.42]],["component/73",[179,0.571]],["title/74-1",[24,6.636,73,12.719,99,20.218,100,17.231,101,27.718,102,20.776,103,14.55]],["name/74-1",[]],["text/74-1",[]],["component/74-1",[]],["title/74-2",[24,8.915,73,17.088,99,27.164,184,26.472]],["name/74-2",[]],["text/74-2",[]],["component/74-2",[]],["title/74-3",[24,6.636,52,16.894,73,12.719,101,27.718,102,20.776,103,14.55,1092,19.224]],["name/74-3",[]],["text/74-3",[]],["component/74-3",[]],["title/74-4",[24,8.915,73,17.088,99,27.164,347,21.268]],["name/74-4",[]],["text/74-4",[]],["component/74-4",[]],["title/74-5",[5,7.937,101,22.074,102,16.545,103,11.587,112,13.586,209,11.587,429,13.586,739,20.43,2545,17.288,3158,22.754]],["name/74-5",[]],["text/74-5",[]],["component/74-5",[]],["title/74-6",[5,12.014,18,12.086,856,26.169,1373,35.621,2545,26.169]],["name/74-6",[]],["text/74-6",[]],["component/74-6",[]],["title/74-7",[304,15.63,320,22.48]],["name/74-7",[]],["text/74-7",[]],["component/74-7",[]],["title/74",[24,7.254,73,13.904,99,22.102,101,30.3,102,22.712,103,15.906]],["name/74",[99,0.793,103,0.571,261,1.203,1721,1.324]],["text/74",[4,0.445,5,2.491,9,0.807,13,0.623,18,1.915,20,0.279,24,1.765,35,0.51,36,0.752,41,0.536,45,0.55,46,3.087,51,0.583,52,1.167,54,0.872,57,0.668,61,0.411,63,0.807,69,2.408,71,0.716,73,3.075,74,2.639,75,0.674,82,1.435,84,2.109,85,1.638,87,1.891,90,1.866,91,3.051,92,2.257,94,0.422,95,1.761,96,3.472,99,4.63,100,2.898,101,6.348,102,4.9,103,3.216,109,0.529,110,2.794,111,2.379,112,2.749,116,1.171,121,1.895,133,0.477,137,0.634,140,0.765,147,0.634,148,0.921,151,1.522,159,0.602,166,0.574,170,1.98,172,1.993,176,1.678,177,0.706,183,0.863,184,1.361,188,0.785,190,0.768,191,1.344,192,1.478,197,0.907,208,0.921,209,3.658,224,0.468,237,3.147,249,2.022,260,0.9,274,0.634,278,2.3,289,0.861,294,0.706,304,0.241,310,1.838,313,0.965,315,2.794,321,0.445,322,0.425,323,0.952,328,1.094,330,0.529,332,1.398,334,1.13,338,1.466,347,3.348,351,0.583,355,0.745,356,1.328,359,0.55,364,2.002,366,1.047,373,0.612,374,0.516,376,1.885,380,2.41,385,0.583,386,1.435,387,3.606,388,0.516,391,1.854,401,0.373,402,0.373,403,0.373,404,0.373,405,0.689,406,0.373,407,0.373,408,0.373,409,0.373,414,1.719,422,1.523,429,2.139,438,2.578,439,0.441,440,0.623,456,0.647,457,4.691,482,0.689,511,1.344,512,1.15,517,0.724,523,1.59,526,0.516,563,1.045,580,1.974,585,0.574,595,0.647,596,1.337,600,0.689,619,0.689,634,2.502,650,0.706,664,0.634,681,0.602,688,1.59,698,2.647,703,1.789,719,1.254,739,2.584,787,1.15,844,0.907,849,1.652,856,4.248,861,1.15,881,0.612,905,2.642,910,1.375,914,1.993,924,3.711,925,1.815,941,0.706,963,1.993,1011,0.706,1026,1.417,1062,1.254,1071,1.596,1083,0.647,1085,0.674,1089,0.768,1092,3.098,1122,0.794,1193,4.839,1249,2.425,1277,3.153,1315,1.375,1332,0.768,1373,5.495,1472,2.903,1575,0.794,1579,2.456,1580,2.903,1581,4.314,1582,4.419,1601,0.861,1612,0.647,1710,1.789,1802,3.251,1821,2.549,2002,0.794,2035,1.974,2061,0.824,2063,0.969,2133,2.12,2205,2.756,2207,0.768,2210,1.915,2326,0.969,2328,0.824,2335,1.675,2425,1.675,2433,0.861,2518,2.333,2529,1.974,2545,5.646,2558,2.12,2560,0.907,2581,0.861,2677,0.768,2871,0.745,2952,3.482,2968,0.969,3158,1.417,3310,1.815,3321,4.104,3326,0.907,3342,0.907,3344,1.417,3396,5.232,3397,1.063,3398,2.733,3399,3.4,3400,1.063,3401,4.5,3402,2.733,3403,2.733,3404,1.063,3405,1.063,3406,1.063,3407,1.063,3408,2.733,3409,1.962,3410,1.962,3411,1.962,3412,1.063,3413,1.063,3414,4.5,3415,1.962,3416,1.962,3417,1.962,3418,1.063,3419,1.962,3420,1.063,3421,1.063,3422,1.063,3423,1.063,3424,1.063,3425,1.063]],["component/74",[179,0.571]]],"invertedIndex":[["",{"_index":387,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["0",{"_index":553,"title":{},"name":{},"text":{"6":{},"14":{},"38":{},"45":{},"50":{},"57":{},"58":{},"59":{}},"component":{}}],["0.0.0.0",{"_index":2932,"title":{},"name":{},"text":{"48":{}},"component":{}}],["0.0.1",{"_index":2901,"title":{},"name":{},"text":{"47":{},"49":{},"53":{}},"component":{}}],["0.028",{"_index":2505,"title":{},"name":{},"text":{"38":{}},"component":{}}],["0.039",{"_index":3106,"title":{},"name":{},"text":{"55":{}},"component":{}}],["0.066",{"_index":3150,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["0.099",{"_index":3151,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["0.21.3",{"_index":1578,"title":{},"name":{},"text":{"21":{}},"component":{}}],["0.3",{"_index":1508,"title":{},"name":{},"text":{"19":{}},"component":{}}],["0.322",{"_index":3152,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["0.5556",{"_index":2409,"title":{},"name":{},"text":{"36":{}},"component":{}}],["0.8",{"_index":327,"title":{},"name":{},"text":{"4":{},"13":{},"21":{},"34":{}},"component":{}}],["0.9",{"_index":785,"title":{},"name":{},"text":{"7":{}},"component":{}}],["0/2",{"_index":3000,"title":{},"name":{},"text":{"50":{}},"component":{}}],["00",{"_index":3124,"title":{},"name":{},"text":{"57":{}},"component":{}}],["0000",{"_index":3189,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["00001",{"_index":624,"title":{},"name":{},"text":{"6":{},"24":{},"57":{},"58":{},"59":{}},"component":{}}],["0044ffa0",{"_index":2246,"title":{},"name":{},"text":{"33":{}},"component":{}}],["00:00:00.180",{"_index":1672,"title":{},"name":{},"text":{"21":{}},"component":{}}],["00ce5c1d",{"_index":2448,"title":{},"name":{},"text":{"38":{}},"component":{}}],["01",{"_index":3125,"title":{},"name":{},"text":{"57":{}},"component":{}}],["01t16:08:12.038z",{"_index":1845,"title":{},"name":{},"text":{"26":{}},"component":{}}],["01t16:08:12.061z",{"_index":1846,"title":{},"name":{},"text":{"26":{}},"component":{}}],["0229",{"_index":2734,"title":{},"name":{},"text":{"45":{}},"component":{}}],["03",{"_index":2477,"title":{},"name":{},"text":{"38":{}},"component":{}}],["037c",{"_index":2224,"title":{},"name":{},"text":{"33":{}},"component":{}}],["03:00",{"_index":1517,"title":{},"name":{},"text":{"19":{},"38":{}},"component":{}}],["03e6cf79",{"_index":2708,"title":{},"name":{},"text":{"45":{}},"component":{}}],["03t16:36:19",{"_index":2515,"title":{},"name":{},"text":{"38":{}},"component":{}}],["04",{"_index":660,"title":{},"name":{},"text":{"6":{}},"component":{}}],["05",{"_index":1627,"title":{},"name":{},"text":{"21":{}},"component":{}}],["05t17:31:00z",{"_index":661,"title":{},"name":{},"text":{"6":{}},"component":{}}],["06",{"_index":1230,"title":{},"name":{},"text":{"14":{},"33":{},"38":{},"45":{},"57":{},"58":{},"59":{}},"component":{}}],["06c3fe8e2dfc42e2211cbcc41224f5a3d6bd1f26",{"_index":3184,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["07",{"_index":1515,"title":{},"name":{},"text":{"19":{},"26":{}},"component":{}}],["09ccd1e972bb",{"_index":2236,"title":{},"name":{},"text":{"33":{}},"component":{}}],["1",{"_index":332,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"11":{},"13":{},"15":{},"16":{},"17":{},"19":{},"21":{},"23":{},"24":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"53":{},"54":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["1.0",{"_index":390,"title":{},"name":{},"text":{"4":{},"6":{},"9":{},"13":{},"17":{},"19":{},"21":{},"30":{},"32":{},"33":{},"36":{},"38":{},"42":{},"55":{}},"component":{}}],["1.0.0",{"_index":1553,"title":{},"name":{},"text":{"20":{},"21":{}},"component":{}}],["1.0.1",{"_index":2180,"title":{},"name":{},"text":{"33":{},"41":{}},"component":{}}],["1.0.jar",{"_index":2509,"title":{},"name":{},"text":{"38":{}},"component":{}}],["1.0578",{"_index":2228,"title":{},"name":{},"text":{"33":{}},"component":{}}],["1.22",{"_index":2977,"title":{},"name":{},"text":{"50":{}},"component":{}}],["1.22.0.final",{"_index":1687,"title":{},"name":{},"text":{"21":{}},"component":{}}],["1.22.1.final",{"_index":3104,"title":{},"name":{},"text":{"55":{}},"component":{}}],["1.27.2",{"_index":2209,"title":{},"name":{},"text":{"33":{}},"component":{}}],["1.3.8",{"_index":250,"title":{},"name":{},"text":{"2":{}},"component":{}}],["1.302",{"_index":3105,"title":{},"name":{},"text":{"55":{}},"component":{}}],["1.41",{"_index":3015,"title":{},"name":{},"text":{"50":{}},"component":{}}],["1.41.0",{"_index":3014,"title":{},"name":{},"text":{"50":{}},"component":{}}],["1.43",{"_index":185,"title":{"2":{}},"name":{},"text":{},"component":{}}],["1.43.0",{"_index":3028,"title":{"52-1":{}},"name":{},"text":{"52":{}},"component":{}}],["1.67.0",{"_index":3397,"title":{},"name":{},"text":{"74":{}},"component":{}}],["1/2",{"_index":3003,"title":{},"name":{},"text":{"50":{}},"component":{}}],["10",{"_index":482,"title":{},"name":{},"text":{"5":{},"6":{},"14":{},"17":{},"33":{},"42":{},"57":{},"58":{},"59":{},"66":{},"74":{}},"component":{}}],["10.0.0.0/24",{"_index":2992,"title":{},"name":{},"text":{"50":{}},"component":{}}],["10.100.120.208",{"_index":3137,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.102.87.208",{"_index":3134,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.106.202.150",{"_index":3130,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.108.153.180",{"_index":3139,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.111.19.134",{"_index":3126,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.96.0.0/12",{"_index":3222,"title":{},"name":{},"text":{"58":{}},"component":{}}],["10.97.110.167",{"_index":3117,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.98.150.141",{"_index":3128,"title":{},"name":{},"text":{"57":{}},"component":{}}],["10.98.64.78",{"_index":3121,"title":{},"name":{},"text":{"57":{}},"component":{}}],["100",{"_index":1477,"title":{},"name":{},"text":{"18":{}},"component":{}}],["1000",{"_index":1890,"title":{},"name":{},"text":{"27":{},"42":{}},"component":{}}],["10000",{"_index":427,"title":{},"name":{},"text":{"5":{},"16":{},"30":{}},"component":{}}],["1017afb1",{"_index":1188,"title":{},"name":{},"text":{"14":{}},"component":{}}],["11",{"_index":1575,"title":{},"name":{},"text":{"21":{},"33":{},"41":{},"42":{},"66":{},"74":{}},"component":{}}],["11:latest\\n\\nenv",{"_index":2839,"title":{},"name":{},"text":{"47":{}},"component":{}}],["12",{"_index":2581,"title":{},"name":{},"text":{"42":{},"50":{},"66":{},"74":{}},"component":{}}],["12.2",{"_index":1399,"title":{},"name":{},"text":{"17":{}},"component":{}}],["123",{"_index":658,"title":{},"name":{},"text":{"6":{}},"component":{}}],["12345",{"_index":1507,"title":{},"name":{},"text":{"19":{}},"component":{}}],["124859",{"_index":3221,"title":{},"name":{},"text":{"58":{}},"component":{}}],["128mi",{"_index":2868,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["13",{"_index":3423,"title":{},"name":{},"text":{"74":{}},"component":{}}],["13:43:45,077",{"_index":2771,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,215",{"_index":2772,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,219",{"_index":2773,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,230",{"_index":2775,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,239",{"_index":2781,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:43:45,244",{"_index":2786,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:44:36,666",{"_index":2741,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:44:36,669",{"_index":2743,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:44:36,673",{"_index":2745,"title":{},"name":{},"text":{"45":{}},"component":{}}],["13:44:36,676",{"_index":2747,"title":{},"name":{},"text":{"45":{}},"component":{}}],["14",{"_index":3424,"title":{},"name":{},"text":{"74":{}},"component":{}}],["14:38:09,741",{"_index":1629,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:09,840",{"_index":1631,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:09,843",{"_index":1635,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,877",{"_index":1640,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,878",{"_index":1644,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,879",{"_index":1645,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,880",{"_index":1651,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,889",{"_index":1655,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:12,890",{"_index":1664,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,375",{"_index":1677,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,377",{"_index":1682,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,378",{"_index":1685,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,379",{"_index":1691,"title":{},"name":{},"text":{"21":{}},"component":{}}],["14:38:13,380",{"_index":1693,"title":{},"name":{},"text":{"21":{}},"component":{}}],["15",{"_index":844,"title":{},"name":{},"text":{"9":{},"17":{},"74":{}},"component":{}}],["15.558",{"_index":2514,"title":{},"name":{},"text":{"38":{}},"component":{}}],["154.0",{"_index":1794,"title":{},"name":{},"text":{"25":{}},"component":{}}],["154ae8f2df21",{"_index":1221,"title":{},"name":{},"text":{"14":{}},"component":{}}],["156498b7096d",{"_index":1184,"title":{},"name":{},"text":{"14":{}},"component":{}}],["1564baf907a1",{"_index":2227,"title":{},"name":{},"text":{"33":{}},"component":{}}],["162.0",{"_index":1798,"title":{},"name":{},"text":{"25":{}},"component":{}}],["16384",{"_index":2995,"title":{},"name":{},"text":{"50":{}},"component":{}}],["16:36:11,461",{"_index":2478,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:11,708",{"_index":2482,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:12,004",{"_index":2494,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:14,486",{"_index":2496,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:14,612",{"_index":2497,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:14,613",{"_index":2501,"title":{},"name":{},"text":{"38":{}},"component":{}}],["16:36:16,559",{"_index":2504,"title":{},"name":{},"text":{"38":{}},"component":{}}],["17:38:09,692",{"_index":1646,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:09,705",{"_index":1652,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:12,332",{"_index":1656,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:12,405",{"_index":1665,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:12,636",{"_index":1675,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:12.332",{"_index":1658,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:13,105",{"_index":1678,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:13,132",{"_index":1683,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:13,181",{"_index":1686,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17:38:13,182",{"_index":1692,"title":{},"name":{},"text":{"21":{}},"component":{}}],["17ebabdb3585",{"_index":2737,"title":{},"name":{},"text":{"45":{}},"component":{}}],["18000/tcp",{"_index":3138,"title":{},"name":{},"text":{"57":{}},"component":{}}],["185\\nenv",{"_index":2857,"title":{},"name":{},"text":{"47":{}},"component":{}}],["1912",{"_index":2764,"title":{},"name":{},"text":{"45":{}},"component":{}}],["192.168.58.2",{"_index":3223,"title":{},"name":{},"text":{"58":{}},"component":{}}],["1c12",{"_index":2728,"title":{},"name":{},"text":{"45":{}},"component":{}}],["1d174d25",{"_index":1509,"title":{},"name":{},"text":{"19":{}},"component":{}}],["1e37",{"_index":2714,"title":{},"name":{},"text":{"45":{}},"component":{}}],["2",{"_index":338,"title":{},"name":{},"text":{"4":{},"6":{},"9":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"19":{},"21":{},"23":{},"24":{},"26":{},"27":{},"29":{},"32":{},"33":{},"34":{},"36":{},"38":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"53":{},"54":{},"57":{},"58":{},"59":{},"62":{},"63":{},"65":{},"66":{},"69":{},"70":{},"72":{},"74":{}},"component":{}}],["2.0",{"_index":125,"title":{"33":{},"32-5":{},"33-1":{}},"name":{},"text":{"1":{},"32":{},"33":{}},"component":{}}],["2.0.0",{"_index":1305,"title":{},"name":{},"text":{"16":{},"27":{},"34":{}},"component":{}}],["2.10.2.final",{"_index":3207,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["2.1156",{"_index":2229,"title":{},"name":{},"text":{"33":{}},"component":{}}],["2.16.9.final",{"_index":1633,"title":{},"name":{},"text":{"21":{},"64":{}},"component":{}}],["2.9.0.final",{"_index":1688,"title":{},"name":{},"text":{"21":{}},"component":{}}],["2.9.2.final",{"_index":2498,"title":{},"name":{},"text":{"38":{},"55":{}},"component":{}}],["2/2",{"_index":3005,"title":{},"name":{},"text":{"50":{}},"component":{}}],["20",{"_index":477,"title":{},"name":{},"text":{"5":{},"50":{}},"component":{}}],["20.10.7",{"_index":2208,"title":{},"name":{},"text":{"33":{}},"component":{}}],["200",{"_index":2076,"title":{},"name":{},"text":{"32":{},"33":{},"36":{}},"component":{}}],["2000",{"_index":1833,"title":{},"name":{},"text":{"26":{}},"component":{}}],["201",{"_index":2472,"title":{},"name":{},"text":{"38":{}},"component":{}}],["2018",{"_index":659,"title":{},"name":{},"text":{"6":{}},"component":{}}],["2022",{"_index":1514,"title":{},"name":{},"text":{"19":{},"21":{},"26":{},"33":{},"38":{},"45":{},"57":{},"58":{},"59":{}},"component":{}}],["2033",{"_index":1229,"title":{},"name":{},"text":{"14":{}},"component":{}}],["218.0",{"_index":1796,"title":{},"name":{},"text":{"25":{}},"component":{}}],["21bb14db61f0",{"_index":1404,"title":{},"name":{},"text":{"17":{}},"component":{}}],["21bb14db61f0\",\"source\":\"/local/curl\",\"type\":\"kogito.serverless.loanbroker.aggregated.quotes.response\",\"data",{"_index":1388,"title":{},"name":{},"text":{"17":{}},"component":{}}],["22.3.0",{"_index":3073,"title":{},"name":{},"text":{"55":{}},"component":{}}],["23",{"_index":3187,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["23:53:38",{"_index":3188,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["24",{"_index":841,"title":{},"name":{},"text":{"9":{},"45":{}},"component":{}}],["25",{"_index":1628,"title":{},"name":{},"text":{"21":{}},"component":{}}],["250m",{"_index":2867,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["25t16:22:53.735128049",{"_index":1526,"title":{},"name":{},"text":{"19":{}},"component":{}}],["25t16:29:27.320408379",{"_index":1541,"title":{},"name":{},"text":{"19":{}},"component":{}}],["25t16:30:35.461988261",{"_index":1516,"title":{},"name":{},"text":{"19":{}},"component":{}}],["2669m",{"_index":2513,"title":{},"name":{},"text":{"38":{}},"component":{}}],["27t04:35:54.631z\\\",\\\"retri",{"_index":1231,"title":{},"name":{},"text":{"14":{}},"component":{}}],["2acf710d",{"_index":3108,"title":{},"name":{},"text":{"55":{}},"component":{}}],["2d9184dd4b3d\",\"workflowdata\":{\"greeting\":\"hello",{"_index":1707,"title":{},"name":{},"text":{"21":{}},"component":{}}],["2fcda936e00",{"_index":2756,"title":{},"name":{},"text":{"45":{}},"component":{}}],["2s",{"_index":1777,"title":{},"name":{},"text":{"25":{}},"component":{}}],["3",{"_index":356,"title":{},"name":{},"text":{"4":{},"6":{},"9":{},"11":{},"13":{},"16":{},"17":{},"21":{},"23":{},"24":{},"26":{},"29":{},"32":{},"33":{},"36":{},"38":{},"42":{},"43":{},"45":{},"46":{},"53":{},"54":{},"57":{},"58":{},"59":{},"62":{},"65":{},"66":{},"74":{}},"component":{}}],["3.0.3",{"_index":2179,"title":{},"name":{},"text":{"33":{},"34":{},"36":{}},"component":{}}],["3.1.0",{"_index":2074,"title":{},"name":{},"text":{"32":{}},"component":{}}],["3.4.2.final",{"_index":2481,"title":{},"name":{},"text":{"38":{}},"component":{}}],["3.635",{"_index":2499,"title":{},"name":{},"text":{"38":{}},"component":{}}],["3.8.6",{"_index":1577,"title":{},"name":{},"text":{"21":{},"33":{},"41":{}},"component":{}}],["30",{"_index":1390,"title":{},"name":{},"text":{"17":{},"25":{},"46":{},"57":{},"58":{},"59":{}},"component":{}}],["300000",{"_index":1389,"title":{},"name":{},"text":{"17":{}},"component":{}}],["32.0",{"_index":2407,"title":{},"name":{},"text":{"36":{}},"component":{}}],["3301",{"_index":2709,"title":{},"name":{},"text":{"45":{}},"component":{}}],["3349741271d5",{"_index":2762,"title":{},"name":{},"text":{"45":{}},"component":{}}],["36ee",{"_index":2367,"title":{},"name":{},"text":{"35":{}},"component":{}}],["36ef",{"_index":2955,"title":{},"name":{},"text":{"49":{}},"component":{}}],["399ce304",{"_index":2223,"title":{},"name":{},"text":{"33":{}},"component":{}}],["3aa1ace60e79",{"_index":1524,"title":{},"name":{},"text":{"19":{}},"component":{}}],["3h16m",{"_index":625,"title":{},"name":{},"text":{"6":{},"24":{}},"component":{}}],["4",{"_index":359,"title":{},"name":{},"text":{"4":{},"9":{},"13":{},"16":{},"17":{},"21":{},"23":{},"26":{},"29":{},"32":{},"33":{},"36":{},"38":{},"42":{},"43":{},"46":{},"50":{},"57":{},"58":{},"59":{},"62":{},"65":{},"66":{},"74":{}},"component":{}}],["4.11",{"_index":2976,"title":{},"name":{},"text":{"50":{}},"component":{}}],["4.691",{"_index":1689,"title":{},"name":{},"text":{"21":{}},"component":{}}],["4.885",{"_index":3154,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["4.x",{"_index":3232,"title":{},"name":{},"text":{"59":{}},"component":{}}],["400",{"_index":992,"title":{},"name":{},"text":{"11":{}},"component":{}}],["4061",{"_index":2723,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4062",{"_index":1705,"title":{},"name":{},"text":{"21":{}},"component":{}}],["4066",{"_index":1154,"title":{},"name":{},"text":{"14":{}},"component":{}}],["4091",{"_index":1668,"title":{},"name":{},"text":{"21":{}},"component":{}}],["4096",{"_index":2990,"title":{},"name":{},"text":{"50":{}},"component":{}}],["40b7",{"_index":2368,"title":{},"name":{},"text":{"35":{}},"component":{}}],["40ea",{"_index":2729,"title":{},"name":{},"text":{"45":{}},"component":{}}],["41495513",{"_index":1403,"title":{},"name":{},"text":{"17":{}},"component":{}}],["4291",{"_index":1211,"title":{},"name":{},"text":{"14":{}},"component":{}}],["42d4",{"_index":2360,"title":{},"name":{},"text":{"35":{}},"component":{}}],["432d",{"_index":2778,"title":{},"name":{},"text":{"45":{}},"component":{}}],["434b",{"_index":2710,"title":{},"name":{},"text":{"45":{}},"component":{}}],["43a2",{"_index":1197,"title":{},"name":{},"text":{"14":{}},"component":{}}],["43m",{"_index":3132,"title":{},"name":{},"text":{"57":{}},"component":{}}],["440e",{"_index":1190,"title":{},"name":{},"text":{"14":{}},"component":{}}],["44729",{"_index":1674,"title":{},"name":{},"text":{"21":{}},"component":{}}],["44m",{"_index":3119,"title":{},"name":{},"text":{"57":{}},"component":{}}],["4517",{"_index":2760,"title":{},"name":{},"text":{"45":{}},"component":{}}],["457c2d37d2fe",{"_index":1513,"title":{},"name":{},"text":{"19":{}},"component":{}}],["45ef",{"_index":2361,"title":{},"name":{},"text":{"35":{}},"component":{}}],["45fd",{"_index":1744,"title":{},"name":{},"text":{"23":{}},"component":{}}],["46ac",{"_index":1510,"title":{},"name":{},"text":{"19":{}},"component":{}}],["4730",{"_index":2312,"title":{},"name":{},"text":{"34":{}},"component":{}}],["4785",{"_index":1511,"title":{},"name":{},"text":{"19":{}},"component":{}}],["47af",{"_index":1182,"title":{},"name":{},"text":{"14":{}},"component":{}}],["47d7",{"_index":2234,"title":{},"name":{},"text":{"33":{}},"component":{}}],["481d",{"_index":3110,"title":{},"name":{},"text":{"55":{}},"component":{}}],["486d",{"_index":2225,"title":{},"name":{},"text":{"33":{}},"component":{}}],["48ba",{"_index":2956,"title":{},"name":{},"text":{"49":{}},"component":{}}],["48c9",{"_index":1110,"title":{},"name":{},"text":{"13":{}},"component":{}}],["4936",{"_index":2449,"title":{},"name":{},"text":{"38":{}},"component":{}}],["4956",{"_index":1538,"title":{},"name":{},"text":{"19":{}},"component":{}}],["4[0",{"_index":994,"title":{},"name":{},"text":{"11":{}},"component":{}}],["4a81",{"_index":1386,"title":{},"name":{},"text":{"17":{}},"component":{}}],["4b34",{"_index":2765,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4b35e85c2406\",\"workflowdata\":{\"result\":\"abc",{"_index":1103,"title":{},"name":{},"text":{"13":{}},"component":{}}],["4b8e",{"_index":2735,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4b94408d",{"_index":2776,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4bd2",{"_index":3171,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["4c0e",{"_index":2754,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4c3f",{"_index":1206,"title":{},"name":{},"text":{"14":{}},"component":{}}],["4ca9",{"_index":2319,"title":{},"name":{},"text":{"34":{}},"component":{}}],["4cf1",{"_index":1219,"title":{},"name":{},"text":{"14":{}},"component":{}}],["4d7a",{"_index":2715,"title":{},"name":{},"text":{"45":{}},"component":{}}],["4d94",{"_index":1522,"title":{},"name":{},"text":{"19":{},"45":{}},"component":{}}],["4e0b",{"_index":1756,"title":{},"name":{},"text":{"24":{}},"component":{}}],["4e18",{"_index":2450,"title":{},"name":{},"text":{"38":{}},"component":{}}],["4e6c",{"_index":2923,"title":{},"name":{},"text":{"47":{}},"component":{}}],["4f25",{"_index":1101,"title":{},"name":{},"text":{"13":{}},"component":{}}],["4fb4",{"_index":1529,"title":{},"name":{},"text":{"19":{}},"component":{}}],["4fdc",{"_index":2248,"title":{},"name":{},"text":{"33":{}},"component":{}}],["5",{"_index":664,"title":{},"name":{},"text":{"6":{},"13":{},"16":{},"21":{},"33":{},"36":{},"38":{},"42":{},"43":{},"57":{},"58":{},"59":{},"65":{},"66":{},"74":{}},"component":{}}],["5.061",{"_index":3155,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["5.322",{"_index":3157,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["5.460",{"_index":3160,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["50051",{"_index":2351,"title":{},"name":{},"text":{"35":{}},"component":{}}],["500m",{"_index":2869,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["51fd",{"_index":2318,"title":{},"name":{},"text":{"34":{}},"component":{}}],["5749",{"_index":1189,"title":{},"name":{},"text":{"14":{}},"component":{}}],["5952",{"_index":2311,"title":{},"name":{},"text":{"34":{}},"component":{}}],["5df1ed6",{"_index":1666,"title":{},"name":{},"text":{"21":{}},"component":{}}],["6",{"_index":1083,"title":{},"name":{},"text":{"13":{},"16":{},"21":{},"26":{},"33":{},"38":{},"42":{},"43":{},"57":{},"58":{},"59":{},"65":{},"66":{},"74":{}},"component":{}}],["6.470",{"_index":1634,"title":{},"name":{},"text":{"21":{}},"component":{}}],["60",{"_index":2610,"title":{},"name":{},"text":{"42":{}},"component":{}}],["60000",{"_index":1892,"title":{},"name":{},"text":{"27":{}},"component":{}}],["610809090d9c",{"_index":2717,"title":{},"name":{},"text":{"45":{}},"component":{}}],["63dd79c4071e",{"_index":2780,"title":{},"name":{},"text":{"45":{}},"component":{}}],["64mi",{"_index":2865,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["6676",{"_index":2753,"title":{},"name":{},"text":{"45":{}},"component":{}}],["679e2cd89394",{"_index":2731,"title":{},"name":{},"text":{"45":{}},"component":{}}],["69019826",{"_index":1527,"title":{},"name":{},"text":{"19":{}},"component":{}}],["6b876bb5894d",{"_index":1192,"title":{},"name":{},"text":{"14":{}},"component":{}}],["6e403a654a30\",\"workflowdata\":{\"name\":\"john\",\"language\":\"english\",\"message\":\"hello",{"_index":2363,"title":{},"name":{},"text":{"35":{}},"component":{}}],["6s",{"_index":3002,"title":{},"name":{},"text":{"50":{}},"component":{}}],["7",{"_index":1085,"title":{},"name":{},"text":{"13":{},"16":{},"21":{},"33":{},"38":{},"42":{},"57":{},"58":{},"59":{},"65":{},"66":{},"74":{}},"component":{}}],["7.819",{"_index":2503,"title":{},"name":{},"text":{"38":{}},"component":{}}],["700",{"_index":1393,"title":{},"name":{},"text":{"17":{}},"component":{}}],["734907f0fef2",{"_index":2767,"title":{},"name":{},"text":{"45":{}},"component":{}}],["7465d9ca7ca7",{"_index":1208,"title":{},"name":{},"text":{"14":{}},"component":{}}],["7640a0af",{"_index":1520,"title":{},"name":{},"text":{"19":{}},"component":{}}],["777adb97",{"_index":1742,"title":{},"name":{},"text":{"23":{}},"component":{}}],["782d",{"_index":1755,"title":{},"name":{},"text":{"24":{}},"component":{}}],["7a15",{"_index":1667,"title":{},"name":{},"text":{"21":{}},"component":{}}],["7a36b26094bd",{"_index":1199,"title":{},"name":{},"text":{"14":{}},"component":{}}],["7b2b",{"_index":2247,"title":{},"name":{},"text":{"33":{}},"component":{}}],["7e4a",{"_index":3109,"title":{},"name":{},"text":{"55":{}},"component":{}}],["7f63872c92f4\",\"workflowdata\":{\"result\":\"bc",{"_index":1112,"title":{},"name":{},"text":{"13":{}},"component":{}}],["7m6",{"_index":3167,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["7s",{"_index":3004,"title":{},"name":{},"text":{"50":{}},"component":{}}],["8",{"_index":650,"title":{},"name":{},"text":{"6":{},"13":{},"21":{},"33":{},"42":{},"47":{},"50":{},"65":{},"66":{},"74":{}},"component":{}}],["80",{"_index":1307,"title":{},"name":{},"text":{"16":{}},"component":{}}],["80/tcp",{"_index":3131,"title":{},"name":{},"text":{"57":{}},"component":{}}],["8080",{"_index":1309,"title":{},"name":{},"text":{"16":{},"25":{},"27":{},"48":{},"57":{},"58":{},"59":{}},"component":{}}],["8080/tcp",{"_index":3127,"title":{},"name":{},"text":{"57":{}},"component":{}}],["8080:8080",{"_index":3103,"title":{},"name":{},"text":{"55":{}},"component":{}}],["8080\\nuser",{"_index":2856,"title":{},"name":{},"text":{"47":{}},"component":{}}],["8082",{"_index":752,"title":{},"name":{},"text":{"6":{}},"component":{}}],["8180",{"_index":500,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["8180:8080",{"_index":1286,"title":{},"name":{},"text":{"16":{}},"component":{}}],["81ad",{"_index":1210,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8276",{"_index":235,"title":{},"name":{},"text":{"2":{}},"component":{}}],["82cd",{"_index":2716,"title":{},"name":{},"text":{"45":{}},"component":{}}],["837e",{"_index":3170,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["8479",{"_index":1387,"title":{},"name":{},"text":{"17":{}},"component":{}}],["84967277eef6",{"_index":1213,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8555",{"_index":2755,"title":{},"name":{},"text":{"45":{}},"component":{}}],["85ab59366fe6",{"_index":1540,"title":{},"name":{},"text":{"19":{}},"component":{}}],["85bb",{"_index":2779,"title":{},"name":{},"text":{"45":{}},"component":{}}],["8601",{"_index":836,"title":{},"name":{},"text":{"9":{}},"component":{}}],["86cc",{"_index":1102,"title":{},"name":{},"text":{"13":{}},"component":{}}],["870e",{"_index":1207,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8775",{"_index":1539,"title":{},"name":{},"text":{"19":{}},"component":{}}],["8785",{"_index":264,"title":{},"name":{},"text":{"2":{}},"component":{}}],["8794",{"_index":202,"title":{},"name":{},"text":{"2":{}},"component":{}}],["880b",{"_index":1530,"title":{},"name":{},"text":{"19":{}},"component":{}}],["89fa54d25e98",{"_index":2958,"title":{},"name":{},"text":{"49":{}},"component":{}}],["8a5e",{"_index":2362,"title":{},"name":{},"text":{"35":{}},"component":{}}],["8a8b",{"_index":2783,"title":{},"name":{},"text":{"45":{}},"component":{}}],["8b9b",{"_index":1191,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8c13",{"_index":1205,"title":{},"name":{},"text":{"14":{}},"component":{}}],["8cad",{"_index":2777,"title":{},"name":{},"text":{"45":{}},"component":{}}],["8e96",{"_index":2724,"title":{},"name":{},"text":{"45":{}},"component":{}}],["8gb",{"_index":2989,"title":{},"name":{},"text":{"50":{}},"component":{}}],["9",{"_index":1089,"title":{},"name":{},"text":{"13":{},"33":{},"38":{},"42":{},"65":{},"66":{},"74":{}},"component":{}}],["9+&@#/%=~_",{"_index":3413,"title":{},"name":{},"text":{"74":{}},"component":{}}],["9+&@#/%?=_",{"_index":3412,"title":{},"name":{},"text":{"74":{}},"component":{}}],["9090/tcp,8008/tcp",{"_index":3129,"title":{},"name":{},"text":{"57":{}},"component":{}}],["9090/tcp,8008/tcp,443/tcp",{"_index":3135,"title":{},"name":{},"text":{"57":{}},"component":{}}],["9090/tcp,8008/tcp,80/tcp,81/tcp,443/tcp",{"_index":3118,"title":{},"name":{},"text":{"57":{}},"component":{}}],["9090/tcp,8008/tcp,8080/tcp",{"_index":3122,"title":{},"name":{},"text":{"57":{}},"component":{}}],["910d8e06728d",{"_index":2725,"title":{},"name":{},"text":{"45":{}},"component":{}}],["9158",{"_index":232,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9218",{"_index":229,"title":{},"name":{},"text":{"2":{}},"component":{}}],["925c",{"_index":3111,"title":{},"name":{},"text":{"55":{}},"component":{}}],["9311",{"_index":2924,"title":{},"name":{},"text":{"47":{}},"component":{}}],["9321",{"_index":270,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9354",{"_index":2235,"title":{},"name":{},"text":{"33":{}},"component":{}}],["938264210",{"_index":1642,"title":{},"name":{},"text":{"21":{}},"component":{}}],["93dd",{"_index":2369,"title":{},"name":{},"text":{"35":{}},"component":{}}],["9415",{"_index":240,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9434",{"_index":243,"title":{},"name":{},"text":{"2":{}},"component":{}}],["948547ffd",{"_index":2998,"title":{},"name":{},"text":{"50":{}},"component":{}}],["953f07a7",{"_index":1536,"title":{},"name":{},"text":{"19":{}},"component":{}}],["9561",{"_index":256,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9603",{"_index":226,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9605",{"_index":223,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9611",{"_index":251,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9613",{"_index":199,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9614",{"_index":195,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9625",{"_index":248,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9633",{"_index":206,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9643",{"_index":221,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9653",{"_index":211,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9654",{"_index":259,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9659",{"_index":255,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9665",{"_index":217,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9674e3e",{"_index":1204,"title":{},"name":{},"text":{"14":{}},"component":{}}],["9679",{"_index":269,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9683",{"_index":214,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9702",{"_index":187,"title":{},"name":{},"text":{"2":{}},"component":{}}],["9706",{"_index":2722,"title":{},"name":{},"text":{"45":{}},"component":{}}],["984b5c6c",{"_index":2954,"title":{},"name":{},"text":{"49":{}},"component":{}}],["99",{"_index":1660,"title":{},"name":{},"text":{"21":{}},"component":{}}],["9969",{"_index":1745,"title":{},"name":{},"text":{"23":{}},"component":{}}],["998c",{"_index":2451,"title":{},"name":{},"text":{"38":{}},"component":{}}],["9]{2",{"_index":995,"title":{},"name":{},"text":{"11":{}},"component":{}}],["9c1b",{"_index":1212,"title":{},"name":{},"text":{"14":{}},"component":{}}],["9d543764",{"_index":2782,"title":{},"name":{},"text":{"45":{}},"component":{}}],["9d74",{"_index":1220,"title":{},"name":{},"text":{"14":{}},"component":{}}],["9d9d",{"_index":1523,"title":{},"name":{},"text":{"19":{}},"component":{}}],["_",{"_index":1624,"title":{},"name":{},"text":{"21":{},"32":{},"34":{},"60":{}},"component":{}}],["_/_/|_/_/|_|\\____/___",{"_index":1626,"title":{},"name":{},"text":{"21":{}},"component":{}}],["__",{"_index":1619,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["___",{"_index":1622,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["___\\_\\____/_",{"_index":1625,"title":{},"name":{},"text":{"21":{}},"component":{}}],["____",{"_index":1620,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["_____",{"_index":1621,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["______",{"_index":1623,"title":{},"name":{},"text":{"21":{},"60":{}},"component":{}}],["_______",{"_index":3259,"title":{},"name":{},"text":{"60":{}},"component":{}}],["________",{"_index":3258,"title":{},"name":{},"text":{"60":{}},"component":{}}],["_________",{"_index":3260,"title":{},"name":{},"text":{"60":{}},"component":{}}],["____________",{"_index":3261,"title":{},"name":{},"text":{"60":{}},"component":{}}],["____________________",{"_index":3264,"title":{},"name":{},"text":{"60":{}},"component":{}}],["__________________________",{"_index":3265,"title":{},"name":{},"text":{"60":{}},"component":{}}],["______________________________",{"_index":3262,"title":{},"name":{},"text":{"60":{}},"component":{}}],["_dev_quarkus_rest_client_stock_svc_yaml_url=http://localhost:8383",{"_index":2323,"title":{},"name":{},"text":{"34":{}},"component":{}}],["_swf_eval_temp",{"_index":465,"title":{},"name":{},"text":{"5":{}},"component":{}}],["a0e5e0265fcb\",\"workflowdata\":{\"name\":\"john\",\"language\":\"english\",\"greeting\":\"hello",{"_index":3173,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["a2328f969c73\",\"workflowdata\":{\"name\":\"john\",\"response\":[{\"message\":\"hello",{"_index":2370,"title":{},"name":{},"text":{"35":{}},"component":{}}],["a363",{"_index":2736,"title":{},"name":{},"text":{"45":{}},"component":{}}],["a3e4",{"_index":1111,"title":{},"name":{},"text":{"13":{}},"component":{}}],["a577",{"_index":1198,"title":{},"name":{},"text":{"14":{}},"component":{}}],["a6c4",{"_index":2759,"title":{},"name":{},"text":{"45":{}},"component":{}}],["a6d2",{"_index":1706,"title":{},"name":{},"text":{"21":{}},"component":{}}],["a83",{"_index":1183,"title":{},"name":{},"text":{"14":{}},"component":{}}],["a95f95c9c190\",\"workflowdata\":{\"name\":\"kogito\",\"greeting\":\"greet",{"_index":1758,"title":{},"name":{},"text":{"24":{}},"component":{}}],["a9b",{"_index":1757,"title":{},"name":{},"text":{"24":{}},"component":{}}],["a9ef",{"_index":1385,"title":{},"name":{},"text":{"17":{}},"component":{}}],["a_unique_id_42",{"_index":672,"title":{},"name":{},"text":{"6":{}},"component":{}}],["aa11",{"_index":2957,"title":{},"name":{},"text":{"49":{}},"component":{}}],["aaee",{"_index":2784,"title":{},"name":{},"text":{"45":{}},"component":{}}],["ab_jolokia_off=\\\"\\\"\\nenv",{"_index":2858,"title":{},"name":{},"text":{"47":{}},"component":{}}],["abil",{"_index":3318,"title":{},"name":{},"text":{"65":{}},"component":{}}],["abort",{"_index":970,"title":{},"name":{},"text":{"11":{},"14":{},"66":{}},"component":{}}],["abov",{"_index":531,"title":{},"name":{},"text":{"6":{},"27":{},"31":{},"47":{},"49":{},"60":{}},"component":{}}],["absolut",{"_index":2347,"title":{},"name":{},"text":{"35":{}},"component":{}}],["abstract",{"_index":1348,"title":{},"name":{},"text":{"17":{},"18":{}},"component":{}}],["ac16",{"_index":1218,"title":{},"name":{},"text":{"14":{}},"component":{}}],["acceler",{"_index":3359,"title":{},"name":{},"text":{"68":{}},"component":{}}],["accept",{"_index":953,"title":{},"name":{},"text":{"10":{},"11":{},"13":{},"24":{},"33":{},"34":{},"35":{},"38":{},"42":{}},"component":{}}],["accept(contenttype.json",{"_index":1990,"title":{},"name":{},"text":{"29":{},"38":{}},"component":{}}],["accept:application/json",{"_index":2356,"title":{},"name":{},"text":{"35":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["access",{"_index":511,"title":{"6-6":{},"36-4":{},"62-5":{}},"name":{},"text":{"6":{},"9":{},"14":{},"18":{},"21":{},"26":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"47":{},"49":{},"53":{},"54":{},"57":{},"59":{},"64":{},"67":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["accord",{"_index":824,"title":{},"name":{},"text":{"8":{},"12":{},"32":{},"36":{},"46":{}},"component":{}}],["accordingli",{"_index":1969,"title":{},"name":{},"text":{"28":{},"46":{},"59":{}},"component":{}}],["account",{"_index":1277,"title":{"71-1":{}},"name":{},"text":{"16":{},"19":{},"60":{},"67":{},"68":{},"71":{},"74":{}},"component":{}}],["accur",{"_index":2130,"title":{},"name":{},"text":{"33":{}},"component":{}}],["achiev",{"_index":371,"title":{},"name":{},"text":{"4":{},"37":{},"69":{}},"component":{}}],["acknowledgment(strategy.post_process",{"_index":1051,"title":{},"name":{},"text":{"12":{}},"component":{}}],["acm",{"_index":2127,"title":{},"name":{},"text":{"33":{}},"component":{}}],["acme_financial_oauth",{"_index":2188,"title":{},"name":{},"text":{"33":{}},"component":{}}],["acme_financial_service_oauth",{"_index":2206,"title":{},"name":{},"text":{"33":{}},"component":{}}],["acquir",{"_index":1800,"title":{},"name":{},"text":{"26":{}},"component":{}}],["act",{"_index":1350,"title":{},"name":{},"text":{"17":{},"19":{},"42":{}},"component":{}}],["action",{"_index":526,"title":{},"name":{},"text":{"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"19":{},"20":{},"23":{},"24":{},"27":{},"28":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{},"53":{},"60":{},"65":{},"66":{},"67":{},"74":{}},"component":{}}],["actiondatafilt",{"_index":957,"title":{},"name":{},"text":{"10":{},"33":{},"45":{}},"component":{}}],["actionmod",{"_index":2293,"title":{},"name":{},"text":{"34":{},"36":{}},"component":{}}],["activ",{"_index":834,"title":{"66-2":{}},"name":{},"text":{"9":{},"13":{},"14":{},"19":{},"21":{},"27":{},"34":{},"38":{},"45":{},"47":{},"49":{},"51":{},"55":{},"57":{},"58":{},"59":{},"66":{},"67":{},"69":{}},"component":{}}],["activateaccount",{"_index":1503,"title":{},"name":{},"text":{"19":{}},"component":{}}],["activateaccountev",{"_index":1502,"title":{},"name":{},"text":{"19":{}},"component":{}}],["activatedaccount",{"_index":1505,"title":{},"name":{},"text":{"19":{}},"component":{}}],["activatedaccountev",{"_index":1504,"title":{},"name":{},"text":{"19":{}},"component":{}}],["activity/servic",{"_index":2429,"title":{},"name":{},"text":{"37":{}},"component":{}}],["actual",{"_index":344,"title":{},"name":{},"text":{"4":{}},"component":{}}],["ad",{"_index":191,"title":{"15-2":{},"43-1":{}},"name":{},"text":{"2":{},"6":{},"10":{},"12":{},"14":{},"15":{},"16":{},"23":{},"25":{},"27":{},"29":{},"32":{},"35":{},"36":{},"42":{},"43":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"65":{},"66":{},"67":{},"74":{}},"component":{}}],["ad9c",{"_index":1704,"title":{},"name":{},"text":{"21":{}},"component":{}}],["adapt",{"_index":3298,"title":{},"name":{},"text":{"60":{}},"component":{}}],["add",{"_index":140,"title":{"17-1":{},"17-2":{}},"name":{},"text":{"1":{},"2":{},"3":{},"6":{},"7":{},"8":{},"9":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"41":{},"42":{},"43":{},"45":{},"48":{},"51":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"64":{},"66":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["addit",{"_index":300,"title":{"53":{},"4-12":{},"6-21":{},"7-5":{},"8-2":{},"9-10":{},"10-4":{},"11-3":{},"12-2":{},"13-4":{},"14-15":{},"15-3":{},"16-8":{},"17-6":{},"18-4":{},"19-2":{},"21-6":{},"23-5":{},"24-2":{},"26-4":{},"29-3":{},"30-2":{},"32-7":{},"33-4":{},"34-9":{},"36-6":{},"37-3":{},"38-1":{},"41-6":{},"42-4":{},"43-4":{},"45-4":{},"46-10":{},"47-13":{},"48-3":{},"49-13":{},"50-9":{},"53-1":{},"53-3":{},"54-4":{},"55-5":{},"60-7":{},"70-2":{},"73-2":{}},"name":{},"text":{"3":{},"4":{},"9":{},"17":{},"20":{},"27":{},"28":{},"29":{},"32":{},"34":{},"46":{},"49":{},"53":{},"60":{}},"component":{}}],["addition",{"_index":1902,"title":{},"name":{},"text":{"27":{},"46":{},"66":{}},"component":{}}],["addon",{"_index":220,"title":{"14-14":{}},"name":{},"text":{"2":{},"6":{},"9":{},"14":{},"15":{},"17":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"31":{},"38":{},"50":{},"51":{},"57":{},"58":{},"59":{},"60":{},"64":{},"66":{}},"component":{}}],["addonsconfig",{"_index":2484,"title":{},"name":{},"text":{"38":{}},"component":{}}],["addonsconfig{usepersistence=fals",{"_index":2485,"title":{},"name":{},"text":{"38":{}},"component":{}}],["address",{"_index":1360,"title":{"47-8":{}},"name":{},"text":{"17":{},"42":{},"45":{},"47":{},"49":{},"52":{},"54":{},"55":{},"59":{}},"component":{}}],["adjust",{"_index":1339,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["admin",{"_index":2978,"title":{},"name":{},"text":{"50":{}},"component":{}}],["administr",{"_index":311,"title":{},"name":{},"text":{"3":{},"57":{},"71":{}},"component":{}}],["admiss",{"_index":3021,"title":{},"name":{},"text":{"51":{}},"component":{}}],["adopt",{"_index":781,"title":{},"name":{},"text":{"7":{}},"component":{}}],["advanc",{"_index":2812,"title":{},"name":{},"text":{"47":{},"66":{}},"component":{}}],["advantag",{"_index":1547,"title":{},"name":{},"text":{"20":{}},"component":{}}],["aea8",{"_index":1537,"title":{},"name":{},"text":{"19":{}},"component":{}}],["af5d",{"_index":2730,"title":{},"name":{},"text":{"45":{}},"component":{}}],["af60",{"_index":2249,"title":{},"name":{},"text":{"33":{}},"component":{}}],["affect",{"_index":1887,"title":{},"name":{},"text":{"27":{}},"component":{}}],["afteral",{"_index":2573,"title":{},"name":{},"text":{"42":{}},"component":{}}],["ag",{"_index":620,"title":{},"name":{},"text":{"6":{},"24":{},"50":{},"57":{},"58":{},"59":{}},"component":{}}],["again",{"_index":3213,"title":{},"name":{},"text":{"58":{}},"component":{}}],["against",{"_index":93,"title":{},"name":{},"text":{"1":{},"7":{},"10":{},"11":{},"19":{},"33":{}},"component":{}}],["aggreg",{"_index":1438,"title":{},"name":{},"text":{"17":{}},"component":{}}],["aggregatedquotesrespons",{"_index":1429,"title":{},"name":{},"text":{"17":{}},"component":{}}],["agroal",{"_index":1694,"title":{},"name":{},"text":{"21":{},"29":{},"30":{}},"component":{}}],["aim",{"_index":2430,"title":{},"name":{},"text":{"37":{}},"component":{}}],["alert",{"_index":3323,"title":{},"name":{},"text":{"65":{},"66":{}},"component":{}}],["alia",{"_index":2252,"title":{"34-2":{}},"name":{},"text":{"34":{},"58":{}},"component":{}}],["align",{"_index":222,"title":{"51-2":{}},"name":{},"text":{"2":{}},"component":{}}],["allinon",{"_index":1870,"title":{},"name":{},"text":{"27":{}},"component":{}}],["allinone:latest",{"_index":1875,"title":{},"name":{},"text":{"27":{}},"component":{}}],["alloc",{"_index":2204,"title":{},"name":{},"text":{"33":{},"45":{}},"component":{}}],["allof",{"_index":1088,"title":{},"name":{},"text":{"13":{}},"component":{}}],["allow",{"_index":166,"title":{},"name":{},"text":{"1":{},"2":{},"5":{},"6":{},"14":{},"15":{},"16":{},"18":{},"19":{},"29":{},"30":{},"34":{},"42":{},"45":{},"47":{},"59":{},"60":{},"65":{},"66":{},"67":{},"74":{}},"component":{}}],["along",{"_index":2002,"title":{},"name":{},"text":{"30":{},"57":{},"58":{},"59":{},"69":{},"74":{}},"component":{}}],["alongsid",{"_index":3402,"title":{},"name":{},"text":{"74":{}},"component":{}}],["alpha",{"_index":3020,"title":{},"name":{},"text":{"51":{}},"component":{}}],["alphabet",{"_index":2071,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{}}],["alreadi",{"_index":1353,"title":{},"name":{},"text":{"17":{},"31":{},"47":{},"48":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"66":{},"71":{}},"component":{}}],["altern",{"_index":395,"title":{},"name":{},"text":{"4":{},"9":{},"11":{},"17":{},"19":{},"27":{},"28":{},"30":{},"32":{},"33":{},"34":{},"38":{},"43":{},"45":{},"47":{},"49":{},"50":{},"55":{},"60":{}},"component":{}}],["although",{"_index":1355,"title":{},"name":{},"text":{"17":{}},"component":{}}],["alway",{"_index":1317,"title":{},"name":{},"text":{"16":{},"27":{},"35":{},"49":{},"53":{},"68":{}},"component":{}}],["amaz",{"_index":1709,"title":{},"name":{},"text":{"21":{}},"component":{}}],["amount",{"_index":831,"title":{},"name":{},"text":{"9":{},"17":{},"33":{},"63":{}},"component":{}}],["analyz",{"_index":2963,"title":{},"name":{},"text":{"49":{}},"component":{}}],["and/or",{"_index":791,"title":{},"name":{},"text":{"7":{}},"component":{}}],["annot",{"_index":1469,"title":{},"name":{},"text":{"18":{},"29":{},"42":{},"47":{},"49":{},"53":{},"57":{},"58":{},"59":{}},"component":{}}],["anoth",{"_index":1349,"title":{"47-2":{},"49-6":{}},"name":{},"text":{"17":{},"18":{},"30":{},"35":{},"45":{},"47":{},"49":{},"68":{}},"component":{}}],["anymor",{"_index":851,"title":{},"name":{},"text":{"9":{}},"component":{}}],["anyth",{"_index":2892,"title":{},"name":{},"text":{"47":{}},"component":{}}],["apach",{"_index":118,"title":{"18":{}},"name":{},"text":{"1":{},"6":{},"8":{},"12":{},"14":{},"16":{},"17":{},"18":{},"21":{},"23":{},"27":{},"28":{},"29":{},"33":{},"38":{},"55":{}},"component":{}}],["api",{"_index":45,"title":{"14-9":{},"27-12":{},"32-4":{}},"name":{},"text":{"1":{},"2":{},"4":{},"5":{},"14":{},"17":{},"26":{},"27":{},"32":{},"33":{},"34":{},"36":{},"38":{},"42":{},"43":{},"51":{},"60":{},"67":{},"69":{},"71":{},"74":{}},"component":{}}],["api_key_exampl",{"_index":2068,"title":{},"name":{},"text":{"32":{}},"component":{}}],["apicatalog_apis_123_docu",{"_index":2261,"title":{},"name":{},"text":{"34":{}},"component":{}}],["apicurio",{"_index":3415,"title":{},"name":{},"text":{"74":{}},"component":{}}],["apigroup",{"_index":3286,"title":{},"name":{},"text":{"60":{}},"component":{}}],["apikey",{"_index":2057,"title":{},"name":{},"text":{"32":{}},"component":{}}],["apivers",{"_index":1246,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"25":{},"27":{},"47":{},"48":{},"49":{},"52":{},"53":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["app",{"_index":1583,"title":{},"name":{},"text":{"21":{},"24":{},"25":{},"32":{},"33":{},"41":{},"48":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["app.kubernetes.io/nam",{"_index":1303,"title":{},"name":{},"text":{"16":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["app.kubernetes.io/vers",{"_index":1304,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["app.quarkus.io/build",{"_index":3185,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["app.quarkus.io/commit",{"_index":3183,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["app.sh",{"_index":2834,"title":{},"name":{},"text":{"47":{}},"component":{}}],["app/*.jar",{"_index":2851,"title":{},"name":{},"text":{"47":{}},"component":{}}],["app/app",{"_index":2853,"title":{},"name":{},"text":{"47":{}},"component":{}}],["app/lib",{"_index":2849,"title":{},"name":{},"text":{"47":{}},"component":{}}],["app/quarku",{"_index":2217,"title":{},"name":{},"text":{"33":{},"34":{},"47":{},"60":{}},"component":{}}],["appear",{"_index":2677,"title":{},"name":{},"text":{"45":{},"65":{},"66":{},"67":{},"69":{},"71":{},"74":{}},"component":{}}],["appl",{"_index":2525,"title":{},"name":{},"text":{"41":{}},"component":{}}],["appli",{"_index":786,"title":{"65-1":{}},"name":{},"text":{"7":{},"10":{},"11":{},"14":{},"17":{},"25":{},"27":{},"28":{},"31":{},"32":{},"46":{},"47":{},"49":{},"50":{},"53":{},"57":{},"58":{},"59":{},"62":{},"65":{},"66":{},"71":{}},"component":{}}],["applic",{"_index":25,"title":{"3":{},"30":{},"38":{},"57":{},"58":{},"59":{},"71":{},"15-2":{},"21-3":{},"21-4":{},"21-5":{},"29-2":{},"33-2":{},"33-3":{},"34-6":{},"34-7":{},"35-2":{},"42-2":{},"55-1":{},"55-2":{},"55-3":{},"57-2":{},"57-3":{},"57-4":{},"57-5":{},"58-2":{},"58-3":{},"58-4":{},"58-5":{},"59-2":{},"59-4":{},"59-5":{},"59-6":{},"71-1":{},"71-2":{}},"name":{"71":{}},"text":{"1":{},"3":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"67":{},"68":{},"69":{},"70":{},"71":{}},"component":{}}],["applicantworkflow",{"_index":2017,"title":{},"name":{},"text":{"30":{}},"component":{}}],["application.properti",{"_index":676,"title":{},"name":{},"text":{"6":{},"12":{},"14":{},"15":{},"16":{},"17":{},"28":{},"30":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"48":{},"57":{},"58":{},"59":{}},"component":{}}],["application/cloudevents+json",{"_index":648,"title":{},"name":{},"text":{"6":{},"17":{}},"component":{}}],["application/json",{"_index":644,"title":{},"name":{},"text":{"6":{},"13":{},"17":{},"24":{},"33":{},"34":{},"36":{},"38":{},"43":{},"45":{}},"component":{}}],["applications/ki",{"_index":3371,"title":{},"name":{},"text":{"69":{}},"component":{}}],["applicationscop",{"_index":2168,"title":{},"name":{},"text":{"33":{}},"component":{}}],["appreci",{"_index":409,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["approach",{"_index":292,"title":{},"name":{},"text":{"3":{},"6":{},"27":{},"30":{},"35":{},"36":{},"37":{},"41":{},"57":{},"58":{},"59":{},"60":{},"69":{}},"component":{}}],["appropri",{"_index":1437,"title":{},"name":{},"text":{"17":{},"21":{},"27":{},"31":{},"35":{}},"component":{}}],["approv",{"_index":2530,"title":{},"name":{},"text":{"41":{}},"component":{}}],["approvedvisa",{"_index":886,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["apps.openshift.io",{"_index":3292,"title":{},"name":{},"text":{"60":{}},"component":{}}],["apps/v1",{"_index":1312,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["architectur",{"_index":28,"title":{"46-8":{}},"name":{},"text":{"1":{},"27":{},"33":{},"42":{},"45":{},"46":{}},"component":{}}],["arg",{"_index":1836,"title":{},"name":{},"text":{"26":{}},"component":{}}],["arg1",{"_index":1729,"title":{},"name":{},"text":{"23":{}},"component":{}}],["arg2",{"_index":1730,"title":{},"name":{},"text":{"23":{}},"component":{}}],["argument",{"_index":509,"title":{"6-4":{},"6-9":{},"6-14":{},"10-2":{}},"name":{},"text":{"6":{},"9":{},"10":{},"11":{},"14":{},"20":{},"23":{},"24":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{}},"component":{}}],["arithmet",{"_index":713,"title":{},"name":{},"text":{"6":{}},"component":{}}],["around",{"_index":2936,"title":{},"name":{},"text":{"49":{}},"component":{}}],["array",{"_index":580,"title":{},"name":{},"text":{"6":{},"8":{},"10":{},"14":{},"23":{},"35":{},"74":{}},"component":{}}],["arriv",{"_index":828,"title":{},"name":{},"text":{"9":{},"16":{},"37":{},"46":{}},"component":{}}],["articl",{"_index":2531,"title":{},"name":{},"text":{"41":{},"59":{}},"component":{}}],["artifact",{"_index":1601,"title":{},"name":{},"text":{"21":{},"29":{},"55":{},"74":{}},"component":{}}],["asc",{"_index":1171,"title":{},"name":{},"text":{"14":{}},"component":{}}],["ascend",{"_index":1170,"title":{},"name":{},"text":{"14":{}},"component":{}}],["ascloudev",{"_index":652,"title":{},"name":{},"text":{"6":{}},"component":{}}],["ask",{"_index":2968,"title":{},"name":{},"text":{"49":{},"74":{}},"component":{}}],["asp.net",{"_index":2394,"title":{},"name":{},"text":{"36":{}},"component":{}}],["aspect",{"_index":1896,"title":{},"name":{},"text":{"27":{},"33":{}},"component":{}}],["asset",{"_index":1715,"title":{},"name":{},"text":{"22":{},"30":{}},"component":{}}],["assign",{"_index":2271,"title":{},"name":{},"text":{"34":{},"60":{}},"component":{}}],["associ",{"_index":398,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"12":{},"14":{},"19":{},"45":{},"54":{}},"component":{}}],["assum",{"_index":547,"title":{},"name":{},"text":{"6":{},"20":{},"43":{},"55":{},"67":{}},"component":{}}],["assur",{"_index":139,"title":{"38":{}},"name":{},"text":{"1":{},"21":{},"29":{},"38":{},"42":{},"43":{}},"component":{}}],["assured/target/serverless",{"_index":2508,"title":{},"name":{},"text":{"38":{}},"component":{}}],["async",{"_index":40,"title":{},"name":{},"text":{"1":{},"4":{}},"component":{}}],["asyncapi",{"_index":115,"title":{"20":{}},"name":{"20":{}},"text":{"1":{},"2":{},"20":{},"53":{}},"component":{}}],["asyncapi.yaml",{"_index":1549,"title":{},"name":{},"text":{"20":{}},"component":{}}],["asyncapi.yaml#consumewait",{"_index":1559,"title":{},"name":{},"text":{"20":{}},"component":{}}],["asyncapi.yaml#sendresum",{"_index":1564,"title":{},"name":{},"text":{"20":{}},"component":{}}],["asynchron",{"_index":864,"title":{},"name":{},"text":{"9":{},"12":{},"29":{},"37":{},"42":{}},"component":{}}],["atleast",{"_index":1106,"title":{},"name":{},"text":{"13":{}},"component":{}}],["atleast(1",{"_index":1995,"title":{},"name":{},"text":{"29":{}},"component":{}}],["atmost(30",{"_index":1996,"title":{},"name":{},"text":{"29":{}},"component":{}}],["atmost(60",{"_index":2591,"title":{},"name":{},"text":{"42":{}},"component":{}}],["attach",{"_index":508,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["attempt",{"_index":1889,"title":{},"name":{},"text":{"27":{},"49":{},"54":{}},"component":{}}],["attempttoredeployfail",{"_index":3062,"title":{},"name":{},"text":{"54":{}},"component":{}}],["attent",{"_index":3165,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["attribut",{"_index":385,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"8":{},"10":{},"12":{},"14":{},"16":{},"17":{},"19":{},"23":{},"27":{},"33":{},"36":{},"37":{},"45":{},"49":{},"53":{},"60":{},"74":{}},"component":{}}],["aud",{"_index":2242,"title":{},"name":{},"text":{"33":{}},"component":{}}],["augment",{"_index":2512,"title":{},"name":{},"text":{"38":{}},"component":{}}],["auth",{"_index":1926,"title":{},"name":{},"text":{"27":{}},"component":{}}],["auth_property_nam",{"_index":2069,"title":{},"name":{},"text":{"32":{}},"component":{}}],["authent",{"_index":121,"title":{"32":{},"33":{},"32-1":{},"32-2":{},"32-3":{},"32-4":{},"32-5":{},"47-7":{}},"name":{"32":{}},"text":{"1":{},"27":{},"32":{},"33":{},"36":{},"47":{},"57":{},"59":{},"71":{},"74":{}},"component":{}}],["author",{"_index":1714,"title":{"32-6":{}},"name":{},"text":{"22":{},"32":{},"33":{},"42":{}},"component":{}}],["authorizationurl",{"_index":2094,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["authprovid",{"_index":3414,"title":{},"name":{},"text":{"74":{}},"component":{}}],["auto",{"_index":1373,"title":{"74-6":{}},"name":{},"text":{"17":{},"27":{},"65":{},"73":{},"74":{}},"component":{}}],["autocomplet",{"_index":2534,"title":{},"name":{},"text":{"41":{}},"component":{}}],["automat",{"_index":905,"title":{},"name":{},"text":{"9":{},"12":{},"14":{},"15":{},"16":{},"20":{},"25":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"36":{},"37":{},"41":{},"46":{},"49":{},"70":{},"73":{},"74":{}},"component":{}}],["autoscal",{"_index":3120,"title":{},"name":{},"text":{"57":{}},"component":{}}],["avail",{"_index":719,"title":{"57-1":{},"60-6":{}},"name":{},"text":{"6":{},"9":{},"11":{},"14":{},"15":{},"16":{},"21":{},"23":{},"25":{},"26":{},"27":{},"28":{},"30":{},"31":{},"32":{},"34":{},"36":{},"41":{},"45":{},"46":{},"49":{},"53":{},"54":{},"57":{},"58":{},"59":{},"60":{},"62":{},"65":{},"66":{},"67":{},"74":{}},"component":{}}],["averag",{"_index":3312,"title":{},"name":{},"text":{"63":{}},"component":{}}],["avoid",{"_index":587,"title":{},"name":{},"text":{"6":{},"14":{},"15":{},"27":{},"36":{},"58":{},"60":{}},"component":{}}],["await",{"_index":1994,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["awaitil",{"_index":1979,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["awar",{"_index":2825,"title":{},"name":{},"text":{"47":{}},"component":{}}],["awesom",{"_index":1606,"title":{},"name":{},"text":{"21":{}},"component":{}}],["b",{"_index":1090,"title":{},"name":{},"text":{"13":{}},"component":{}}],["b125",{"_index":2922,"title":{},"name":{},"text":{"47":{}},"component":{}}],["b232",{"_index":2761,"title":{},"name":{},"text":{"45":{}},"component":{}}],["b4bf",{"_index":2226,"title":{},"name":{},"text":{"33":{}},"component":{}}],["b4f1",{"_index":3172,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["b526",{"_index":2313,"title":{},"name":{},"text":{"34":{}},"component":{}}],["b5e1",{"_index":2711,"title":{},"name":{},"text":{"45":{}},"component":{}}],["b689",{"_index":1155,"title":{},"name":{},"text":{"14":{},"34":{}},"component":{}}],["b7fb",{"_index":1521,"title":{},"name":{},"text":{"19":{}},"component":{}}],["b869",{"_index":2766,"title":{},"name":{},"text":{"45":{}},"component":{}}],["back",{"_index":1741,"title":{},"name":{},"text":{"23":{},"27":{},"35":{},"36":{},"47":{}},"component":{}}],["backend",{"_index":1965,"title":{},"name":{},"text":{"27":{}},"component":{}}],["background",{"_index":1334,"title":{},"name":{},"text":{"16":{}},"component":{}}],["balanc",{"_index":3159,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["band",{"_index":2427,"title":{},"name":{},"text":{"37":{}},"component":{}}],["bank1",{"_index":1397,"title":{},"name":{},"text":{"17":{}},"component":{}}],["bank2",{"_index":1400,"title":{},"name":{},"text":{"17":{}},"component":{}}],["bankid",{"_index":1396,"title":{},"name":{},"text":{"17":{}},"component":{}}],["bar",{"_index":1823,"title":{},"name":{},"text":{"26":{}},"component":{}}],["barchart",{"_index":1830,"title":{},"name":{},"text":{"26":{}},"component":{}}],["base",{"_index":63,"title":{"25":{},"35":{},"9-6":{},"36-2":{},"47-2":{},"47-3":{},"47-10":{},"49-6":{}},"name":{"20":{},"36":{},"45":{}},"text":{"1":{},"6":{},"9":{},"10":{},"12":{},"13":{},"14":{},"15":{},"21":{},"24":{},"27":{},"28":{},"29":{},"30":{},"32":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"55":{},"59":{},"60":{},"62":{},"66":{},"68":{},"73":{},"74":{}},"component":{}}],["baseimag",{"_index":2822,"title":{},"name":{},"text":{"47":{},"49":{},"52":{}},"component":{}}],["baselin",{"_index":2021,"title":{"31-5":{},"31-6":{},"31-7":{}},"name":{},"text":{"31":{}},"component":{}}],["baselineonmigrate=\"tru",{"_index":2048,"title":{},"name":{},"text":{"31":{}},"component":{}}],["baselinevers",{"_index":2044,"title":{},"name":{},"text":{"31":{}},"component":{}}],["baselineversion=\"1.32.0",{"_index":2049,"title":{},"name":{},"text":{"31":{}},"component":{}}],["basic",{"_index":309,"title":{"32-2":{},"49-8":{}},"name":{"38":{}},"text":{"3":{},"32":{},"35":{},"47":{},"66":{}},"component":{}}],["bc76",{"_index":1512,"title":{},"name":{},"text":{"19":{}},"component":{}}],["bcfb",{"_index":1669,"title":{},"name":{},"text":{"21":{}},"component":{}}],["be",{"_index":190,"title":{},"name":{},"text":{"2":{},"9":{},"17":{},"21":{},"51":{},"59":{},"74":{}},"component":{}}],["bean",{"_index":452,"title":{},"name":{},"text":{"5":{},"6":{},"23":{}},"component":{}}],["bear",{"_index":284,"title":{},"name":{},"text":{"3":{}},"component":{}}],["bearer",{"_index":2053,"title":{"32-3":{}},"name":{},"text":{"32":{}},"component":{}}],["becom",{"_index":833,"title":{},"name":{},"text":{"9":{},"27":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["befor",{"_index":488,"title":{},"name":{},"text":{"5":{},"7":{},"9":{},"10":{},"16":{},"17":{},"18":{},"33":{},"35":{},"36":{},"41":{},"42":{},"43":{},"46":{},"53":{},"54":{},"57":{},"58":{},"59":{},"67":{},"68":{}},"component":{}}],["beforeal",{"_index":2464,"title":{},"name":{},"text":{"38":{},"42":{}},"component":{}}],["begin",{"_index":928,"title":{},"name":{},"text":{"10":{}},"component":{}}],["behav",{"_index":352,"title":{},"name":{},"text":{"4":{},"9":{},"43":{}},"component":{}}],["behavior",{"_index":345,"title":{},"name":{},"text":{"4":{},"7":{},"12":{},"14":{},"16":{},"29":{},"47":{},"58":{}},"component":{}}],["bellow",{"_index":2898,"title":{},"name":{},"text":{"47":{}},"component":{}}],["belong",{"_index":1241,"title":{},"name":{},"text":{"14":{},"19":{},"57":{},"58":{},"59":{}},"component":{}}],["below",{"_index":277,"title":{},"name":{},"text":{"3":{},"23":{},"27":{},"31":{},"37":{},"48":{},"50":{},"54":{},"57":{},"65":{}},"component":{}}],["bequiet",{"_index":817,"title":{},"name":{},"text":{"8":{}},"component":{}}],["best",{"_index":1713,"title":{},"name":{},"text":{"22":{},"28":{}},"component":{}}],["better",{"_index":1747,"title":{},"name":{},"text":{"23":{},"55":{}},"component":{}}],["between",{"_index":966,"title":{},"name":{},"text":{"11":{},"13":{},"14":{},"27":{},"28":{},"37":{},"42":{},"43":{},"60":{}},"component":{}}],["bidirect",{"_index":2327,"title":{"35-6":{}},"name":{},"text":{"35":{}},"component":{}}],["bigger",{"_index":1900,"title":{},"name":{},"text":{"27":{}},"component":{}}],["bin",{"_index":3365,"title":{},"name":{},"text":{"69":{}},"component":{}}],["binari",{"_index":1402,"title":{},"name":{},"text":{"17":{},"30":{},"41":{}},"component":{}}],["bind",{"_index":136,"title":{},"name":{},"text":{"1":{},"17":{},"27":{},"53":{},"60":{}},"component":{}}],["blank",{"_index":3322,"title":{},"name":{},"text":{"65":{}},"component":{}}],["block",{"_index":2334,"title":{},"name":{},"text":{"35":{},"41":{}},"component":{}}],["bodi",{"_index":597,"title":{},"name":{},"text":{"6":{},"10":{},"23":{},"36":{},"37":{},"38":{},"42":{},"43":{}},"component":{}}],["body(\"workflowdata.greet",{"_index":2469,"title":{},"name":{},"text":{"38":{}},"component":{}}],["body(\"{\\\"nam",{"_index":2467,"title":{},"name":{},"text":{"38":{}},"component":{}}],["body(objectmapper.writevalueasstring(ord",{"_index":2589,"title":{},"name":{},"text":{"42":{}},"component":{}}],["boolean",{"_index":433,"title":{},"name":{},"text":{"5":{},"6":{},"10":{},"14":{},"16":{},"30":{}},"component":{}}],["boot",{"_index":2392,"title":{},"name":{},"text":{"36":{}},"component":{}}],["bootstrap",{"_index":1569,"title":{"21-1":{}},"name":{},"text":{"21":{}},"component":{}}],["both",{"_index":599,"title":{},"name":{},"text":{"6":{},"8":{},"17":{},"37":{},"42":{},"46":{},"53":{},"65":{}},"component":{}}],["box",{"_index":3321,"title":{},"name":{},"text":{"65":{},"74":{}},"component":{}}],["branch",{"_index":342,"title":{"13-3":{}},"name":{},"text":{"4":{},"13":{},"55":{},"72":{}},"component":{}}],["brancha",{"_index":1082,"title":{},"name":{},"text":{"13":{}},"component":{}}],["branchb",{"_index":1084,"title":{},"name":{},"text":{"13":{}},"component":{}}],["branchc",{"_index":1086,"title":{},"name":{},"text":{"13":{}},"component":{}}],["break",{"_index":2751,"title":{},"name":{},"text":{"45":{},"47":{},"53":{}},"component":{}}],["briefli",{"_index":588,"title":{},"name":{},"text":{"6":{}},"component":{}}],["brl",{"_index":2241,"title":{},"name":{},"text":{"33":{}},"component":{}}],["broker",{"_index":1060,"title":{},"name":{},"text":{"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"27":{},"42":{}},"component":{}}],["browser",{"_index":2950,"title":{},"name":{},"text":{"49":{},"58":{},"67":{},"70":{}},"component":{}}],["bucket",{"_index":3123,"title":{},"name":{},"text":{"57":{}},"component":{}}],["buffer",{"_index":1471,"title":{},"name":{},"text":{"18":{}},"component":{}}],["bug",{"_index":181,"title":{"2-2":{}},"name":{},"text":{"47":{},"49":{}},"component":{}}],["build",{"_index":22,"title":{"47":{},"55":{},"17-4":{},"21-3":{},"26-2":{},"26-3":{},"41-3":{},"41-4":{},"47-1":{},"47-3":{},"47-5":{},"47-6":{},"47-8":{},"47-9":{},"47-11":{},"55-2":{},"55-3":{}},"name":{"47":{},"55":{},"56":{}},"text":{"1":{},"2":{},"3":{},"12":{},"17":{},"21":{},"24":{},"26":{},"28":{},"29":{},"31":{},"33":{},"36":{},"38":{},"41":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"54":{},"55":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["build:\\n",{"_index":2820,"title":{},"name":{},"text":{"47":{}},"component":{}}],["build=tru",{"_index":3100,"title":{},"name":{},"text":{"55":{},"58":{}},"component":{}}],["buildconfig",{"_index":2810,"title":{},"name":{},"text":{"47":{}},"component":{}}],["buildconfig/greet",{"_index":2908,"title":{},"name":{},"text":{"47":{}},"component":{}}],["builder",{"_index":193,"title":{"47-2":{},"47-10":{}},"name":{},"text":{"2":{},"37":{},"47":{},"51":{},"55":{}},"component":{}}],["builder\\n",{"_index":2829,"title":{},"name":{},"text":{"47":{}},"component":{}}],["buildfailedreason",{"_index":3067,"title":{},"name":{},"text":{"54":{}},"component":{}}],["buildisrunningreason",{"_index":3066,"title":{},"name":{},"text":{"54":{}},"component":{}}],["buildpack",{"_index":3075,"title":{},"name":{},"text":{"55":{}},"component":{}}],["built",{"_index":1799,"title":{},"name":{},"text":{"25":{},"36":{},"41":{},"54":{},"55":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["busi",{"_index":1848,"title":{"65-5":{}},"name":{},"text":{"26":{},"45":{},"65":{},"66":{}},"component":{}}],["businesskey",{"_index":1844,"title":{},"name":{},"text":{"26":{}},"component":{}}],["button",{"_index":3310,"title":{},"name":{},"text":{"62":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["buy",{"_index":2669,"title":{},"name":{},"text":{"45":{}},"component":{}}],["byte",{"_index":2629,"title":{},"name":{},"text":{"43":{}},"component":{}}],["c",{"_index":1091,"title":{},"name":{},"text":{"13":{}},"component":{}}],["c1658c4e49bc",{"_index":1531,"title":{},"name":{},"text":{"19":{}},"component":{}}],["c4e7",{"_index":1109,"title":{},"name":{},"text":{"13":{}},"component":{}}],["c82c",{"_index":2233,"title":{},"name":{},"text":{"33":{}},"component":{}}],["cace363774bb\",\"workflowdata\":{\"symbol\":\"kgto\",\"currentprice\":56.35,\"profit\":\"13",{"_index":2324,"title":{},"name":{},"text":{"34":{}},"component":{}}],["cace363774bb\",\"workflowdata\":{\"symbol\":\"kgto\",\"currentprice\":75,\"profit\":\"50",{"_index":2314,"title":{},"name":{},"text":{"34":{}},"component":{}}],["cach",{"_index":1636,"title":{},"name":{},"text":{"21":{},"38":{},"47":{},"55":{}},"component":{}}],["cad",{"_index":2240,"title":{},"name":{},"text":{"33":{}},"component":{}}],["calcul",{"_index":804,"title":{},"name":{},"text":{"8":{},"10":{},"33":{},"34":{}},"component":{}}],["calculateexchang",{"_index":2146,"title":{},"name":{},"text":{"33":{}},"component":{}}],["calculateexchangeact",{"_index":2159,"title":{},"name":{},"text":{"33":{}},"component":{}}],["calculateexchangeresult",{"_index":2147,"title":{},"name":{},"text":{"33":{}},"component":{}}],["calculatorclient.invokeoper",{"_index":759,"title":{},"name":{},"text":{"6":{}},"component":{}}],["calculatorclient.invokeoperation((string)metadata.getordefault(host,\"localhost",{"_index":750,"title":{},"name":{},"text":{"6":{}},"component":{}}],["call",{"_index":49,"title":{"28-3":{}},"name":{},"text":{"1":{},"6":{},"9":{},"10":{},"13":{},"14":{},"18":{},"20":{},"21":{},"23":{},"24":{},"27":{},"28":{},"35":{},"36":{},"37":{},"43":{},"45":{},"46":{},"47":{},"49":{},"58":{}},"component":{}}],["callabl",{"_index":2563,"title":{},"name":{},"text":{"42":{}},"component":{}}],["callback",{"_index":78,"title":{"12":{},"37":{},"9-3":{},"12-1":{},"37-1":{}},"name":{"12":{},"37":{}},"text":{"1":{},"4":{},"8":{},"9":{},"10":{},"12":{},"17":{},"18":{},"19":{},"27":{},"29":{},"30":{},"37":{},"45":{},"46":{}},"component":{}}],["callback_event_typ",{"_index":2790,"title":{},"name":{},"text":{"46":{}},"component":{}}],["callback_state_timeout",{"_index":2787,"title":{"46-1":{}},"name":{},"text":{"46":{}},"component":{}}],["callbackact",{"_index":867,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["callbackerror",{"_index":874,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["callbackev",{"_index":870,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["callbackfunct",{"_index":868,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["callbackrestit",{"_index":1986,"title":{},"name":{},"text":{"29":{}},"component":{}}],["callbackst",{"_index":866,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["caller",{"_index":1018,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["callpetstor",{"_index":2416,"title":{},"name":{},"text":{"36":{}},"component":{}}],["callservic",{"_index":3041,"title":{},"name":{},"text":{"53":{}},"component":{}}],["camel",{"_index":153,"title":{"23":{},"6-7":{},"23-1":{},"23-2":{},"23-3":{}},"name":{"23":{}},"text":{"1":{},"6":{},"23":{}},"component":{}}],["camel:direct",{"_index":1736,"title":{},"name":{},"text":{"23":{}},"component":{}}],["camel:direct:logroutereplacehead",{"_index":1735,"title":{},"name":{},"text":{"23":{}},"component":{}}],["camel:direct:myendpoint",{"_index":591,"title":{},"name":{},"text":{"6":{}},"component":{}}],["cancel",{"_index":847,"title":{},"name":{},"text":{"9":{},"14":{},"42":{},"45":{}},"component":{}}],["cancelpay",{"_index":2692,"title":{},"name":{},"text":{"45":{}},"component":{}}],["cancelpaymentrespons",{"_index":2768,"title":{},"name":{},"text":{"45":{}},"component":{}}],["cancelstockrespons",{"_index":2769,"title":{},"name":{},"text":{"45":{}},"component":{}}],["can’t",{"_index":3069,"title":{},"name":{},"text":{"54":{},"69":{}},"component":{}}],["capabl",{"_index":517,"title":{},"name":{},"text":{"6":{},"14":{},"15":{},"17":{},"18":{},"30":{},"50":{},"73":{},"74":{}},"component":{}}],["card",{"_index":276,"title":{},"name":{},"text":{"3":{},"45":{}},"component":{}}],["care",{"_index":1354,"title":{},"name":{},"text":{"17":{},"31":{}},"component":{}}],["carri",{"_index":2794,"title":{},"name":{},"text":{"46":{}},"component":{}}],["case",{"_index":19,"title":{"1-13":{}},"name":{},"text":{"4":{},"6":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"23":{},"27":{},"28":{},"31":{},"32":{},"33":{},"35":{},"36":{},"41":{},"43":{},"45":{},"46":{},"47":{},"49":{},"54":{},"55":{},"58":{},"60":{},"66":{},"67":{},"69":{}},"component":{}}],["cat",{"_index":2889,"title":{},"name":{},"text":{"47":{}},"component":{}}],["catalog",{"_index":2981,"title":{},"name":{},"text":{"50":{},"60":{}},"component":{}}],["catch",{"_index":755,"title":{},"name":{},"text":{"6":{},"11":{},"12":{},"43":{}},"component":{}}],["caus",{"_index":2962,"title":{},"name":{},"text":{"49":{}},"component":{}}],["cd",{"_index":1599,"title":{},"name":{},"text":{"21":{},"33":{},"34":{},"46":{},"55":{}},"component":{}}],["cd98c6bd3ade",{"_index":2250,"title":{},"name":{},"text":{"33":{}},"component":{}}],["cdi",{"_index":1637,"title":{},"name":{},"text":{"21":{},"38":{}},"component":{}}],["ce",{"_index":1053,"title":{},"name":{},"text":{"12":{},"17":{}},"component":{}}],["ce.get().getdata",{"_index":1057,"title":{},"name":{},"text":{"12":{}},"component":{}}],["celsiu",{"_index":933,"title":{},"name":{},"text":{"10":{}},"component":{}}],["certain",{"_index":878,"title":{},"name":{},"text":{"9":{},"18":{},"34":{}},"component":{}}],["certif",{"_index":3375,"title":{},"name":{},"text":{"69":{}},"component":{}}],["chain",{"_index":980,"title":{},"name":{},"text":{"11":{}},"component":{}}],["chang",{"_index":148,"title":{"2-1":{},"2-2":{},"47-4":{},"47-10":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"10":{},"11":{},"13":{},"16":{},"17":{},"18":{},"21":{},"24":{},"27":{},"30":{},"31":{},"33":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"52":{},"68":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["channel",{"_index":445,"title":{"18-1":{},"18-2":{}},"name":{},"text":{"5":{},"17":{},"18":{},"20":{},"37":{},"42":{},"49":{}},"component":{}}],["charact",{"_index":926,"title":{},"name":{},"text":{"10":{},"32":{},"34":{}},"component":{}}],["charset=utf",{"_index":649,"title":{},"name":{},"text":{"6":{}},"component":{}}],["chart",{"_index":1824,"title":{},"name":{},"text":{"26":{}},"component":{}}],["check",{"_index":646,"title":{"47-12":{},"49-3":{}},"name":{},"text":{"6":{},"7":{},"11":{},"17":{},"25":{},"27":{},"29":{},"33":{},"38":{},"41":{},"42":{},"47":{},"49":{},"54":{},"57":{},"58":{},"59":{},"63":{},"67":{},"71":{}},"component":{}}],["checkbox",{"_index":3386,"title":{},"name":{},"text":{"71":{}},"component":{}}],["checkeven",{"_index":1002,"title":{},"name":{},"text":{"11":{}},"component":{}}],["checkevenact",{"_index":1003,"title":{},"name":{},"text":{"11":{}},"component":{}}],["checkeventarriv",{"_index":871,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["checkout",{"_index":2672,"title":{},"name":{},"text":{"45":{}},"component":{}}],["checkvalid",{"_index":2155,"title":{},"name":{},"text":{"33":{}},"component":{}}],["child",{"_index":1006,"title":{},"name":{},"text":{"11":{}},"component":{}}],["chip",{"_index":3319,"title":{},"name":{},"text":{"65":{}},"component":{}}],["chmod",{"_index":2522,"title":{},"name":{},"text":{"41":{}},"component":{}}],["choic",{"_index":1966,"title":{},"name":{},"text":{"28":{},"49":{}},"component":{}}],["choos",{"_index":1130,"title":{},"name":{},"text":{"14":{},"31":{}},"component":{}}],["chooseoneev",{"_index":2795,"title":{},"name":{},"text":{"46":{}},"component":{}}],["chooseonev",{"_index":884,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["chooseonlanguag",{"_index":2902,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["choreographi",{"_index":26,"title":{},"name":{},"text":{"1":{}},"component":{}}],["chown=185",{"_index":2846,"title":{},"name":{},"text":{"47":{}},"component":{}}],["chrome",{"_index":108,"title":{"72":{},"72-1":{},"72-2":{}},"name":{"72":{}},"text":{"1":{},"22":{},"72":{},"73":{}},"component":{}}],["chrome_extension_serverless_workflow_editor_version.zip",{"_index":3389,"title":{},"name":{},"text":{"72":{}},"component":{}}],["class",{"_index":541,"title":{},"name":{},"text":{"6":{},"11":{},"29":{},"33":{},"38":{},"42":{},"43":{},"45":{}},"component":{}}],["classifi",{"_index":1440,"title":{},"name":{},"text":{"18":{},"42":{}},"component":{}}],["classpath",{"_index":778,"title":{},"name":{},"text":{"7":{},"18":{},"20":{},"35":{},"36":{}},"component":{}}],["clean",{"_index":1417,"title":{},"name":{},"text":{"17":{},"21":{},"28":{},"29":{},"33":{},"35":{},"38":{},"42":{}},"component":{}}],["clear",{"_index":3042,"title":{},"name":{},"text":{"53":{},"65":{},"66":{}},"component":{}}],["clearli",{"_index":1899,"title":{},"name":{},"text":{"27":{}},"component":{}}],["cli",{"_index":131,"title":{"41":{},"55":{},"31-3":{},"31-7":{},"41-1":{},"41-2":{},"41-3":{},"41-5":{},"57-3":{},"57-4":{},"57-5":{},"58-3":{},"58-4":{},"58-5":{},"59-4":{},"59-5":{},"59-6":{}},"name":{"55":{}},"text":{"1":{},"3":{},"17":{},"21":{},"22":{},"24":{},"28":{},"31":{},"32":{},"36":{},"41":{},"50":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"69":{}},"component":{}}],["click",{"_index":2952,"title":{},"name":{},"text":{"49":{},"62":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["clickabl",{"_index":3311,"title":{},"name":{},"text":{"62":{},"66":{}},"component":{}}],["client",{"_index":234,"title":{"35-5":{}},"name":{},"text":{"2":{},"14":{},"21":{},"26":{},"27":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"45":{},"60":{},"68":{},"71":{}},"component":{}}],["client.acme_financial_oauth.auth",{"_index":2194,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.cli",{"_index":2198,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.credentials.cli",{"_index":2200,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.discoveri",{"_index":2193,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.grant.type=cli",{"_index":2199,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_oauth.token",{"_index":2196,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.acme_financial_service_yml.url=http://localhost:8483",{"_index":2192,"title":{},"name":{},"text":{"33":{}},"component":{}}],["client.apicatalog_apis_123_document.url=http://localhost:8282",{"_index":2260,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.auth",{"_index":1928,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.host",{"_index":1924,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.myworkflow_myfunction.url=http://localhost:8282",{"_index":2262,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.oauth_exampl",{"_index":2115,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.auth",{"_index":2103,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.cli",{"_index":2109,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.credentials.cli",{"_index":2112,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.discoveri",{"_index":2107,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.grant.type=cli",{"_index":2111,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.oauth_example.token",{"_index":2105,"title":{},"name":{},"text":{"32":{}},"component":{}}],["client.password",{"_index":1930,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.remotecatalog.url=http://localhost:8282",{"_index":2277,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.restcountries_json.url",{"_index":2647,"title":{},"name":{},"text":{"43":{}},"component":{}}],["client.sasl",{"_index":1927,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.stock",{"_index":2267,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.stock_portfolio_svc_yaml.url=http://localhost:8282",{"_index":2254,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.stock_svc_yaml.url=http://localhost:8181",{"_index":2303,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.stock_svc_yaml.url=http://localhost:8383",{"_index":2301,"title":{},"name":{},"text":{"34":{}},"component":{}}],["client.subtraction_yaml.url=${subtraction_url:http://myserver.com",{"_index":2423,"title":{},"name":{},"text":{"36":{}},"component":{}}],["client.subtraction_yaml.url=http://myserver.com",{"_index":2420,"title":{},"name":{},"text":{"36":{}},"component":{}}],["client.us",{"_index":1925,"title":{},"name":{},"text":{"27":{}},"component":{}}],["client.usernam",{"_index":1929,"title":{},"name":{},"text":{"27":{}},"component":{}}],["clientcredenti",{"_index":2093,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["clone",{"_index":1571,"title":{},"name":{},"text":{"21":{},"30":{},"33":{},"46":{},"55":{},"68":{}},"component":{}}],["close",{"_index":2799,"title":{},"name":{},"text":{"46":{},"67":{},"71":{}},"component":{}}],["cloud",{"_index":13,"title":{"3":{},"1-9":{},"65-7":{},"66-2":{}},"name":{},"text":{"1":{},"4":{},"6":{},"10":{},"14":{},"27":{},"28":{},"37":{},"46":{},"65":{},"66":{},"74":{}},"component":{}}],["cloudev",{"_index":29,"title":{"42":{},"6-16":{},"24-1":{}},"name":{"42":{}},"text":{"1":{},"5":{},"6":{},"8":{},"10":{},"12":{},"14":{},"17":{},"18":{},"19":{},"20":{},"21":{},"24":{},"37":{},"38":{},"42":{}},"component":{}}],["cloudeventbuild",{"_index":2438,"title":{},"name":{},"text":{"37":{}},"component":{}}],["cloudeventbuilder.v1",{"_index":2439,"title":{},"name":{},"text":{"37":{}},"component":{}}],["cloudeventdata",{"_index":1056,"title":{},"name":{},"text":{"12":{}},"component":{}}],["cloudeventdata.getnode().get(\"move\").astext",{"_index":1059,"title":{},"name":{},"text":{"12":{}},"component":{}}],["cloudeventutils.decode(message.getpayload",{"_index":1054,"title":{},"name":{},"text":{"12":{}},"component":{}}],["clue",{"_index":2966,"title":{},"name":{},"text":{"49":{}},"component":{}}],["cluster",{"_index":273,"title":{},"name":{},"text":{"3":{},"6":{},"17":{},"27":{},"28":{},"34":{},"36":{},"41":{},"46":{},"47":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["clusterip",{"_index":1311,"title":{},"name":{},"text":{"16":{},"57":{}},"component":{}}],["clusterrol",{"_index":3299,"title":{},"name":{},"text":{"60":{}},"component":{}}],["cm",{"_index":2927,"title":{},"name":{},"text":{"48":{},"49":{}},"component":{}}],["cm/sonataflow",{"_index":2896,"title":{},"name":{},"text":{"47":{}},"component":{}}],["cncf",{"_index":75,"title":{"51-2":{}},"name":{"4":{}},"text":{"1":{},"4":{},"6":{},"21":{},"22":{},"36":{},"49":{},"72":{},"73":{},"74":{}},"component":{}}],["code",{"_index":102,"title":{"74":{},"74-1":{},"74-3":{},"74-5":{}},"name":{},"text":{"1":{},"6":{},"7":{},"8":{},"11":{},"21":{},"22":{},"26":{},"33":{},"35":{},"36":{},"38":{},"49":{},"64":{},"65":{},"66":{},"72":{},"73":{},"74":{}},"component":{}}],["code\":\"org.kie.kogito.serviceexcept",{"_index":2694,"title":{},"name":{},"text":{"45":{}},"component":{}}],["codegenprovid",{"_index":242,"title":{},"name":{},"text":{"2":{}},"component":{}}],["cogwheel",{"_index":3353,"title":{},"name":{},"text":{"68":{},"69":{},"71":{}},"component":{}}],["collect",{"_index":579,"title":{},"name":{},"text":{"6":{},"15":{},"27":{},"46":{}},"component":{}}],["colon",{"_index":997,"title":{},"name":{},"text":{"11":{}},"component":{}}],["column",{"_index":1826,"title":{},"name":{},"text":{"26":{},"62":{},"66":{}},"component":{}}],["columngroup",{"_index":1837,"title":{},"name":{},"text":{"26":{}},"component":{}}],["com.acme.myinterfaceorclass",{"_index":538,"title":{},"name":{},"text":{"6":{}},"component":{}}],["com.apple.quarantin",{"_index":3370,"title":{},"name":{},"text":{"69":{}},"component":{}}],["com.fasterxml.jackson.databind.jsonnod",{"_index":2632,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.fasterxml.jackson.databind.objectmapp",{"_index":2633,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.pull_request.open",{"_index":654,"title":{},"name":{},"text":{"6":{}},"component":{}}],["com.github.tomakehurst",{"_index":2564,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.client.wiremock.arespons",{"_index":2640,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.client.wiremock.get",{"_index":2641,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.client.wiremock.urlequalto",{"_index":2642,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.core.wiremockconfigur",{"_index":2635,"title":{},"name":{},"text":{"43":{}},"component":{}}],["com.github.tomakehurst.wiremock.wiremockserv",{"_index":2634,"title":{},"name":{},"text":{"43":{}},"component":{}}],["combin",{"_index":801,"title":{},"name":{},"text":{"8":{},"14":{},"27":{},"28":{},"41":{}},"component":{}}],["come",{"_index":1132,"title":{},"name":{},"text":{"14":{},"55":{},"59":{},"64":{}},"component":{}}],["comexampleextension1",{"_index":662,"title":{},"name":{},"text":{"6":{}},"component":{}}],["comexampleothervalu",{"_index":663,"title":{},"name":{},"text":{"6":{}},"component":{}}],["comma",{"_index":1949,"title":{},"name":{},"text":{"27":{},"41":{}},"component":{}}],["command",{"_index":1092,"title":{"74-3":{}},"name":{},"text":{"13":{},"17":{},"21":{},"22":{},"24":{},"25":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"38":{},"41":{},"42":{},"46":{},"47":{},"49":{},"50":{},"54":{},"55":{},"57":{},"58":{},"59":{},"64":{},"69":{},"74":{}},"component":{}}],["commerc",{"_index":2670,"title":{},"name":{},"text":{"45":{}},"component":{}}],["commit",{"_index":3352,"title":{},"name":{},"text":{"68":{},"72":{}},"component":{}}],["common",{"_index":413,"title":{},"name":{},"text":{"5":{},"16":{},"27":{},"32":{}},"component":{}}],["commonli",{"_index":411,"title":{},"name":{},"text":{"5":{},"16":{},"30":{}},"component":{}}],["commun",{"_index":1116,"title":{"14-11":{}},"name":{},"text":{"14":{},"15":{},"16":{},"27":{},"28":{},"31":{},"45":{},"46":{},"49":{},"50":{},"60":{}},"component":{}}],["compani",{"_index":3052,"title":{},"name":{},"text":{"53":{}},"component":{}}],["compat",{"_index":2897,"title":{},"name":{},"text":{"47":{}},"component":{}}],["compens",{"_index":317,"title":{"4-9":{}},"name":{},"text":{"4":{},"45":{}},"component":{}}],["compensatedbi",{"_index":2691,"title":{},"name":{},"text":{"45":{}},"component":{}}],["compensatedby\":\"cancelpay",{"_index":2686,"title":{},"name":{},"text":{"45":{}},"component":{}}],["compil",{"_index":1607,"title":{},"name":{},"text":{"21":{},"35":{}},"component":{}}],["complet",{"_index":856,"title":{"74-6":{}},"name":{},"text":{"9":{},"12":{},"13":{},"21":{},"25":{},"26":{},"30":{},"32":{},"37":{},"38":{},"41":{},"42":{},"45":{},"54":{},"66":{},"67":{},"71":{},"73":{},"74":{}},"component":{}}],["completiontyp",{"_index":1087,"title":{},"name":{},"text":{"13":{}},"component":{}}],["complex",{"_index":379,"title":{},"name":{},"text":{"4":{},"10":{},"23":{},"41":{},"46":{},"49":{}},"component":{}}],["compliant",{"_index":336,"title":{},"name":{},"text":{"4":{},"19":{}},"component":{}}],["compon",{"_index":793,"title":{},"name":{},"text":{"7":{},"17":{},"23":{},"26":{},"32":{},"33":{},"36":{},"42":{}},"component":{}}],["components/messages/messag",{"_index":1556,"title":{},"name":{},"text":{"20":{}},"component":{}}],["components/schemas/exchangerateresult",{"_index":2183,"title":{},"name":{},"text":{"33":{}},"component":{}}],["components/schemas/multiplicationoper",{"_index":2404,"title":{},"name":{},"text":{"36":{}},"component":{}}],["compos",{"_index":973,"title":{},"name":{},"text":{"11":{},"16":{},"32":{},"33":{},"35":{},"36":{},"41":{}},"component":{}}],["composit",{"_index":298,"title":{},"name":{},"text":{"3":{},"27":{}},"component":{}}],["comprehend",{"_index":3341,"title":{},"name":{},"text":{"67":{}},"component":{}}],["comprehens",{"_index":2970,"title":{},"name":{},"text":{"49":{}},"component":{}}],["comput",{"_index":324,"title":{},"name":{},"text":{"4":{},"6":{},"34":{},"36":{},"68":{}},"component":{}}],["computeprofit",{"_index":2296,"title":{},"name":{},"text":{"34":{}},"component":{}}],["concata",{"_index":1076,"title":{},"name":{},"text":{"13":{}},"component":{}}],["concatb",{"_index":1078,"title":{},"name":{},"text":{"13":{}},"component":{}}],["concatc",{"_index":1080,"title":{},"name":{},"text":{"13":{}},"component":{}}],["concaten",{"_index":1067,"title":{},"name":{},"text":{"13":{}},"component":{}}],["concept",{"_index":3,"title":{"14":{},"1-2":{}},"name":{"14":{},"27":{}},"text":{"1":{},"15":{},"16":{},"35":{},"49":{}},"component":{}}],["concern",{"_index":3043,"title":{},"name":{},"text":{"53":{}},"component":{}}],["concurr",{"_index":2015,"title":{},"name":{},"text":{"30":{}},"component":{}}],["condit",{"_index":231,"title":{"54":{},"10-1":{},"54-2":{},"54-3":{}},"name":{"54":{}},"text":{"2":{},"3":{},"6":{},"9":{},"10":{},"16":{},"24":{},"33":{},"34":{},"47":{},"49":{},"54":{},"57":{},"58":{},"59":{}},"component":{}}],["conf/flyway.conf",{"_index":2026,"title":{},"name":{},"text":{"31":{}},"component":{}}],["config",{"_index":2020,"title":{"31-2":{}},"name":{},"text":{"34":{},"43":{},"47":{},"52":{},"57":{},"58":{}},"component":{}}],["config.nam",{"_index":2300,"title":{},"name":{},"text":{"34":{}},"component":{}}],["config:\\n",{"_index":2821,"title":{},"name":{},"text":{"47":{}},"component":{}}],["configmap",{"_index":2279,"title":{"53-1":{}},"name":{},"text":{"34":{},"47":{},"48":{},"49":{},"53":{}},"component":{}}],["configsourc",{"_index":2278,"title":{},"name":{},"text":{"34":{}},"component":{}}],["configur",{"_index":84,"title":{"5":{},"34":{},"48":{},"6-17":{},"14-11":{},"16-7":{},"17-1":{},"17-2":{},"18-1":{},"27-7":{},"30-1":{},"31-6":{},"33-2":{},"34-3":{},"36-5":{},"37-2":{},"47-1":{},"47-8":{},"48-1":{},"49-11":{},"60-2":{}},"name":{"5":{},"34":{},"48":{}},"text":{"1":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"25":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"43":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"67":{},"68":{},"71":{},"74":{}},"component":{}}],["configuration.html#nw",{"_index":2915,"title":{},"name":{},"text":{"47":{}},"component":{}}],["configurewiremockserv",{"_index":2645,"title":{},"name":{},"text":{"43":{}},"component":{}}],["confirm",{"_index":2673,"title":{},"name":{},"text":{"45":{},"67":{}},"component":{}}],["conflict",{"_index":2619,"title":{},"name":{},"text":{"43":{},"68":{}},"component":{}}],["conform",{"_index":1383,"title":{},"name":{},"text":{"17":{}},"component":{}}],["connect",{"_index":440,"title":{"69-2":{}},"name":{},"text":{"5":{},"9":{},"14":{},"15":{},"16":{},"17":{},"26":{},"27":{},"30":{},"32":{},"33":{},"42":{},"69":{},"71":{},"74":{}},"component":{}}],["connect/auth",{"_index":2186,"title":{},"name":{},"text":{"33":{}},"component":{}}],["connect/token",{"_index":2187,"title":{},"name":{},"text":{"33":{}},"component":{}}],["connector",{"_index":1261,"title":{},"name":{},"text":{"14":{},"16":{},"18":{}},"component":{}}],["consequ",{"_index":1025,"title":{},"name":{},"text":{"12":{}},"component":{}}],["consid",{"_index":524,"title":{},"name":{},"text":{"6":{},"8":{},"9":{},"11":{},"27":{},"30":{},"45":{},"60":{},"71":{}},"component":{}}],["consider",{"_index":1975,"title":{},"name":{},"text":{"28":{}},"component":{}}],["consist",{"_index":685,"title":{},"name":{},"text":{"6":{},"8":{},"10":{},"17":{},"19":{},"35":{},"36":{},"37":{},"45":{},"66":{}},"component":{}}],["consol",{"_index":1011,"title":{},"name":{},"text":{"11":{},"16":{},"23":{},"45":{},"50":{},"58":{},"64":{},"69":{},"71":{},"74":{}},"component":{}}],["constant",{"_index":318,"title":{"4-10":{}},"name":{},"text":{"4":{},"10":{}},"component":{}}],["constraint",{"_index":601,"title":{},"name":{},"text":{"6":{},"47":{},"49":{}},"component":{}}],["construct",{"_index":972,"title":{},"name":{},"text":{"11":{}},"component":{}}],["consult",{"_index":3064,"title":{},"name":{},"text":{"54":{}},"component":{}}],["consum",{"_index":33,"title":{"17":{},"18":{},"20-1":{},"25-3":{},"25-4":{}},"name":{"17":{},"18":{}},"text":{"1":{},"4":{},"6":{},"8":{},"9":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"25":{},"26":{},"28":{},"37":{},"42":{},"60":{},"66":{}},"component":{}}],["consumeev",{"_index":1558,"title":{},"name":{},"text":{"20":{}},"component":{}}],["consumerwait",{"_index":1557,"title":{},"name":{},"text":{"20":{}},"component":{}}],["consumes(mediatype.application_json",{"_index":2434,"title":{},"name":{},"text":{"37":{}},"component":{}}],["consumewait",{"_index":1554,"title":{},"name":{},"text":{"20":{}},"component":{}}],["consumpt",{"_index":1135,"title":{"25-2":{}},"name":{},"text":{"14":{},"17":{}},"component":{}}],["contact",{"_index":2251,"title":{},"name":{},"text":{"33":{}},"component":{}}],["contain",{"_index":192,"title":{"47-7":{}},"name":{},"text":{"2":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"45":{},"46":{},"47":{},"49":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{}},"component":{}}],["container_nam",{"_index":1284,"title":{},"name":{},"text":{"16":{}},"component":{}}],["containerconcurr",{"_index":3190,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["containercr",{"_index":3001,"title":{},"name":{},"text":{"50":{}},"component":{}}],["containerport",{"_index":1318,"title":{},"name":{},"text":{"16":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["contains($l[1",{"_index":1814,"title":{},"name":{},"text":{"26":{}},"component":{}}],["containsal",{"_index":1159,"title":{},"name":{},"text":{"14":{}},"component":{}}],["containsani",{"_index":1160,"title":{},"name":{},"text":{"14":{}},"component":{}}],["content",{"_index":568,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"13":{},"14":{},"17":{},"21":{},"24":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"42":{},"45":{},"47":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{},"68":{},"69":{},"71":{}},"component":{}}],["contenttype(contenttype.json",{"_index":1989,"title":{},"name":{},"text":{"29":{},"38":{}},"component":{}}],["contenttype(mediatype.application_json",{"_index":2588,"title":{},"name":{},"text":{"42":{}},"component":{}}],["context",{"_index":512,"title":{"6-6":{}},"name":{},"text":{"6":{},"19":{},"21":{},"23":{},"27":{},"38":{},"47":{},"53":{},"57":{},"58":{},"59":{},"60":{},"67":{},"73":{},"74":{}},"component":{}}],["context/namespac",{"_index":3084,"title":{},"name":{},"text":{"55":{}},"component":{}}],["contextattributenam",{"_index":1492,"title":{},"name":{},"text":{"19":{}},"component":{}}],["contextattributevalu",{"_index":1493,"title":{},"name":{},"text":{"19":{}},"component":{}}],["contextu",{"_index":581,"title":{},"name":{},"text":{"6":{}},"component":{}}],["continu",{"_index":725,"title":{},"name":{},"text":{"6":{},"9":{},"19":{},"27":{},"45":{},"46":{}},"component":{}}],["contrast",{"_index":2428,"title":{},"name":{},"text":{"37":{}},"component":{}}],["control",{"_index":163,"title":{},"name":{},"text":{"1":{},"6":{},"9":{},"12":{},"27":{},"30":{},"37":{},"45":{},"47":{},"50":{},"53":{},"57":{},"72":{}},"component":{}}],["convent",{"_index":1885,"title":{},"name":{},"text":{"27":{},"32":{}},"component":{}}],["converg",{"_index":280,"title":{},"name":{},"text":{"3":{}},"component":{}}],["convers",{"_index":931,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["convert",{"_index":576,"title":{},"name":{},"text":{"6":{},"10":{},"27":{}},"component":{}}],["cooki",{"_index":2090,"title":{},"name":{},"text":{"32":{}},"component":{}}],["coordin",{"_index":630,"title":{},"name":{},"text":{"6":{},"10":{},"24":{},"45":{}},"component":{}}],["copi",{"_index":545,"title":{},"name":{},"text":{"6":{},"10":{},"21":{},"26":{},"35":{},"36":{},"41":{},"47":{},"49":{},"68":{},"69":{},"71":{}},"component":{}}],["core",{"_index":2,"title":{"14":{},"1-2":{}},"name":{"14":{},"27":{}},"text":{"1":{},"14":{},"15":{},"16":{},"36":{},"45":{},"50":{},"71":{}},"component":{}}],["core/custom",{"_index":1759,"title":{},"name":{},"text":{"24":{}},"component":{}}],["corner",{"_index":3354,"title":{},"name":{},"text":{"68":{},"69":{},"71":{},"72":{}},"component":{}}],["correct",{"_index":775,"title":{},"name":{},"text":{"7":{},"17":{},"31":{},"49":{},"50":{},"57":{},"58":{},"59":{},"69":{}},"component":{}}],["correctli",{"_index":1407,"title":{},"name":{},"text":{"17":{},"42":{},"49":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["correl",{"_index":117,"title":{"19":{},"19-1":{}},"name":{"19":{}},"text":{"1":{},"4":{},"8":{},"12":{},"17":{},"18":{},"19":{},"37":{}},"component":{}}],["correspond",{"_index":578,"title":{},"name":{},"text":{"6":{},"27":{},"28":{},"35":{},"46":{},"70":{}},"component":{}}],["count",{"_index":1852,"title":{},"name":{},"text":{"26":{}},"component":{}}],["counter",{"_index":1790,"title":{},"name":{},"text":{"25":{}},"component":{}}],["countri",{"_index":2609,"title":{},"name":{},"text":{"42":{}},"component":{}}],["countryserviceworkflowtest",{"_index":2655,"title":{},"name":{},"text":{"43":{}},"component":{}}],["cover",{"_index":396,"title":{},"name":{},"text":{"4":{},"8":{},"35":{},"37":{}},"component":{}}],["cpu",{"_index":2866,"title":{},"name":{},"text":{"47":{},"50":{},"52":{}},"component":{}}],["cr",{"_index":3007,"title":{},"name":{},"text":{"50":{},"51":{},"53":{}},"component":{}}],["creat",{"_index":57,"title":{"21":{},"13-1":{},"21-2":{},"23-2":{},"41-2":{},"47-6":{},"47-7":{},"53-1":{},"53-2":{},"62-1":{},"62-2":{},"70-1":{},"71-1":{},"71-2":{}},"name":{"21":{}},"text":{"1":{},"2":{},"4":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"17":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["create_table.sql",{"_index":2043,"title":{},"name":{},"text":{"31":{}},"component":{}}],["creation",{"_index":1302,"title":{},"name":{},"text":{"16":{},"30":{},"32":{},"41":{}},"component":{}}],["credenti",{"_index":2061,"title":{},"name":{},"text":{"32":{},"33":{},"47":{},"57":{},"74":{}},"component":{}}],["credit",{"_index":1391,"title":{},"name":{},"text":{"17":{},"45":{}},"component":{}}],["crucial",{"_index":1047,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["ctrl+c",{"_index":1711,"title":{},"name":{},"text":{"21":{},"33":{}},"component":{}}],["ctrl+shift+m",{"_index":3425,"title":{},"name":{},"text":{"74":{}},"component":{}}],["ctrl+shift+p",{"_index":3404,"title":{},"name":{},"text":{"74":{}},"component":{}}],["ctrl+space",{"_index":3420,"title":{},"name":{},"text":{"74":{}},"component":{}}],["cue",{"_index":2944,"title":{},"name":{},"text":{"49":{}},"component":{}}],["curl",{"_index":1095,"title":{},"name":{},"text":{"13":{},"17":{},"21":{},"24":{},"33":{},"34":{},"35":{},"45":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["currenc",{"_index":2125,"title":{},"name":{},"text":{"33":{}},"component":{}}],["currency_exchange_workflow",{"_index":2139,"title":{},"name":{},"text":{"33":{}},"component":{}}],["currencyfrom",{"_index":2152,"title":{},"name":{},"text":{"33":{}},"component":{}}],["currencyto",{"_index":2153,"title":{},"name":{},"text":{"33":{}},"component":{}}],["current",{"_index":27,"title":{},"name":{},"text":{"1":{},"6":{},"9":{},"15":{},"19":{},"21":{},"27":{},"30":{},"34":{},"41":{},"47":{},"49":{},"50":{},"51":{},"53":{},"54":{},"57":{},"58":{},"59":{},"60":{},"66":{},"67":{},"68":{},"69":{}},"component":{}}],["currentpric",{"_index":2298,"title":{},"name":{},"text":{"34":{}},"component":{}}],["custom",{"_index":58,"title":{"6":{},"6-1":{},"6-2":{},"6-7":{},"6-11":{},"6-19":{},"6-20":{},"47-3":{},"62-1":{},"62-2":{},"62-3":{}},"name":{"6":{},"24":{},"62":{}},"text":{"1":{},"2":{},"4":{},"6":{},"11":{},"16":{},"17":{},"23":{},"24":{},"26":{},"33":{},"34":{},"45":{},"47":{},"49":{},"50":{},"51":{},"53":{},"60":{},"62":{},"65":{},"72":{}},"component":{}}],["custom`workitemhandl",{"_index":767,"title":{},"name":{},"text":{"6":{}},"component":{}}],["customer_nam",{"_index":641,"title":{},"name":{},"text":{"6":{}},"component":{}}],["cycl",{"_index":297,"title":{"42-3":{}},"name":{},"text":{"3":{},"49":{}},"component":{}}],["d",{"_index":1098,"title":{},"name":{},"text":{"13":{},"17":{},"24":{},"31":{},"33":{},"34":{},"35":{},"47":{},"55":{},"57":{},"58":{},"59":{},"69":{}},"component":{}}],["d297",{"_index":1743,"title":{},"name":{},"text":{"23":{}},"component":{}}],["d43a56b6",{"_index":1152,"title":{},"name":{},"text":{"14":{}},"component":{}}],["d6899b5639aa",{"_index":2712,"title":{},"name":{},"text":{"45":{}},"component":{}}],["d70386b9a375",{"_index":1156,"title":{},"name":{},"text":{"14":{}},"component":{}}],["da82",{"_index":1196,"title":{},"name":{},"text":{"14":{}},"component":{}}],["daef",{"_index":1528,"title":{},"name":{},"text":{"19":{}},"component":{}}],["daemon",{"_index":3101,"title":{},"name":{},"text":{"55":{},"58":{}},"component":{}}],["damag",{"_index":3364,"title":{},"name":{},"text":{"69":{}},"component":{}}],["dash.yaml|yml",{"_index":3380,"title":{},"name":{},"text":{"70":{}},"component":{}}],["dashboard",{"_index":107,"title":{"26":{},"62":{},"26-1":{},"26-2":{},"26-3":{},"62-1":{},"62-2":{},"62-3":{},"62-4":{},"62-5":{}},"name":{"26":{},"62":{}},"text":{"1":{},"25":{},"26":{},"58":{},"62":{},"63":{},"64":{}},"component":{}}],["dashbuild",{"_index":1761,"title":{},"name":{},"text":{"25":{},"26":{},"62":{},"67":{},"70":{}},"component":{}}],["dashoard",{"_index":1842,"title":{},"name":{},"text":{"26":{}},"component":{}}],["data",{"_index":16,"title":{"14":{},"15":{},"16":{},"26":{},"71":{},"1-12":{},"4-4":{},"10-3":{},"14-1":{},"14-2":{},"14-3":{},"14-4":{},"14-5":{},"14-6":{},"14-7":{},"14-9":{},"14-10":{},"14-11":{},"14-14":{},"15-2":{},"16-1":{},"16-2":{},"16-3":{},"16-4":{},"16-5":{},"16-6":{},"16-7":{},"26-3":{},"65-4":{},"71-1":{},"71-2":{}},"name":{"14":{},"15":{},"16":{},"26":{}},"text":{"1":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"19":{},"21":{},"23":{},"26":{},"27":{},"29":{},"30":{},"33":{},"36":{},"45":{},"46":{},"47":{},"48":{},"49":{},"53":{},"65":{},"66":{},"67":{},"70":{},"71":{}},"component":{}}],["data.processinst",{"_index":1849,"title":{},"name":{},"text":{"26":{}},"component":{}}],["data:\"{\\\"expirationtim",{"_index":1228,"title":{},"name":{},"text":{"14":{}},"component":{}}],["databas",{"_index":145,"title":{"31":{}},"name":{},"text":{"1":{},"5":{},"14":{},"15":{},"16":{},"21":{},"27":{},"29":{},"30":{},"31":{},"46":{}},"component":{}}],["database:5432/postgres?currentschema=job",{"_index":1878,"title":{},"name":{},"text":{"27":{}},"component":{}}],["database:5432/postgres?search_path=job",{"_index":1881,"title":{},"name":{},"text":{"27":{}},"component":{}}],["database_nam",{"_index":2042,"title":{},"name":{},"text":{"31":{}},"component":{}}],["datacondit",{"_index":879,"title":{},"name":{},"text":{"9":{},"10":{},"33":{},"47":{},"49":{}},"component":{}}],["datacontenttyp",{"_index":665,"title":{},"name":{},"text":{"6":{},"17":{}},"component":{}}],["dataindex",{"_index":1245,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["datainputschema",{"_index":771,"title":{"7-3":{}},"name":{},"text":{"7":{},"33":{},"53":{}},"component":{}}],["dataonli",{"_index":810,"title":{},"name":{},"text":{"8":{}},"component":{}}],["dataset",{"_index":1808,"title":{},"name":{},"text":{"26":{}},"component":{}}],["datasetlookup",{"_index":1839,"title":{},"name":{},"text":{"26":{}},"component":{}}],["datasourc",{"_index":1345,"title":{},"name":{},"text":{"16":{},"27":{},"30":{}},"component":{}}],["date",{"_index":1167,"title":{},"name":{},"text":{"14":{},"27":{}},"component":{}}],["day",{"_index":839,"title":{},"name":{},"text":{"9":{}},"component":{}}],["ddebug=fals",{"_index":2304,"title":{},"name":{},"text":{"34":{}},"component":{}}],["ddl",{"_index":1903,"title":{},"name":{},"text":{"27":{},"31":{}},"component":{}}],["debug",{"_index":490,"title":{},"name":{"39":{}},"text":{"5":{},"6":{},"23":{},"27":{},"60":{}},"component":{}}],["decid",{"_index":669,"title":{},"name":{},"text":{"6":{},"49":{}},"component":{}}],["decim",{"_index":612,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["decis",{"_index":106,"title":{},"name":{},"text":{"1":{},"9":{},"18":{},"70":{}},"component":{}}],["declar",{"_index":533,"title":{},"name":{},"text":{"6":{},"12":{},"18":{},"19":{},"20":{},"23":{},"24":{},"29":{},"33":{},"35":{},"37":{},"42":{},"45":{}},"component":{}}],["dedic",{"_index":1117,"title":{},"name":{},"text":{"14":{},"18":{}},"component":{}}],["deeper",{"_index":173,"title":{},"name":{},"text":{"1":{}},"component":{}}],["default",{"_index":376,"title":{"35-1":{}},"name":{},"text":{"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"21":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"34":{},"35":{},"36":{},"38":{},"41":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"65":{},"66":{},"68":{},"74":{}},"component":{}}],["default_builder_resource_nam",{"_index":2826,"title":{},"name":{},"text":{"47":{}},"component":{}}],["default_workflow_extens",{"_index":2827,"title":{},"name":{},"text":{"47":{}},"component":{}}],["defaultcondit",{"_index":883,"title":{},"name":{},"text":{"9":{},"33":{},"46":{},"47":{},"49":{}},"component":{}}],["deffer",{"_index":218,"title":{},"name":{},"text":{"2":{}},"component":{}}],["defin",{"_index":94,"title":{"23-3":{},"34-4":{},"34-8":{},"36-3":{}},"name":{"7":{}},"text":{"1":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"25":{},"26":{},"27":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"43":{},"45":{},"46":{},"47":{},"48":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"74":{}},"component":{}}],["definit",{"_index":91,"title":{"7":{},"65":{},"6-3":{},"6-8":{},"6-12":{},"11-1":{},"17-5":{},"36-1":{},"49-12":{},"65-1":{}},"name":{"65":{}},"text":{"1":{},"3":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"27":{},"28":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{},"53":{},"60":{},"64":{},"65":{},"66":{},"74":{}},"component":{}}],["defint",{"_index":813,"title":{},"name":{},"text":{"8":{}},"component":{}}],["deleg",{"_index":1379,"title":{},"name":{},"text":{"17":{},"32":{}},"component":{}}],["delet",{"_index":1932,"title":{},"name":{},"text":{"27":{},"49":{},"50":{},"53":{}},"component":{}}],["deliv",{"_index":1936,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["deliveri",{"_index":1858,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["demo\",node_name=\"2\",process_id=\"foreach\",version=\"1.0.0",{"_index":1797,"title":{},"name":{},"text":{"25":{}},"component":{}}],["demo\",node_name=\"2\",process_id=\"jsongreet\",version=\"1.0.0",{"_index":1793,"title":{},"name":{},"text":{"25":{}},"component":{}}],["demo\",node_name=\"2\",process_id=\"yamlgreet\",version=\"1.0.0",{"_index":1795,"title":{},"name":{},"text":{"25":{}},"component":{}}],["deniedvisa",{"_index":888,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["denot",{"_index":726,"title":{},"name":{},"text":{"6":{}},"component":{}}],["depend",{"_index":53,"title":{},"name":{},"text":{"1":{},"2":{},"7":{},"9":{},"10":{},"13":{},"14":{},"15":{},"17":{},"18":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"38":{},"41":{},"42":{},"43":{},"46":{},"54":{},"55":{},"57":{},"58":{},"59":{},"64":{},"65":{},"66":{},"67":{},"69":{}},"component":{}}],["depends_on",{"_index":1287,"title":{},"name":{},"text":{"16":{}},"component":{}}],["deploy",{"_index":68,"title":{"47":{},"57":{},"58":{},"59":{},"67":{},"9-6":{},"16-1":{},"16-3":{},"16-4":{},"16-5":{},"41-5":{},"47-11":{},"49-2":{},"57-2":{},"57-3":{},"57-4":{},"57-5":{},"58-2":{},"58-3":{},"58-4":{},"58-5":{},"59-2":{},"59-4":{},"59-5":{},"59-6":{},"67-1":{},"67-2":{}},"name":{"47":{},"57":{},"58":{},"59":{},"67":{}},"text":{"1":{},"2":{},"3":{},"6":{},"9":{},"14":{},"15":{},"16":{},"17":{},"21":{},"24":{},"27":{},"28":{},"30":{},"36":{},"41":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"69":{},"70":{}},"component":{}}],["deployment/sonataflow",{"_index":3006,"title":{},"name":{},"text":{"50":{}},"component":{}}],["deploymentconfig",{"_index":3293,"title":{},"name":{},"text":{"60":{}},"component":{}}],["deploymentconfigs.v1.apps.openshift.io",{"_index":3276,"title":{},"name":{},"text":{"60":{}},"component":{}}],["deploymentfailur",{"_index":3060,"title":{},"name":{},"text":{"54":{}},"component":{}}],["deploymentisunavail",{"_index":3061,"title":{},"name":{},"text":{"54":{}},"component":{}}],["deployments.v1.app",{"_index":3275,"title":{},"name":{},"text":{"60":{}},"component":{}}],["deployments/\\ncopi",{"_index":2852,"title":{},"name":{},"text":{"47":{}},"component":{}}],["deployments/app/\\ncopi",{"_index":2854,"title":{},"name":{},"text":{"47":{}},"component":{}}],["deployments/lib/\\ncopi",{"_index":2850,"title":{},"name":{},"text":{"47":{}},"component":{}}],["deployments/quarkus/\\n\\nexpos",{"_index":2855,"title":{},"name":{},"text":{"47":{}},"component":{}}],["desc",{"_index":1172,"title":{},"name":{},"text":{"14":{}},"component":{}}],["descend",{"_index":572,"title":{},"name":{},"text":{"6":{},"14":{},"26":{}},"component":{}}],["describ",{"_index":322,"title":{},"name":{},"text":{"4":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"17":{},"18":{},"19":{},"20":{},"21":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"68":{},"71":{},"72":{},"74":{}},"component":{}}],["descript",{"_index":334,"title":{},"name":{},"text":{"4":{},"5":{},"9":{},"11":{},"13":{},"16":{},"17":{},"20":{},"21":{},"23":{},"27":{},"32":{},"33":{},"36":{},"54":{},"71":{},"74":{}},"component":{}}],["descriptor",{"_index":113,"title":{},"name":{},"text":{"1":{},"53":{},"57":{},"58":{},"59":{}},"component":{}}],["desd",{"_index":920,"title":{},"name":{},"text":{"10":{},"35":{},"47":{},"49":{}},"component":{}}],["design",{"_index":798,"title":{},"name":{},"text":{"8":{},"10":{},"15":{},"28":{},"45":{},"46":{},"53":{},"73":{}},"component":{}}],["desir",{"_index":990,"title":{},"name":{},"text":{"11":{},"18":{},"47":{},"49":{},"57":{},"58":{},"59":{}},"component":{}}],["desktop",{"_index":2881,"title":{},"name":{},"text":{"47":{}},"component":{}}],["detail",{"_index":162,"title":{"31-8":{},"62-5":{},"63-1":{},"66-1":{}},"name":{},"text":{"1":{},"9":{},"14":{},"15":{},"16":{},"24":{},"30":{},"42":{},"45":{},"57":{},"62":{},"63":{},"65":{},"66":{}},"component":{}}],["detect",{"_index":1648,"title":{},"name":{},"text":{"21":{}},"component":{}}],["determin",{"_index":978,"title":{},"name":{},"text":{"11":{},"27":{},"33":{},"46":{},"60":{}},"component":{}}],["dev",{"_index":128,"title":{"62":{},"63":{},"64":{},"65":{},"66":{},"9-7":{},"46-5":{},"64-1":{}},"name":{"62":{},"63":{},"64":{},"65":{},"66":{}},"text":{"1":{},"2":{},"5":{},"9":{},"14":{},"15":{},"16":{},"21":{},"22":{},"29":{},"34":{},"46":{},"48":{},"49":{},"51":{},"53":{},"62":{},"63":{},"64":{},"65":{},"66":{}},"component":{}}],["dev.loc",{"_index":2542,"title":{},"name":{},"text":{"41":{},"58":{}},"component":{}}],["dev.local/kogito/serverless",{"_index":3229,"title":{},"name":{},"text":{"58":{}},"component":{}}],["dev.local/mi",{"_index":2541,"title":{},"name":{},"text":{"41":{}},"component":{}}],["dev.local/serverless",{"_index":1609,"title":{},"name":{},"text":{"21":{}},"component":{}}],["dev.quarkus.rest",{"_index":2302,"title":{},"name":{},"text":{"34":{}},"component":{}}],["develop",{"_index":290,"title":{"49":{},"14-4":{},"16-6":{},"34-6":{},"49-1":{},"54-2":{}},"name":{"40":{},"49":{}},"text":{"3":{},"5":{},"6":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"20":{},"21":{},"22":{},"26":{},"28":{},"34":{},"35":{},"37":{},"41":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"63":{},"64":{},"67":{},"69":{},"70":{}},"component":{}}],["devmod",{"_index":262,"title":{},"name":{},"text":{"2":{},"49":{},"51":{},"52":{}},"component":{}}],["devmode:\\n",{"_index":2959,"title":{},"name":{},"text":{"49":{}},"component":{}}],["devmodebaseimag",{"_index":3035,"title":{},"name":{},"text":{"52":{}},"component":{}}],["devprofil",{"_index":2798,"title":{},"name":{},"text":{"46":{}},"component":{}}],["devui",{"_index":3316,"title":{},"name":{},"text":{"64":{},"65":{},"66":{}},"component":{}}],["dexec.mainclass=\"org.kie.kogito.examples.sw.greeting.greeterservic",{"_index":2355,"title":{},"name":{},"text":{"35":{}},"component":{}}],["dextensions=\"kogito",{"_index":1352,"title":{},"name":{},"text":{"17":{},"21":{},"28":{}},"component":{}}],["dextensions=\"quarku",{"_index":1411,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{}}],["dfd85a369987",{"_index":3112,"title":{},"name":{},"text":{"55":{}},"component":{}}],["diagram",{"_index":1193,"title":{},"name":{},"text":{"14":{},"27":{},"33":{},"46":{},"64":{},"66":{},"73":{},"74":{}},"component":{}}],["dialog",{"_index":3401,"title":{},"name":{},"text":{"74":{}},"component":{}}],["differ",{"_index":169,"title":{"34-3":{},"34-4":{},"34-8":{}},"name":{},"text":{"1":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"18":{},"25":{},"27":{},"28":{},"29":{},"30":{},"34":{},"35":{},"36":{},"37":{},"43":{},"46":{},"47":{},"53":{},"57":{},"58":{},"59":{},"60":{},"65":{},"70":{}},"component":{}}],["difficult",{"_index":2283,"title":{},"name":{},"text":{"34":{}},"component":{}}],["digest",{"_index":1917,"title":{},"name":{},"text":{"27":{}},"component":{}}],["dimens",{"_index":1075,"title":{},"name":{},"text":{"13":{}},"component":{}}],["direct",{"_index":592,"title":{},"name":{},"text":{"6":{},"14":{},"15":{},"23":{},"28":{}},"component":{}}],["direct:logroutereplacehead",{"_index":1725,"title":{},"name":{},"text":{"23":{}},"component":{}}],["directli",{"_index":48,"title":{},"name":{},"text":{"1":{},"3":{},"15":{},"16":{},"21":{},"25":{},"26":{},"30":{},"47":{},"49":{},"60":{},"72":{}},"component":{}}],["directori",{"_index":210,"title":{},"name":{},"text":{"2":{},"7":{},"13":{},"17":{},"21":{},"23":{},"28":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"46":{},"53":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["disabl",{"_index":430,"title":{},"name":{},"text":{"5":{},"15":{},"16":{},"25":{},"27":{},"33":{},"60":{},"67":{}},"component":{}}],["discard",{"_index":944,"title":{},"name":{},"text":{"10":{},"12":{}},"component":{}}],["discov",{"_index":1748,"title":{},"name":{},"text":{"24":{},"49":{},"60":{}},"component":{}}],["discoveri",{"_index":312,"title":{"60":{},"60-2":{},"60-3":{},"60-4":{},"60-5":{},"60-6":{}},"name":{"60":{}},"text":{"3":{},"24":{},"33":{},"36":{},"38":{},"60":{}},"component":{}}],["dispatch",{"_index":1371,"title":{},"name":{},"text":{"17":{}},"component":{}}],["display",{"_index":159,"title":{"26":{}},"name":{},"text":{"1":{},"6":{},"10":{},"11":{},"12":{},"21":{},"26":{},"37":{},"62":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["dist",{"_index":3392,"title":{},"name":{},"text":{"72":{}},"component":{}}],["distinct",{"_index":2842,"title":{},"name":{},"text":{"47":{}},"component":{}}],["distribut",{"_index":1125,"title":{"16-2":{}},"name":{},"text":{"14":{},"15":{},"16":{},"21":{},"45":{},"47":{},"49":{}},"component":{}}],["divid",{"_index":716,"title":{},"name":{},"text":{"6":{}},"component":{}}],["dividend",{"_index":761,"title":{},"name":{},"text":{"6":{}},"component":{}}],["dividend\":\".dividend",{"_index":764,"title":{},"name":{},"text":{"6":{}},"component":{}}],["divis",{"_index":723,"title":{},"name":{},"text":{"6":{}},"component":{}}],["divisor",{"_index":762,"title":{},"name":{},"text":{"6":{}},"component":{}}],["divisor\":\".divisor",{"_index":765,"title":{},"name":{},"text":{"6":{}},"component":{}}],["djava.util.logging.manager=org.jboss.logmanager.logmanager\\\"\\nenv",{"_index":2860,"title":{},"name":{},"text":{"47":{}},"component":{}}],["dmy.sys.prop1=value1",{"_index":1883,"title":{},"name":{},"text":{"27":{}},"component":{}}],["dmy.sys.prop2=value2",{"_index":1884,"title":{},"name":{},"text":{"27":{}},"component":{}}],["dn",{"_index":3146,"title":{},"name":{},"text":{"57":{}},"component":{}}],["dnocod",{"_index":1598,"title":{},"name":{},"text":{"21":{}},"component":{}}],["do",{"_index":2960,"title":{},"name":{},"text":{"49":{},"53":{}},"component":{}}],["docker",{"_index":1283,"title":{},"name":{},"text":{"16":{},"21":{},"27":{},"29":{},"30":{},"33":{},"41":{},"47":{},"50":{},"55":{},"58":{},"59":{}},"component":{}}],["dockerfil",{"_index":2804,"title":{"47-3":{}},"name":{},"text":{"47":{}},"component":{}}],["document",{"_index":321,"title":{"7-4":{}},"name":{},"text":{"4":{},"8":{},"10":{},"11":{},"12":{},"13":{},"15":{},"17":{},"18":{},"20":{},"21":{},"24":{},"25":{},"26":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"67":{},"68":{},"71":{},"72":{},"74":{}},"component":{}}],["doe",{"_index":2447,"title":{},"name":{},"text":{"38":{},"49":{}},"component":{}}],["doesn’t",{"_index":198,"title":{},"name":{},"text":{"2":{},"21":{},"38":{},"47":{},"54":{}},"component":{}}],["domain",{"_index":1489,"title":{},"name":{},"text":{"19":{},"33":{},"45":{},"53":{},"57":{},"58":{}},"component":{}}],["domainmap",{"_index":3133,"title":{},"name":{},"text":{"57":{}},"component":{}}],["domest",{"_index":2607,"title":{},"name":{},"text":{"42":{}},"component":{}}],["domesticship",{"_index":2608,"title":{},"name":{},"text":{"42":{}},"component":{}}],["don",{"_index":909,"title":{},"name":{},"text":{"9":{}},"component":{}}],["done",{"_index":1069,"title":{},"name":{},"text":{"13":{},"14":{},"53":{}},"component":{}}],["don’t",{"_index":633,"title":{},"name":{},"text":{"6":{},"27":{},"47":{}},"component":{}}],["dooper",{"_index":2401,"title":{},"name":{},"text":{"36":{}},"component":{}}],["doubl",{"_index":2171,"title":{},"name":{},"text":{"33":{},"47":{}},"component":{}}],["down",{"_index":1964,"title":{},"name":{},"text":{"27":{},"66":{},"71":{}},"component":{}}],["download",{"_index":1802,"title":{},"name":{},"text":{"26":{},"31":{},"35":{},"41":{},"69":{},"72":{},"74":{}},"component":{}}],["dprojectartifactid=serverless",{"_index":1595,"title":{},"name":{},"text":{"21":{}},"component":{}}],["dprojectgroupid=org.acm",{"_index":1594,"title":{},"name":{},"text":{"21":{}},"component":{}}],["dquarkus.contain",{"_index":3079,"title":{},"name":{},"text":{"55":{},"58":{}},"component":{}}],["dquarkus.http.host=0.0.0.0",{"_index":2859,"title":{},"name":{},"text":{"47":{}},"component":{}}],["dquarkus.native.contain",{"_index":3099,"title":{},"name":{},"text":{"55":{}},"component":{}}],["dquarkus.native.remot",{"_index":3102,"title":{},"name":{},"text":{"55":{},"58":{}},"component":{}}],["drag",{"_index":3336,"title":{},"name":{},"text":{"66":{}},"component":{}}],["drawer",{"_index":3387,"title":{},"name":{},"text":{"71":{}},"component":{}}],["driven",{"_index":31,"title":{},"name":{},"text":{"1":{},"19":{},"42":{}},"component":{}}],["driver",{"_index":2996,"title":{},"name":{},"text":{"50":{}},"component":{}}],["drop",{"_index":1474,"title":{},"name":{},"text":{"18":{},"66":{},"71":{}},"component":{}}],["dskiptest",{"_index":3208,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["dsl",{"_index":1717,"title":{"23-3":{}},"name":{},"text":{"23":{}},"component":{}}],["due",{"_index":2524,"title":{},"name":{},"text":{"41":{},"43":{},"57":{},"58":{},"69":{}},"component":{}}],["duplic",{"_index":212,"title":{},"name":{},"text":{"2":{}},"component":{}}],["durat",{"_index":832,"title":{},"name":{},"text":{"9":{},"25":{},"26":{},"46":{}},"component":{}}],["dure",{"_index":690,"title":{"17-4":{}},"name":{},"text":{"6":{},"11":{},"16":{},"17":{},"23":{},"26":{},"30":{},"32":{},"36":{},"41":{},"42":{},"45":{},"46":{},"49":{},"50":{},"53":{},"60":{}},"component":{}}],["dynam",{"_index":2433,"title":{},"name":{},"text":{"37":{},"43":{},"73":{},"74":{}},"component":{}}],["e",{"_index":1045,"title":{},"name":{},"text":{"12":{},"27":{},"38":{},"41":{},"43":{},"45":{}},"component":{}}],["e.g",{"_index":2882,"title":{},"name":{},"text":{"47":{}},"component":{}}],["e0e7708d",{"_index":2232,"title":{},"name":{},"text":{"33":{}},"component":{}}],["e293aa293bf",{"_index":1670,"title":{},"name":{},"text":{"21":{}},"component":{}}],["e6ccbe9c94c3",{"_index":2785,"title":{},"name":{},"text":{"45":{}},"component":{}}],["eaab",{"_index":1181,"title":{},"name":{},"text":{"14":{}},"component":{}}],["each",{"_index":330,"title":{},"name":{},"text":{"4":{},"10":{},"12":{},"13":{},"15":{},"16":{},"17":{},"18":{},"19":{},"25":{},"27":{},"28":{},"31":{},"32":{},"34":{},"35":{},"36":{},"37":{},"43":{},"45":{},"46":{},"47":{},"59":{},"63":{},"66":{},"70":{},"74":{}},"component":{}}],["earli",{"_index":2975,"title":{},"name":{},"text":{"50":{}},"component":{}}],["earlier",{"_index":693,"title":{},"name":{},"text":{"6":{},"59":{}},"component":{}}],["easi",{"_index":3340,"title":{},"name":{},"text":{"67":{}},"component":{}}],["easiest",{"_index":2935,"title":{},"name":{},"text":{"49":{}},"component":{}}],["easili",{"_index":3239,"title":{},"name":{},"text":{"59":{}},"component":{}}],["ecosystem",{"_index":50,"title":{},"name":{},"text":{"1":{},"22":{},"28":{}},"component":{}}],["edit",{"_index":111,"title":{"48-1":{}},"name":{},"text":{"1":{},"21":{},"22":{},"26":{},"31":{},"47":{},"48":{},"49":{},"53":{},"68":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["editor",{"_index":99,"title":{"72":{},"73":{},"74":{},"72-1":{},"72-2":{},"73-1":{},"74-1":{},"74-2":{},"74-4":{}},"name":{"72":{},"73":{},"74":{}},"text":{"1":{},"21":{},"22":{},"23":{},"47":{},"48":{},"49":{},"65":{},"67":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["efafe4dfb3e7",{"_index":1746,"title":{},"name":{},"text":{"23":{}},"component":{}}],["elaps",{"_index":2502,"title":{},"name":{},"text":{"38":{}},"component":{}}],["elect",{"_index":1856,"title":{"27-16":{}},"name":{},"text":{"27":{}},"component":{}}],["element",{"_index":1491,"title":{},"name":{},"text":{"19":{}},"component":{}}],["else’",{"_index":3361,"title":{},"name":{},"text":{"68":{}},"component":{}}],["email",{"_index":1506,"title":{},"name":{},"text":{"19":{},"47":{}},"component":{}}],["emb",{"_index":929,"title":{},"name":{},"text":{"10":{}},"component":{}}],["embed",{"_index":906,"title":{"14-14":{},"28-4":{},"46-6":{}},"name":{},"text":{"9":{},"10":{},"11":{},"15":{},"21":{},"27":{},"28":{},"46":{}},"component":{}}],["emitt",{"_index":1467,"title":{},"name":{},"text":{"18":{}},"component":{}}],["empti",{"_index":451,"title":{},"name":{},"text":{"5":{},"12":{},"35":{},"60":{}},"component":{}}],["emul",{"_index":3226,"title":{},"name":{},"text":{"58":{}},"component":{}}],["enabl",{"_index":429,"title":{"23-1":{},"25-1":{},"60-5":{},"74-5":{}},"name":{},"text":{"5":{},"6":{},"10":{},"11":{},"14":{},"15":{},"16":{},"17":{},"18":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"38":{},"41":{},"42":{},"47":{},"48":{},"51":{},"58":{},"60":{},"62":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"72":{},"74":{}},"component":{}}],["enabled=fals",{"_index":2108,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["encapsul",{"_index":1441,"title":{},"name":{},"text":{"18":{}},"component":{}}],["encod",{"_index":1618,"title":{},"name":{},"text":{"21":{}},"component":{}}],["encount",{"_index":977,"title":{},"name":{},"text":{"11":{},"69":{}},"component":{}}],["end",{"_index":643,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"21":{},"23":{},"26":{},"29":{},"33":{},"34":{},"36":{},"37":{},"42":{},"47":{},"49":{},"53":{},"66":{}},"component":{}}],["endpoint",{"_index":227,"title":{"34":{},"14-7":{},"17-3":{},"34-3":{},"36-5":{}},"name":{"34":{}},"text":{"2":{},"5":{},"6":{},"7":{},"10":{},"13":{},"14":{},"15":{},"16":{},"17":{},"20":{},"21":{},"23":{},"25":{},"26":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"42":{},"43":{},"54":{},"60":{},"65":{},"66":{}},"component":{}}],["endsuccess",{"_index":2160,"title":{},"name":{},"text":{"33":{}},"component":{}}],["endwitherror",{"_index":2158,"title":{},"name":{},"text":{"33":{}},"component":{}}],["enforc",{"_index":2526,"title":{},"name":{},"text":{"41":{}},"component":{}}],["engin",{"_index":859,"title":{},"name":{},"text":{"9":{},"11":{},"19":{},"23":{},"30":{},"36":{},"45":{},"48":{},"60":{}},"component":{}}],["english",{"_index":915,"title":{},"name":{},"text":{"10":{},"35":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["enough",{"_index":1357,"title":{},"name":{},"text":{"17":{}},"component":{}}],["ensur",{"_index":670,"title":{},"name":{},"text":{"6":{},"9":{},"17":{},"25":{},"27":{},"29":{},"31":{},"41":{},"45":{},"49":{},"57":{},"58":{},"59":{},"67":{},"68":{}},"component":{}}],["enter",{"_index":1612,"title":{},"name":{},"text":{"21":{},"35":{},"41":{},"54":{},"57":{},"58":{},"59":{},"62":{},"64":{},"65":{},"66":{},"69":{},"71":{},"74":{}},"component":{}}],["enterpris",{"_index":1654,"title":{},"name":{},"text":{"21":{},"69":{}},"component":{}}],["entir",{"_index":562,"title":{},"name":{},"text":{"6":{},"10":{},"19":{},"45":{},"47":{},"67":{}},"component":{}}],["entiti",{"_index":1443,"title":{},"name":{},"text":{"18":{},"27":{}},"component":{}}],["entri",{"_index":2824,"title":{},"name":{},"text":{"47":{},"53":{}},"component":{}}],["entrypoint",{"_index":1128,"title":{},"name":{},"text":{"14":{}},"component":{}}],["enum",{"_index":2326,"title":{"35-1":{}},"name":{},"text":{"74":{}},"component":{}}],["enumer",{"_index":468,"title":{},"name":{},"text":{"5":{},"35":{}},"component":{}}],["env",{"_index":1320,"title":{},"name":{},"text":{"16":{},"27":{},"58":{}},"component":{}}],["environ",{"_index":902,"title":{"27-4":{},"27-5":{},"34-3":{},"34-4":{},"34-8":{}},"name":{},"text":{"9":{},"16":{},"17":{},"22":{},"27":{},"28":{},"32":{},"33":{},"34":{},"36":{},"37":{},"41":{},"43":{},"46":{},"49":{},"50":{},"58":{},"59":{},"67":{}},"component":{}}],["ephemer",{"_index":1343,"title":{"27-10":{}},"name":{},"text":{"16":{},"27":{}},"component":{}}],["ephemeral:1.43.0.fin",{"_index":503,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["equal",{"_index":940,"title":{},"name":{},"text":{"10":{},"14":{}},"component":{}}],["equals_to",{"_index":1835,"title":{},"name":{},"text":{"26":{}},"component":{}}],["equalto(\"hello",{"_index":2470,"title":{},"name":{},"text":{"38":{}},"component":{}}],["error",{"_index":82,"title":{"11":{},"4-6":{},"11-1":{},"11-2":{}},"name":{"11":{}},"text":{"1":{},"4":{},"6":{},"7":{},"11":{},"18":{},"26":{},"33":{},"38":{},"45":{},"49":{},"58":{},"59":{},"65":{},"66":{},"69":{},"73":{},"74":{}},"component":{}}],["error.messag",{"_index":1850,"title":{},"name":{},"text":{"26":{}},"component":{}}],["errorref",{"_index":873,"title":{},"name":{},"text":{"9":{},"11":{},"33":{},"46":{}},"component":{}}],["errorref\":\"process",{"_index":2687,"title":{},"name":{},"text":{"45":{}},"component":{}}],["establish",{"_index":1938,"title":{},"name":{},"text":{"27":{},"31":{}},"component":{}}],["etc",{"_index":613,"title":{},"name":{},"text":{"6":{},"9":{},"23":{},"27":{},"28":{},"33":{},"53":{}},"component":{}}],["eur",{"_index":2220,"title":{},"name":{},"text":{"33":{}},"component":{}}],["eval",{"_index":3212,"title":{},"name":{},"text":{"58":{}},"component":{}}],["evalu",{"_index":361,"title":{},"name":{},"text":{"4":{},"10":{},"19":{},"23":{},"33":{},"42":{},"51":{}},"component":{}}],["even",{"_index":47,"title":{},"name":{},"text":{"1":{},"11":{},"18":{},"30":{},"49":{}},"component":{}}],["event",{"_index":7,"title":{"8":{},"17":{},"18":{},"19":{},"1-5":{},"4-3":{},"8-1":{},"9-2":{},"9-5":{},"14-12":{},"14-13":{},"16-4":{},"16-5":{},"17-1":{},"17-2":{},"17-3":{},"17-5":{},"19-1":{},"20-1":{},"20-2":{},"27-12":{},"27-13":{},"27-14":{},"28-1":{},"65-7":{},"66-2":{}},"name":{"8":{},"17":{},"18":{},"19":{}},"text":{"1":{},"2":{},"3":{},"4":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"27":{},"28":{},"30":{},"37":{},"41":{},"42":{},"45":{},"46":{},"51":{},"57":{},"58":{},"59":{},"65":{},"66":{}},"component":{}}],["event1",{"_index":892,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["event2",{"_index":898,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["event_state_timeout",{"_index":2789,"title":{"46-3":{}},"name":{},"text":{"46":{}},"component":{}}],["eventbodi",{"_index":1033,"title":{},"name":{},"text":{"12":{}},"component":{}}],["eventbody.put(\"dummyeventvari",{"_index":1036,"title":{},"name":{},"text":{"12":{}},"component":{}}],["eventbody.put(\"result",{"_index":1035,"title":{},"name":{},"text":{"12":{}},"component":{}}],["eventcondit",{"_index":880,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["eventdata",{"_index":2793,"title":{},"name":{},"text":{"46":{}},"component":{}}],["eventdatafilt",{"_index":893,"title":{},"name":{},"text":{"9":{},"10":{},"12":{},"46":{}},"component":{}}],["eventing.knative.dev/v1",{"_index":1247,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"27":{}},"component":{}}],["eventing:1.43.0.fin",{"_index":3178,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["eventinput",{"_index":2436,"title":{},"name":{},"text":{"37":{}},"component":{}}],["eventinput.getprocessinstanceid",{"_index":2440,"title":{},"name":{},"text":{"37":{}},"component":{}}],["eventref",{"_index":805,"title":{},"name":{},"text":{"8":{},"9":{},"10":{},"12":{},"19":{},"37":{},"46":{}},"component":{}}],["eventrefdefinit",{"_index":369,"title":{},"name":{},"text":{"4":{}},"component":{}}],["events.connector=quarku",{"_index":1257,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events.connector=smallry",{"_index":1262,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events.method=post",{"_index":1259,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events.top",{"_index":1959,"title":{},"name":{},"text":{"27":{}},"component":{}}],["events.topic=kogito",{"_index":1263,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events.url=${k_sink",{"_index":1258,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["events.url=${k_sink:http://localhost:8280/v2/jobs/ev",{"_index":1970,"title":{},"name":{},"text":{"28":{}},"component":{}}],["events.value.serializer=org.apache.kafka.common.serialization.stringseri",{"_index":1264,"title":{},"name":{},"text":{"14":{},"16":{},"28":{}},"component":{}}],["events_support",{"_index":1946,"title":{},"name":{},"text":{"27":{}},"component":{}}],["eventtimeout",{"_index":863,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["eventu",{"_index":279,"title":{},"name":{},"text":{"3":{},"27":{},"37":{}},"component":{}}],["everyth",{"_index":2893,"title":{},"name":{},"text":{"47":{},"49":{},"50":{},"59":{}},"component":{}}],["everytim",{"_index":492,"title":{},"name":{},"text":{"5":{}},"component":{}}],["evolv",{"_index":272,"title":{},"name":{},"text":{"3":{},"49":{}},"component":{}}],["exactli",{"_index":840,"title":{},"name":{},"text":{"9":{}},"component":{}}],["exampl",{"_index":176,"title":{"45":{},"6-20":{},"7-3":{},"8-1":{},"10-1":{},"10-2":{},"10-3":{},"11-2":{},"12-1":{},"16-4":{},"16-5":{},"17-5":{},"18-2":{},"19-1":{},"23-4":{},"25-5":{},"32-2":{},"32-3":{},"32-4":{},"32-5":{},"32-6":{},"33-1":{},"33-2":{},"33-3":{},"37-1":{},"42-3":{},"45-2":{},"45-3":{},"46-9":{},"55-1":{},"60-4":{}},"name":{"46":{}},"text":{"1":{},"2":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"65":{},"66":{},"67":{},"71":{},"74":{}},"component":{}}],["example.json",{"_index":2055,"title":{},"name":{},"text":{"32":{}},"component":{}}],["examples.git",{"_index":2006,"title":{},"name":{},"text":{"30":{},"33":{},"46":{},"55":{}},"component":{}}],["examples/serverless",{"_index":1572,"title":{},"name":{},"text":{"21":{},"33":{},"38":{},"46":{},"55":{}},"component":{}}],["exceed",{"_index":891,"title":{},"name":{},"text":{"9":{}},"component":{}}],["except",{"_index":367,"title":{},"name":{},"text":{"4":{},"7":{},"11":{},"45":{},"60":{}},"component":{}}],["excerpt",{"_index":2410,"title":{},"name":{},"text":{"36":{},"47":{}},"component":{}}],["exchang",{"_index":2126,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchanged",{"_index":2154,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchanger",{"_index":2148,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchangerateresult",{"_index":2184,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchangeworkflowhelp",{"_index":2164,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exchangeworkflowhelper.java",{"_index":2165,"title":{},"name":{},"text":{"33":{}},"component":{}}],["exclus",{"_index":346,"title":{},"name":{},"text":{"4":{},"8":{},"9":{},"32":{},"46":{}},"component":{}}],["exec:java",{"_index":2354,"title":{},"name":{},"text":{"35":{}},"component":{}}],["execut",{"_index":9,"title":{"1-7":{},"27-3":{},"31-4":{},"42-3":{},"46-4":{},"63-1":{}},"name":{"39":{}},"text":{"1":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"19":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"35":{},"38":{},"41":{},"42":{},"45":{},"46":{},"47":{},"48":{},"49":{},"55":{},"57":{},"58":{},"59":{},"63":{},"64":{},"66":{},"69":{},"74":{}},"component":{}}],["executeworkitem",{"_index":708,"title":{},"name":{},"text":{"6":{}},"component":{}}],["executioncount",{"_index":1149,"title":{},"name":{},"text":{"14":{}},"component":{}}],["executionstatu",{"_index":2156,"title":{},"name":{},"text":{"33":{}},"component":{}}],["executionstatusmessag",{"_index":2161,"title":{},"name":{},"text":{"33":{}},"component":{}}],["executor",{"_index":201,"title":{},"name":{},"text":{"2":{},"45":{}},"component":{}}],["exemplifi",{"_index":589,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["exhaust",{"_index":981,"title":{},"name":{},"text":{"11":{}},"component":{}}],["exist",{"_index":147,"title":{},"name":{},"text":{"1":{},"5":{},"8":{},"10":{},"14":{},"16":{},"18":{},"31":{},"34":{},"35":{},"43":{},"46":{},"60":{},"68":{},"74":{}},"component":{}}],["exitmessag",{"_index":895,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["expect",{"_index":561,"title":{},"name":{},"text":{"6":{},"7":{},"11":{},"12":{},"14":{},"16":{},"23":{},"29":{},"35":{},"38":{},"42":{},"55":{},"60":{}},"component":{}}],["experi",{"_index":289,"title":{},"name":{},"text":{"3":{},"22":{},"73":{},"74":{}},"component":{}}],["expir",{"_index":882,"title":{},"name":{},"text":{"9":{},"29":{},"42":{}},"component":{}}],["explain",{"_index":1460,"title":{},"name":{},"text":{"18":{},"49":{},"59":{}},"component":{}}],["explicitli",{"_index":1134,"title":{},"name":{},"text":{"14":{},"18":{}},"component":{}}],["explor",{"_index":174,"title":{},"name":{},"text":{"1":{},"16":{},"66":{}},"component":{}}],["export",{"_index":2322,"title":{},"name":{},"text":{"34":{}},"component":{}}],["expos",{"_index":156,"title":{"25":{},"27-4":{}},"name":{"25":{}},"text":{"1":{},"14":{},"15":{},"25":{},"27":{},"33":{},"36":{},"38":{},"47":{},"49":{},"59":{},"60":{},"66":{}},"component":{}}],["exposur",{"_index":1139,"title":{},"name":{},"text":{"14":{}},"component":{}}],["express",{"_index":80,"title":{"10":{},"4-5":{},"10-1":{},"10-2":{},"10-3":{}},"name":{"10":{}},"text":{"1":{},"4":{},"6":{},"7":{},"10":{},"11":{},"13":{},"23":{},"26":{},"29":{},"33":{},"36":{},"42":{},"60":{}},"component":{}}],["expressionlang",{"_index":384,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{}}],["ext",{"_index":3179,"title":{},"name":{},"text":{"57":{},"58":{},"59":{},"64":{}},"component":{}}],["extend",{"_index":516,"title":{"69-1":{}},"name":{},"text":{"6":{},"30":{},"46":{},"69":{}},"component":{}}],["extens",{"_index":103,"title":{"15":{},"28":{},"62":{},"63":{},"64":{},"65":{},"66":{},"72":{},"74":{},"14-5":{},"14-14":{},"15-2":{},"64-1":{},"72-1":{},"72-2":{},"74-1":{},"74-3":{},"74-5":{}},"name":{"15":{},"28":{},"72":{},"74":{}},"text":{"1":{},"6":{},"7":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"24":{},"25":{},"27":{},"28":{},"29":{},"32":{},"34":{},"36":{},"37":{},"38":{},"41":{},"55":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"72":{},"73":{},"74":{}},"component":{}}],["extension.kogito.swf.silentlygeneratesvg",{"_index":3405,"title":{},"name":{},"text":{"74":{}},"component":{}}],["extensionid",{"_index":789,"title":{},"name":{},"text":{"7":{},"34":{}},"component":{}}],["extern",{"_index":137,"title":{},"name":{},"text":{"1":{},"2":{},"6":{},"9":{},"11":{},"12":{},"15":{},"19":{},"27":{},"37":{},"47":{},"54":{},"57":{},"67":{},"74":{}},"component":{}}],["extra",{"_index":1141,"title":{},"name":{},"text":{"14":{}},"component":{}}],["extract",{"_index":740,"title":{},"name":{},"text":{"6":{},"19":{},"26":{},"29":{},"31":{},"36":{},"72":{}},"component":{}}],["f",{"_index":1424,"title":{},"name":{},"text":{"17":{},"25":{},"28":{},"31":{},"47":{},"49":{},"50":{},"57":{},"58":{},"59":{}},"component":{}}],["f0f9",{"_index":1100,"title":{},"name":{},"text":{"13":{}},"component":{}}],["f5c5d5d784ad",{"_index":2452,"title":{},"name":{},"text":{"38":{}},"component":{}}],["f779929c9937\",\"workflowdata\":{\"symbol\":\"kgto\",\"currentprice\":59.36,\"profit\":\"19",{"_index":2320,"title":{},"name":{},"text":{"34":{}},"component":{}}],["fabric8",{"_index":3306,"title":{},"name":{},"text":{"60":{}},"component":{}}],["facilit",{"_index":1408,"title":{},"name":{},"text":{"17":{},"27":{},"28":{},"29":{},"46":{}},"component":{}}],["fact",{"_index":1023,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["fahrenheit",{"_index":932,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["fail",{"_index":454,"title":{},"name":{},"text":{"5":{},"7":{},"18":{},"27":{},"33":{},"38":{},"43":{},"45":{},"49":{},"54":{}},"component":{}}],["failonvalidationerror",{"_index":777,"title":{},"name":{},"text":{"7":{}},"component":{}}],["failsaf",{"_index":1981,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["failservic",{"_index":2749,"title":{},"name":{},"text":{"45":{}},"component":{}}],["failservice\":\".failservic",{"_index":2683,"title":{},"name":{},"text":{"45":{}},"component":{}}],["failservice\":\"shippingservic",{"_index":2757,"title":{},"name":{},"text":{"45":{}},"component":{}}],["failur",{"_index":203,"title":{"49-9":{}},"name":{},"text":{"2":{},"11":{},"38":{},"45":{},"49":{},"51":{},"54":{},"65":{},"66":{}},"component":{}}],["failurethreshold",{"_index":3193,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["fake",{"_index":2285,"title":{},"name":{},"text":{"34":{}},"component":{}}],["fals",{"_index":348,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"14":{},"15":{},"16":{},"17":{},"27":{},"30":{},"31":{},"36":{},"48":{},"49":{},"54":{},"55":{},"58":{}},"component":{}}],["familiar",{"_index":400,"title":{"22":{}},"name":{"22":{}},"text":{"4":{},"21":{},"36":{},"43":{},"55":{}},"component":{}}],["fast",{"_index":2557,"title":{},"name":{},"text":{"41":{}},"component":{}}],["faster",{"_index":3107,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{}},"component":{}}],["fat",{"_index":2316,"title":{},"name":{},"text":{"34":{}},"component":{}}],["fb11",{"_index":1153,"title":{},"name":{},"text":{"14":{}},"component":{}}],["fe5a3577efdd\",\"workflowdata\":{\"name\":\"john\",\"language\":\"english\",\"greeting\":\"hello",{"_index":2925,"title":{},"name":{},"text":{"47":{}},"component":{}}],["featur",{"_index":184,"title":{"2":{},"49-10":{},"73-1":{},"74-2":{}},"name":{},"text":{"3":{},"4":{},"6":{},"14":{},"15":{},"16":{},"21":{},"23":{},"24":{},"27":{},"30":{},"31":{},"36":{},"38":{},"47":{},"49":{},"57":{},"58":{},"59":{},"60":{},"71":{},"73":{},"74":{}},"component":{}}],["feel",{"_index":404,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["fetch",{"_index":2871,"title":{},"name":{},"text":{"47":{},"49":{},"58":{},"65":{},"66":{},"67":{},"71":{},"74":{}},"component":{}}],["few",{"_index":307,"title":{},"name":{},"text":{"3":{},"17":{},"47":{},"48":{},"49":{},"55":{},"67":{}},"component":{}}],["field",{"_index":683,"title":{},"name":{},"text":{"6":{},"10":{},"12":{},"14":{},"21":{},"26":{},"30":{},"35":{},"47":{},"49":{},"50":{},"62":{},"65":{},"66":{},"68":{},"69":{},"71":{}},"component":{}}],["fieldpath",{"_index":1324,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["fieldref",{"_index":1323,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["figur",{"_index":924,"title":{},"name":{},"text":{"10":{},"11":{},"12":{},"19":{},"21":{},"26":{},"27":{},"33":{},"37":{},"42":{},"45":{},"46":{},"49":{},"57":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["file",{"_index":209,"title":{"53":{},"53-1":{},"62-2":{},"74-5":{}},"name":{"53":{}},"text":{"2":{},"3":{},"5":{},"6":{},"7":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"25":{},"26":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"48":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{},"62":{},"64":{},"66":{},"67":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["file.yaml#myfunction1",{"_index":2386,"title":{},"name":{},"text":{"36":{}},"component":{}}],["file=$(pwd",{"_index":3044,"title":{},"name":{},"text":{"53":{}},"component":{}}],["file=.dockerconfigjson=${home}/.docker/config.json",{"_index":2878,"title":{},"name":{},"text":{"47":{}},"component":{}}],["file_nam",{"_index":458,"title":{},"name":{},"text":{"5":{}},"component":{}}],["file_name(default",{"_index":2253,"title":{},"name":{},"text":{"34":{}},"component":{}}],["filenam",{"_index":2063,"title":{},"name":{},"text":{"32":{},"74":{}},"component":{}}],["filename.svg",{"_index":3407,"title":{},"name":{},"text":{"74":{}},"component":{}}],["filesystem",{"_index":420,"title":{},"name":{},"text":{"5":{}},"component":{}}],["fill",{"_index":2353,"title":{"65-4":{}},"name":{},"text":{"35":{},"65":{},"66":{}},"component":{}}],["fillworkitemhandl",{"_index":696,"title":{},"name":{},"text":{"6":{}},"component":{}}],["fillworkitemhandler(workflow",{"_index":732,"title":{},"name":{},"text":{"6":{}},"component":{}}],["filter",{"_index":381,"title":{"10-3":{},"62-4":{},"65-1":{}},"name":{},"text":{"4":{},"6":{},"10":{},"14":{},"16":{},"17":{},"21":{},"26":{},"27":{},"32":{},"33":{},"46":{},"50":{},"60":{},"62":{},"65":{},"66":{}},"component":{}}],["final",{"_index":593,"title":{},"name":{},"text":{"6":{},"10":{},"14":{},"16":{},"27":{},"28":{},"33":{},"36":{},"42":{},"43":{},"46":{},"47":{}},"component":{}}],["finalizewitherror",{"_index":875,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["financi",{"_index":2128,"title":{},"name":{},"text":{"33":{}},"component":{}}],["find",{"_index":401,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["fine",{"_index":2872,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["finish",{"_index":850,"title":{},"name":{},"text":{"9":{},"10":{},"11":{},"12":{},"21":{},"30":{},"35":{},"37":{},"38":{},"43":{},"47":{},"54":{}},"component":{}}],["fire",{"_index":1176,"title":{},"name":{},"text":{"14":{},"37":{}},"component":{}}],["fire&wait",{"_index":825,"title":{},"name":{},"text":{"8":{},"12":{}},"component":{}}],["first",{"_index":72,"title":{"67-1":{},"67-2":{}},"name":{"21":{}},"text":{"1":{},"4":{},"8":{},"10":{},"11":{},"12":{},"13":{},"15":{},"18":{},"21":{},"23":{},"25":{},"26":{},"29":{},"30":{},"33":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"46":{},"47":{},"49":{},"50":{},"54":{},"55":{},"58":{},"59":{},"60":{},"67":{}},"component":{}}],["fit",{"_index":1967,"title":{},"name":{},"text":{"28":{}},"component":{}}],["fix",{"_index":182,"title":{"2-2":{}},"name":{},"text":{"5":{},"16":{},"41":{},"43":{},"47":{},"49":{},"69":{}},"component":{}}],["flag",{"_index":780,"title":{},"name":{},"text":{"7":{},"9":{},"11":{},"21":{},"41":{},"46":{},"55":{},"69":{}},"component":{}}],["flasgger",{"_index":2393,"title":{},"name":{},"text":{"36":{}},"component":{}}],["flexibl",{"_index":1124,"title":{},"name":{},"text":{"14":{}},"component":{}}],["fli",{"_index":2888,"title":{},"name":{},"text":{"47":{}},"component":{}}],["float",{"_index":611,"title":{},"name":{},"text":{"6":{},"23":{},"36":{}},"component":{}}],["flow",{"_index":267,"title":{},"name":{},"text":{"2":{},"7":{},"9":{},"17":{},"20":{},"21":{},"32":{},"33":{},"37":{},"42":{},"45":{},"46":{},"47":{},"49":{},"53":{}},"component":{}}],["flyway",{"_index":150,"title":{"31-2":{},"31-3":{},"31-7":{},"31-8":{}},"name":{"31":{}},"text":{"1":{},"14":{},"16":{},"27":{},"30":{},"31":{}},"component":{}}],["flyway.loc",{"_index":2037,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway.locations=classpath:com.mycomp.migration,database/migrations,filesystem:/sql",{"_index":2038,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway.password=bar",{"_index":2029,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway.url=jdbc:postgresql://localhost:5432/foobardb",{"_index":2027,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway.user=foo",{"_index":2028,"title":{},"name":{},"text":{"31":{}},"component":{}}],["flyway_schema_histori",{"_index":2024,"title":{},"name":{},"text":{"31":{}},"component":{}}],["focus",{"_index":1021,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["folder",{"_index":2035,"title":{},"name":{},"text":{"31":{},"36":{},"41":{},"67":{},"68":{},"72":{},"74":{}},"component":{}}],["follow",{"_index":69,"title":{},"name":{},"text":{"1":{},"2":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["footprint",{"_index":3098,"title":{},"name":{},"text":{"55":{}},"component":{}}],["foreach",{"_index":358,"title":{},"name":{},"text":{"4":{},"5":{},"25":{}},"component":{}}],["forget",{"_index":667,"title":{},"name":{},"text":{"6":{}},"component":{}}],["form",{"_index":399,"title":{},"name":{},"text":{"4":{},"9":{},"18":{},"65":{},"66":{}},"component":{}}],["format",{"_index":787,"title":{},"name":{},"text":{"7":{},"9":{},"14":{},"17":{},"18":{},"19":{},"23":{},"26":{},"30":{},"32":{},"33":{},"36":{},"48":{},"65":{},"66":{},"74":{}},"component":{}}],["former",{"_index":1022,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["found",{"_index":320,"title":{"4-13":{},"5-1":{},"6-22":{},"7-6":{},"8-3":{},"9-11":{},"10-5":{},"11-4":{},"12-3":{},"13-5":{},"14-16":{},"15-4":{},"16-9":{},"17-7":{},"18-5":{},"19-3":{},"20-3":{},"21-7":{},"22-1":{},"23-6":{},"24-3":{},"25-6":{},"26-5":{},"27-17":{},"28-5":{},"29-4":{},"30-3":{},"31-9":{},"32-8":{},"33-5":{},"34-10":{},"35-7":{},"36-7":{},"37-4":{},"38-2":{},"41-7":{},"42-5":{},"43-5":{},"45-5":{},"46-11":{},"47-14":{},"48-4":{},"49-14":{},"50-10":{},"53-4":{},"54-5":{},"55-6":{},"57-6":{},"58-6":{},"59-7":{},"60-8":{},"62-6":{},"63-2":{},"64-2":{},"65-8":{},"66-3":{},"67-3":{},"68-4":{},"69-3":{},"70-3":{},"71-3":{},"72-3":{},"73-3":{},"74-7":{}},"name":{},"text":{"6":{},"11":{},"16":{},"18":{},"27":{},"35":{},"36":{},"38":{},"59":{},"60":{}},"component":{}}],["foundat",{"_index":325,"title":{},"name":{},"text":{"4":{},"6":{}},"component":{}}],["four",{"_index":711,"title":{},"name":{},"text":{"6":{},"47":{}},"component":{}}],["fqcn",{"_index":539,"title":{},"name":{},"text":{"6":{},"11":{},"45":{}},"component":{}}],["framework",{"_index":56,"title":{},"name":{},"text":{"1":{},"33":{},"36":{},"42":{}},"component":{}}],["fraud",{"_index":2604,"title":{},"name":{},"text":{"42":{}},"component":{}}],["fraudevalu",{"_index":2605,"title":{},"name":{},"text":{"42":{}},"component":{}}],["free",{"_index":405,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["from/test",{"_index":2586,"title":{},"name":{},"text":{"42":{}},"component":{}}],["from=build",{"_index":2845,"title":{},"name":{},"text":{"47":{}},"component":{}}],["fulfil",{"_index":2668,"title":{},"name":{},"text":{"45":{}},"component":{}}],["full",{"_index":275,"title":{},"name":{},"text":{"3":{},"16":{},"27":{},"28":{},"29":{},"34":{},"41":{},"72":{}},"component":{}}],["full_uri",{"_index":459,"title":{},"name":{},"text":{"5":{},"34":{}},"component":{}}],["fulli",{"_index":335,"title":{},"name":{},"text":{"4":{},"6":{},"11":{},"45":{}},"component":{}}],["function",{"_index":96,"title":{"6":{},"4-2":{},"6-1":{},"6-2":{},"6-3":{},"6-4":{},"6-5":{},"6-6":{},"6-7":{},"6-8":{},"6-9":{},"6-10":{},"6-11":{},"6-12":{},"6-14":{},"6-19":{},"6-20":{},"10-2":{},"23-3":{},"36-1":{},"36-3":{},"36-4":{}},"name":{"6":{},"24":{}},"text":{"1":{},"2":{},"4":{},"6":{},"8":{},"10":{},"11":{},"13":{},"14":{},"15":{},"18":{},"20":{},"23":{},"24":{},"26":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"47":{},"49":{},"51":{},"53":{},"60":{},"67":{},"71":{},"74":{}},"component":{}}],["function($l",{"_index":1812,"title":{},"name":{},"text":{"26":{}},"component":{}}],["function_nam",{"_index":461,"title":{},"name":{},"text":{"5":{},"34":{}},"component":{}}],["functiondef",{"_index":735,"title":{},"name":{},"text":{"6":{}},"component":{}}],["functiondefinit",{"_index":734,"title":{},"name":{},"text":{"6":{}},"component":{}}],["functionref",{"_index":528,"title":{},"name":{},"text":{"6":{},"8":{},"9":{},"10":{},"11":{},"13":{},"20":{},"23":{},"24":{},"33":{},"34":{},"35":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{},"53":{}},"component":{}}],["function’",{"_index":1751,"title":{},"name":{},"text":{"24":{}},"component":{}}],["further",{"_index":1340,"title":{},"name":{},"text":{"16":{},"33":{},"57":{},"58":{},"59":{}},"component":{}}],["futur",{"_index":354,"title":{},"name":{},"text":{"4":{},"19":{},"33":{},"36":{}},"component":{}}],["gateway",{"_index":1115,"title":{"14-9":{}},"name":{},"text":{"14":{}},"component":{}}],["gbp",{"_index":2239,"title":{},"name":{},"text":{"33":{}},"component":{}}],["gener",{"_index":249,"title":{"17-4":{},"54-1":{}},"name":{},"text":{"2":{},"3":{},"5":{},"6":{},"7":{},"9":{},"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"21":{},"25":{},"27":{},"28":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"41":{},"47":{},"48":{},"54":{},"57":{},"58":{},"59":{},"64":{},"65":{},"68":{},"73":{},"74":{}},"component":{}}],["generalerror",{"_index":794,"title":{},"name":{},"text":{"7":{}},"component":{}}],["generatecloudevent(ce.get().getextension(cloudeventextensionconstants.process_instance_id).tostr",{"_index":1058,"title":{},"name":{},"text":{"12":{}},"component":{}}],["generatecloudevent(str",{"_index":1032,"title":{},"name":{},"text":{"12":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].[auth_property_nam",{"_index":2062,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].api",{"_index":2087,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].bear",{"_index":2083,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].head",{"_index":2120,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].password",{"_index":2080,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].token",{"_index":2116,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.[filename].auth.[security_scheme_name].usernam",{"_index":2078,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.codegen.default.security.schem",{"_index":2059,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.codegen.default.security.scheme=http",{"_index":2060,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.codegen.spec.acme_financial_service_yml.bas",{"_index":2189,"title":{},"name":{},"text":{"33":{}},"component":{}}],["generator.security_example_json.auth.api_key_example.api",{"_index":2088,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.http_basic_example.password=my_passwd",{"_index":2081,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.http_basic_example.username=my_us",{"_index":2079,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.http_bearer_example.bear",{"_index":2084,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.oauth_example.head",{"_index":2122,"title":{},"name":{},"text":{"32":{}},"component":{}}],["generator.security_example_json.auth.oauth_example.token",{"_index":2118,"title":{},"name":{},"text":{"32":{}},"component":{}}],["get",{"_index":0,"title":{"22":{},"1-1":{}},"name":{"22":{}},"text":{"3":{},"4":{},"21":{},"25":{},"36":{},"43":{},"50":{},"55":{},"58":{}},"component":{}}],["get(\"/callback/{id",{"_index":1999,"title":{},"name":{},"text":{"29":{}},"component":{}}],["getexchanger",{"_index":2143,"title":{},"name":{},"text":{"33":{}},"component":{}}],["getexchangerateact",{"_index":2157,"title":{},"name":{},"text":{"33":{}},"component":{}}],["getpet",{"_index":2417,"title":{},"name":{},"text":{"36":{}},"component":{}}],["getpetbyid",{"_index":2413,"title":{},"name":{},"text":{"36":{}},"component":{}}],["getprofitfunct",{"_index":2291,"title":{},"name":{},"text":{"34":{}},"component":{}}],["getstockpric",{"_index":2287,"title":{},"name":{},"text":{"34":{}},"component":{}}],["getstockpricefunct",{"_index":2288,"title":{},"name":{},"text":{"34":{}},"component":{}}],["getstockprofit",{"_index":2297,"title":{},"name":{},"text":{"34":{}},"component":{}}],["getter",{"_index":2175,"title":{},"name":{},"text":{"33":{}},"component":{}}],["gist",{"_index":3356,"title":{},"name":{},"text":{"68":{}},"component":{}}],["git",{"_index":2004,"title":{},"name":{},"text":{"30":{},"33":{},"46":{},"55":{},"68":{}},"component":{}}],["git@github.com:kiegroup/kogito",{"_index":2005,"title":{},"name":{},"text":{"30":{}},"component":{}}],["github",{"_index":109,"title":{"68":{},"72":{},"68-1":{},"68-2":{},"68-3":{},"72-1":{},"72-2":{}},"name":{"68":{}},"text":{"1":{},"12":{},"13":{},"21":{},"22":{},"23":{},"30":{},"33":{},"34":{},"35":{},"37":{},"38":{},"45":{},"67":{},"68":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["give",{"_index":2943,"title":{},"name":{},"text":{"49":{}},"component":{}}],["given",{"_index":617,"title":{},"name":{},"text":{"6":{},"9":{},"17":{},"19":{},"27":{},"29":{},"34":{},"38":{},"42":{},"45":{},"46":{},"47":{},"49":{},"50":{},"52":{},"53":{},"57":{},"60":{}},"component":{}}],["global",{"_index":1482,"title":{"27-7":{}},"name":{},"text":{"18":{},"27":{},"32":{},"47":{},"60":{}},"component":{}}],["go",{"_index":172,"title":{},"name":{},"text":{"1":{},"26":{},"33":{},"36":{},"46":{},"53":{},"58":{},"64":{},"65":{},"66":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["goal",{"_index":1243,"title":{},"name":{},"text":{"14":{},"16":{},"27":{}},"component":{}}],["goe",{"_index":2938,"title":{},"name":{},"text":{"49":{}},"component":{}}],["good",{"_index":2173,"title":{},"name":{},"text":{"33":{}},"component":{}}],["googl",{"_index":3388,"title":{},"name":{},"text":{"72":{}},"component":{}}],["goto",{"_index":971,"title":{},"name":{},"text":{"11":{}},"component":{}}],["graalvm",{"_index":3072,"title":{},"name":{},"text":{"55":{}},"component":{}}],["gradl",{"_index":2019,"title":{},"name":{},"text":{"30":{},"57":{},"58":{},"59":{}},"component":{}}],["grafana",{"_index":1762,"title":{},"name":{},"text":{"25":{}},"component":{}}],["grant",{"_index":2131,"title":{},"name":{},"text":{"33":{},"69":{},"71":{}},"component":{}}],["graphic",{"_index":1853,"title":{},"name":{},"text":{"26":{}},"component":{}}],["graphiql",{"_index":1233,"title":{},"name":{},"text":{"14":{},"26":{}},"component":{}}],["graphql",{"_index":362,"title":{"14-7":{},"14-8":{},"14-10":{}},"name":{},"text":{"4":{},"14":{},"15":{},"16":{},"21":{},"26":{},"27":{}},"component":{}}],["greaterthan",{"_index":1162,"title":{},"name":{},"text":{"14":{}},"component":{}}],["greaterthanequ",{"_index":1163,"title":{},"name":{},"text":{"14":{}},"component":{}}],["greecepayload",{"_index":2621,"title":{},"name":{},"text":{"43":{}},"component":{}}],["greet",{"_index":627,"title":{},"name":{},"text":{"6":{},"10":{},"21":{},"24":{},"26":{},"35":{},"38":{},"47":{},"48":{},"49":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{}},"component":{}}],["greetact",{"_index":2905,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["greeter",{"_index":2330,"title":{},"name":{},"text":{"35":{}},"component":{}}],["greetfunct",{"_index":2903,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["greetinenglish",{"_index":922,"title":{},"name":{},"text":{"10":{},"47":{},"49":{}},"component":{}}],["greeting+.nam",{"_index":2906,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["greeting.proto",{"_index":2342,"title":{},"name":{},"text":{"35":{}},"component":{}}],["greeting.proto#greeter#sayhello",{"_index":2341,"title":{},"name":{},"text":{"35":{}},"component":{}}],["greeting_svc/greet",{"_index":2920,"title":{},"name":{},"text":{"47":{}},"component":{}}],["greeting_svc=$(minikub",{"_index":2912,"title":{},"name":{},"text":{"47":{}},"component":{}}],["greeting_svc=$(oc",{"_index":2917,"title":{},"name":{},"text":{"47":{}},"component":{}}],["greetinspanish",{"_index":923,"title":{},"name":{},"text":{"10":{},"47":{},"49":{}},"component":{}}],["greetperson",{"_index":2904,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["group",{"_index":803,"title":{},"name":{},"text":{"8":{},"17":{},"21":{},"26":{},"53":{},"60":{}},"component":{}}],["group/namespac",{"_index":3206,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["groupfunct",{"_index":1838,"title":{},"name":{},"text":{"26":{}},"component":{}}],["grpc",{"_index":114,"title":{"35":{},"35-3":{},"35-4":{},"35-5":{},"35-6":{}},"name":{"35":{}},"text":{"1":{},"5":{},"35":{},"45":{}},"component":{}}],["guarante",{"_index":1897,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{}}],["guid",{"_index":21,"title":{"1":{},"52":{}},"name":{"52":{}},"text":{"1":{},"2":{},"3":{},"9":{},"14":{},"16":{},"27":{},"28":{},"30":{},"32":{},"33":{},"34":{},"47":{},"49":{},"50":{},"57":{},"58":{},"59":{},"62":{}},"component":{}}],["gvk",{"_index":3266,"title":{},"name":{},"text":{"60":{}},"component":{}}],["h",{"_index":1097,"title":{},"name":{},"text":{"13":{},"17":{},"21":{},"24":{},"31":{},"33":{},"34":{},"35":{},"41":{},"45":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["halt",{"_index":865,"title":{},"name":{},"text":{"9":{}},"component":{}}],["hand",{"_index":2792,"title":{},"name":{},"text":{"46":{}},"component":{}}],["handl",{"_index":83,"title":{"11":{},"4-6":{},"11-2":{},"18-3":{}},"name":{"8":{},"11":{}},"text":{"1":{},"2":{},"3":{},"4":{},"6":{},"11":{},"12":{},"24":{},"27":{},"28":{},"30":{},"37":{},"42":{},"45":{},"47":{},"50":{},"58":{}},"component":{}}],["handlenovisadecis",{"_index":889,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["handler",{"_index":689,"title":{},"name":{},"text":{"6":{}},"component":{}}],["handling.sw.json",{"_index":2676,"title":{},"name":{},"text":{"45":{}},"component":{}}],["happen",{"_index":965,"title":{},"name":{},"text":{"11":{},"20":{},"49":{},"54":{}},"component":{}}],["hardcod",{"_index":2421,"title":{},"name":{},"text":{"36":{}},"component":{}}],["harden",{"_index":2814,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["hashmap",{"_index":1034,"title":{},"name":{},"text":{"12":{}},"component":{}}],["hat",{"_index":1582,"title":{"71":{},"71-1":{},"71-2":{}},"name":{},"text":{"21":{},"59":{},"67":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["hat’",{"_index":2895,"title":{},"name":{},"text":{"47":{}},"component":{}}],["have",{"_index":2543,"title":{},"name":{},"text":{"41":{},"47":{},"49":{},"53":{}},"component":{}}],["header",{"_index":598,"title":{},"name":{},"text":{"6":{},"8":{},"9":{},"10":{},"12":{},"17":{},"23":{},"32":{},"36":{},"37":{},"38":{},"42":{},"43":{},"65":{},"66":{}},"component":{}}],["header(\"accept",{"_index":2471,"title":{},"name":{},"text":{"38":{}},"component":{}}],["header(\"c",{"_index":2584,"title":{},"name":{},"text":{"42":{}},"component":{}}],["header.workflowid",{"_index":1728,"title":{},"name":{},"text":{"23":{}},"component":{}}],["health",{"_index":1366,"title":{},"name":{},"text":{"17":{},"21":{},"49":{}},"component":{}}],["healthi",{"_index":2961,"title":{},"name":{},"text":{"49":{},"54":{}},"component":{}}],["hello",{"_index":918,"title":{},"name":{},"text":{"10":{},"21":{},"32":{},"37":{},"38":{},"41":{},"47":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["hello.sw.json",{"_index":1605,"title":{},"name":{},"text":{"21":{}},"component":{}}],["hello_world",{"_index":1573,"title":{},"name":{},"text":{"21":{}},"component":{}}],["hellorepli",{"_index":2338,"title":{},"name":{},"text":{"35":{}},"component":{}}],["hellorequest",{"_index":2337,"title":{},"name":{},"text":{"35":{}},"component":{}}],["hellotest",{"_index":2453,"title":{},"name":{},"text":{"38":{}},"component":{}}],["hellotest.java",{"_index":2455,"title":{},"name":{},"text":{"38":{}},"component":{}}],["help",{"_index":308,"title":{},"name":{},"text":{"3":{},"7":{},"11":{},"17":{},"25":{},"41":{},"49":{},"54":{},"59":{},"60":{},"64":{},"65":{}},"component":{}}],["henc",{"_index":707,"title":{},"name":{},"text":{"6":{}},"component":{}}],["here",{"_index":407,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["here’",{"_index":2928,"title":{},"name":{},"text":{"48":{}},"component":{}}],["hibern",{"_index":1695,"title":{},"name":{},"text":{"21":{}},"component":{}}],["hide",{"_index":3395,"title":{},"name":{},"text":{"72":{}},"component":{}}],["highli",{"_index":2985,"title":{},"name":{},"text":{"50":{}},"component":{}}],["histori",{"_index":1394,"title":{},"name":{},"text":{"17":{},"31":{}},"component":{}}],["hit",{"_index":2601,"title":{},"name":{},"text":{"42":{},"49":{}},"component":{}}],["hold",{"_index":486,"title":{},"name":{},"text":{"5":{},"7":{},"12":{},"37":{},"47":{},"49":{}},"component":{}}],["home",{"_index":3377,"title":{},"name":{},"text":{"70":{}},"component":{}}],["home/kogito/launch/build",{"_index":2833,"title":{},"name":{},"text":{"47":{}},"component":{}}],["home/kogito/serverless",{"_index":2847,"title":{},"name":{},"text":{"47":{}},"component":{}}],["home/user/dev/kiegroup/kogito",{"_index":2507,"title":{},"name":{},"text":{"38":{}},"component":{}}],["home}/.docker/config.json",{"_index":2880,"title":{},"name":{},"text":{"47":{}},"component":{}}],["hood",{"_index":3256,"title":{},"name":{},"text":{"60":{}},"component":{}}],["host",{"_index":1910,"title":{},"name":{},"text":{"27":{},"31":{},"69":{}},"component":{}}],["host1:11222;host2:11222",{"_index":1913,"title":{},"name":{},"text":{"27":{}},"component":{}}],["host:port",{"_index":1950,"title":{},"name":{},"text":{"27":{}},"component":{}}],["hot",{"_index":196,"title":{},"name":{},"text":{"2":{}},"component":{}}],["hour",{"_index":842,"title":{},"name":{},"text":{"9":{}},"component":{}}],["hover",{"_index":3331,"title":{},"name":{},"text":{"66":{}},"component":{}}],["html",{"_index":1829,"title":{},"name":{},"text":{"26":{}},"component":{}}],["http",{"_index":133,"title":{"42":{},"17-3":{},"32-2":{},"37-2":{}},"name":{"42":{}},"text":{"1":{},"2":{},"6":{},"7":{},"10":{},"11":{},"14":{},"16":{},"17":{},"20":{},"21":{},"25":{},"27":{},"28":{},"29":{},"32":{},"35":{},"36":{},"37":{},"38":{},"42":{},"47":{},"49":{},"53":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"74":{}},"component":{}}],["http1",{"_index":3200,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["http://0.0.0.0:8080",{"_index":1690,"title":{},"name":{},"text":{"21":{}},"component":{}}],["http://127.0.0.1:57053",{"_index":2948,"title":{},"name":{},"text":{"49":{}},"component":{}}],["http://127.0.0.1:57053/q/swagger",{"_index":2951,"title":{},"name":{},"text":{"49":{}},"component":{}}],["http://custom",{"_index":622,"title":{},"name":{},"text":{"6":{},"24":{}},"component":{}}],["http://hello",{"_index":3161,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["http://localhost:8080",{"_index":1401,"title":{},"name":{},"text":{"17":{},"21":{}},"component":{}}],["http://localhost:8080/callback",{"_index":2431,"title":{},"name":{},"text":{"37":{}},"component":{}}],["http://localhost:8080/currency_exchange_workflow",{"_index":2222,"title":{},"name":{},"text":{"33":{}},"component":{}}],["http://localhost:8080/hello_world",{"_index":1702,"title":{},"name":{},"text":{"21":{}},"component":{}}],["http://localhost:8080/jsongreet",{"_index":2358,"title":{},"name":{},"text":{"35":{},"55":{}},"component":{}}],["http://localhost:8080/jsongreetbidistream",{"_index":2382,"title":{},"name":{},"text":{"35":{}},"component":{}}],["http://localhost:8080/jsongreetclientstream",{"_index":2376,"title":{},"name":{},"text":{"35":{}},"component":{}}],["http://localhost:8080/jsongreetserverstream",{"_index":2365,"title":{},"name":{},"text":{"35":{}},"component":{}}],["http://localhost:8080/order_saga_error_workflow",{"_index":2705,"title":{},"name":{},"text":{"45":{}},"component":{}}],["http://localhost:8080/parallel",{"_index":1096,"title":{},"name":{},"text":{"13":{}},"component":{}}],["http://localhost:8080/q/dev",{"_index":1338,"title":{},"name":{},"text":{"16":{},"64":{}},"component":{}}],["http://localhost:8080/q/graphql",{"_index":1238,"title":{},"name":{},"text":{"14":{}},"component":{}}],["http://localhost:8080/q/metr",{"_index":1811,"title":{},"name":{},"text":{"26":{}},"component":{}}],["http://localhost:8080/q/openapi",{"_index":792,"title":{},"name":{},"text":{"7":{}},"component":{}}],["http://localhost:8080/q/swagg",{"_index":1591,"title":{},"name":{},"text":{"21":{}},"component":{}}],["http://localhost:8080/resum",{"_index":1567,"title":{},"name":{},"text":{"20":{}},"component":{}}],["http://localhost:8080/stockprofit",{"_index":2308,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http://localhost:8080/wait",{"_index":2432,"title":{},"name":{},"text":{"37":{}},"component":{}}],["http://localhost:8081",{"_index":2500,"title":{},"name":{},"text":{"38":{}},"component":{}}],["http://localhost:8180",{"_index":1843,"title":{},"name":{},"text":{"26":{}},"component":{}}],["http://localhost:8180/graphiql",{"_index":1235,"title":{},"name":{},"text":{"14":{},"26":{}},"component":{}}],["http://localhost:8180/graphql",{"_index":1337,"title":{},"name":{},"text":{"16":{}},"component":{}}],["http://localhost:8180/graphql/?query=%7bprocessinstances%7bprocessid%20processname%20state%20start%20end%20businesskey%20error%7bmessage%7d%7d%7d%0a",{"_index":1851,"title":{},"name":{},"text":{"26":{}},"component":{}}],["http://localhost:8181",{"_index":2307,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http://localhost:8280/v2/jobs/ev",{"_index":1971,"title":{},"name":{},"text":{"28":{}},"component":{}}],["http://localhost:8281/auth/realms/kogito/protocol/openid",{"_index":2185,"title":{},"name":{},"text":{"33":{}},"component":{}}],["http://localhost:8282",{"_index":2305,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http://localhost:8383",{"_index":2306,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http://localhost:8483/financi",{"_index":2201,"title":{},"name":{},"text":{"33":{}},"component":{}}],["http://localhost:9000",{"_index":1365,"title":{},"name":{},"text":{"17":{}},"component":{}}],["http://myserver.com",{"_index":2426,"title":{},"name":{},"text":{"36":{}},"component":{}}],["http://myservice.mynamespace.cluster.svc.loc",{"_index":2270,"title":{},"name":{},"text":{"34":{}},"component":{}}],["http:400",{"_index":998,"title":{},"name":{},"text":{"11":{}},"component":{}}],["http_basic_exampl",{"_index":2067,"title":{},"name":{},"text":{"32":{}},"component":{}}],["httpget",{"_index":3194,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["https://docs.openshift.com/contain",{"_index":2913,"title":{},"name":{},"text":{"47":{}},"component":{}}],["https://example.com/oauth",{"_index":2095,"title":{},"name":{},"text":{"32":{}},"component":{}}],["https://example.com/oauth/token",{"_index":2097,"title":{},"name":{},"text":{"32":{}},"component":{}}],["https://github.com/cloudevents/spec/pul",{"_index":656,"title":{},"name":{},"text":{"6":{}},"component":{}}],["https://github.com/kiegroup/kogito",{"_index":2211,"title":{},"name":{},"text":{"33":{},"46":{},"55":{}},"component":{}}],["https://my.remote.host/apicatalog/apis/123/docu",{"_index":2259,"title":{},"name":{},"text":{"34":{}},"component":{}}],["https://raw.githubusercontent.com/kiegroup/kogito",{"_index":2939,"title":{},"name":{},"text":{"49":{},"50":{}},"component":{}}],["https://{url",{"_index":3416,"title":{},"name":{},"text":{"74":{}},"component":{}}],["huge",{"_index":1546,"title":{},"name":{},"text":{"20":{}},"component":{}}],["hybrid",{"_index":3418,"title":{},"name":{},"text":{"74":{}},"component":{}}],["i)error",{"_index":993,"title":{},"name":{},"text":{"11":{}},"component":{}}],["i.",{"_index":1234,"title":{"47-8":{}},"name":{},"text":{"14":{},"55":{}},"component":{}}],["icon",{"_index":333,"title":{},"name":{},"text":{"4":{},"65":{},"66":{},"67":{},"72":{}},"component":{}}],["id",{"_index":388,"title":{},"name":{},"text":{"4":{},"6":{},"9":{},"12":{},"13":{},"14":{},"17":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"29":{},"30":{},"33":{},"34":{},"36":{},"37":{},"38":{},"42":{},"49":{},"55":{},"57":{},"58":{},"59":{},"66":{},"71":{},"74":{}},"component":{}}],["id\":\"0f77abc",{"_index":3169,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["id\":\"217050a3",{"_index":2752,"title":{},"name":{},"text":{"45":{}},"component":{}}],["id\":\"358f97ba",{"_index":1099,"title":{},"name":{},"text":{"13":{}},"component":{}}],["id\":\"3da62df1",{"_index":1108,"title":{},"name":{},"text":{"13":{}},"component":{}}],["id\":\"4376cc50",{"_index":2359,"title":{},"name":{},"text":{"35":{}},"component":{}}],["id\":\"5ab5dcb8",{"_index":2310,"title":{},"name":{},"text":{"34":{}},"component":{}}],["id\":\"665911c5",{"_index":2366,"title":{},"name":{},"text":{"35":{}},"component":{}}],["id\":\"87cf8275",{"_index":1754,"title":{},"name":{},"text":{"24":{}},"component":{}}],["id\":\"a80c95d6",{"_index":2317,"title":{},"name":{},"text":{"34":{}},"component":{}}],["id\":\"b5c0bf16",{"_index":2713,"title":{},"name":{},"text":{"45":{}},"component":{}}],["id\":\"b5fbfaa3",{"_index":2921,"title":{},"name":{},"text":{"47":{}},"component":{}}],["id\":\"efb59bfa",{"_index":1703,"title":{},"name":{},"text":{"21":{}},"component":{}}],["id:\"23147fcc",{"_index":1195,"title":{},"name":{},"text":{"14":{}},"component":{}}],["id:\"66e05e9c",{"_index":1180,"title":{},"name":{},"text":{"14":{}},"component":{}}],["id=io.quarkus.platform",{"_index":1603,"title":{},"name":{},"text":{"21":{}},"component":{}}],["id=kogito",{"_index":2110,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["ideal",{"_index":30,"title":{},"name":{},"text":{"1":{}},"component":{}}],["ident",{"_index":254,"title":{},"name":{},"text":{"2":{}},"component":{}}],["identifi",{"_index":681,"title":{},"name":{},"text":{"6":{},"8":{},"11":{},"12":{},"19":{},"21":{},"23":{},"27":{},"28":{},"29":{},"32":{},"33":{},"36":{},"37":{},"42":{},"45":{},"49":{},"74":{}},"component":{}}],["ifnotpres",{"_index":3217,"title":{},"name":{},"text":{"58":{}},"component":{}}],["ignor",{"_index":370,"title":{},"name":{},"text":{"4":{}},"component":{}}],["illegalargumentexcept",{"_index":749,"title":{},"name":{},"text":{"6":{},"11":{},"23":{}},"component":{}}],["illegalargumentexception(",{"_index":1046,"title":{},"name":{},"text":{"12":{}},"component":{}}],["illegalargumentexception(\"odd",{"_index":555,"title":{},"name":{},"text":{"6":{}},"component":{}}],["illustr",{"_index":999,"title":{},"name":{},"text":{"11":{},"35":{},"37":{}},"component":{}}],["imag",{"_index":263,"title":{"55":{},"47-2":{},"47-10":{},"49-6":{},"55-3":{},"55-4":{}},"name":{"55":{},"56":{}},"text":{"2":{},"3":{},"5":{},"14":{},"16":{},"17":{},"21":{},"24":{},"27":{},"29":{},"36":{},"37":{},"41":{},"47":{},"49":{},"50":{},"51":{},"54":{},"55":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["image.build",{"_index":3078,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.build=tru",{"_index":3080,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.group",{"_index":3083,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.group=kiegroup",{"_index":3205,"title":{},"name":{},"text":{"57":{}},"component":{}}],["image.group=kogito",{"_index":3087,"title":{},"name":{},"text":{"55":{},"58":{},"59":{}},"component":{}}],["image.nam",{"_index":3086,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.name=serverless",{"_index":3088,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.push",{"_index":3092,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.push=fals",{"_index":3230,"title":{},"name":{},"text":{"58":{}},"component":{}}],["image.push=tru",{"_index":3093,"title":{},"name":{},"text":{"55":{},"57":{},"59":{}},"component":{}}],["image.registri",{"_index":3082,"title":{},"name":{},"text":{"55":{}},"component":{}}],["image.registry=dev.loc",{"_index":3231,"title":{},"name":{},"text":{"58":{}},"component":{}}],["image.registry=imag",{"_index":3254,"title":{},"name":{},"text":{"59":{}},"component":{}}],["image.registry=quay.io",{"_index":3090,"title":{},"name":{},"text":{"55":{},"57":{}},"component":{}}],["image.registry=some_of_the_values_abov",{"_index":3215,"title":{},"name":{},"text":{"58":{}},"component":{}}],["image.tag=1.0",{"_index":3089,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{}},"component":{}}],["image=[nam",{"_index":2546,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[name]:[tag",{"_index":2547,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[registry]/[repository]/[nam",{"_index":2550,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[registry]/[repository]/[name]:[tag",{"_index":2551,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[repository]/[nam",{"_index":2548,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=[repository]/[name]:[tag",{"_index":2549,"title":{},"name":{},"text":{"41":{}},"component":{}}],["image=dev.local/kogito/serverless",{"_index":3228,"title":{},"name":{},"text":{"58":{}},"component":{}}],["image=imag",{"_index":3252,"title":{},"name":{},"text":{"59":{}},"component":{}}],["image=quay.io/kiegroup/serverless",{"_index":3148,"title":{},"name":{},"text":{"57":{}},"component":{}}],["imagepullpolici",{"_index":1316,"title":{},"name":{},"text":{"16":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["imagestream",{"_index":2894,"title":{},"name":{},"text":{"47":{}},"component":{}}],["imaginari",{"_index":952,"title":{},"name":{},"text":{"10":{}},"component":{}}],["immedi",{"_index":1019,"title":{},"name":{},"text":{"12":{},"14":{},"16":{},"29":{},"37":{}},"component":{}}],["immut",{"_index":2806,"title":{"48-2":{}},"name":{},"text":{"47":{},"48":{},"49":{},"54":{}},"component":{}}],["implement",{"_index":76,"title":{"60-6":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"7":{},"9":{},"11":{},"17":{},"27":{},"33":{},"34":{},"35":{},"37":{},"43":{},"45":{},"47":{},"49":{},"51":{},"54":{},"67":{},"68":{}},"component":{}}],["import",{"_index":727,"title":{"68-3":{}},"name":{},"text":{"6":{},"7":{},"16":{},"27":{},"28":{},"33":{},"38":{},"43":{},"47":{},"48":{},"54":{},"59":{},"68":{}},"component":{}}],["improv",{"_index":236,"title":{},"name":{},"text":{"2":{}},"component":{}}],["inact",{"_index":1065,"title":{},"name":{},"text":{"13":{},"27":{}},"component":{}}],["includ",{"_index":260,"title":{},"name":{},"text":{"2":{},"3":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"21":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"45":{},"49":{},"51":{},"66":{},"67":{},"70":{},"74":{}},"component":{}}],["include=tru",{"_index":1276,"title":{},"name":{},"text":{"15":{}},"component":{}}],["incom",{"_index":444,"title":{},"name":{},"text":{"5":{},"17":{},"18":{},"19":{},"27":{},"37":{},"42":{},"46":{}},"component":{}}],["incoming(\"in",{"_index":1049,"title":{},"name":{},"text":{"12":{}},"component":{}}],["incoming/outgo",{"_index":3027,"title":{},"name":{},"text":{"51":{}},"component":{}}],["incomplet",{"_index":1661,"title":{},"name":{},"text":{"21":{}},"component":{}}],["incorpor",{"_index":1175,"title":{},"name":{},"text":{"14":{},"15":{},"16":{}},"component":{}}],["increas",{"_index":2994,"title":{},"name":{},"text":{"50":{}},"component":{}}],["independ",{"_index":903,"title":{},"name":{},"text":{"9":{},"19":{},"27":{},"43":{},"46":{}},"component":{}}],["index",{"_index":17,"title":{"14":{},"15":{},"16":{},"1-12":{},"14-1":{},"14-2":{},"14-3":{},"14-4":{},"14-5":{},"14-6":{},"14-7":{},"14-9":{},"14-10":{},"14-11":{},"14-14":{},"15-2":{},"16-1":{},"16-2":{},"16-3":{},"16-4":{},"16-5":{},"16-6":{},"16-7":{},"26-3":{}},"name":{"1":{},"3":{},"14":{},"15":{},"16":{}},"text":{"1":{},"5":{},"9":{},"14":{},"15":{},"16":{},"21":{},"26":{},"27":{},"46":{}},"component":{}}],["index.graphql.ui.alway",{"_index":1237,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{}}],["index.html",{"_index":3350,"title":{},"name":{},"text":{"67":{}},"component":{}}],["index.proto",{"_index":1681,"title":{},"name":{},"text":{"21":{}},"component":{}}],["indic",{"_index":467,"title":{},"name":{},"text":{"5":{},"6":{},"7":{},"8":{},"10":{},"12":{},"13":{},"16":{},"17":{},"18":{},"23":{},"24":{},"33":{},"34":{},"37":{},"45":{},"62":{},"66":{},"67":{}},"component":{}}],["individu",{"_index":1901,"title":{},"name":{},"text":{"27":{},"32":{}},"component":{}}],["inf/resources/persistence/protobuf:/home/kogito/data/protobuf",{"_index":1292,"title":{},"name":{},"text":{"16":{}},"component":{}}],["infinispan",{"_index":421,"title":{"27-11":{}},"name":{},"text":{"5":{},"14":{},"15":{},"27":{}},"component":{}}],["info",{"_index":522,"title":{},"name":{},"text":{"6":{},"21":{},"32":{},"33":{},"34":{},"36":{},"38":{},"45":{},"54":{},"55":{}},"component":{}}],["info.titl",{"_index":2264,"title":{},"name":{},"text":{"34":{}},"component":{}}],["inform",{"_index":323,"title":{"63-1":{}},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["ingress",{"_index":2949,"title":{},"name":{},"text":{"49":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["ingresses.v1.networking.k8s.io",{"_index":3279,"title":{},"name":{},"text":{"60":{}},"component":{}}],["inherit",{"_index":691,"title":{},"name":{},"text":{"6":{}},"component":{}}],["init",{"_index":769,"title":{},"name":{},"text":{"6":{},"38":{}},"component":{}}],["initi",{"_index":911,"title":{},"name":{},"text":{"10":{},"12":{},"16":{},"27":{},"31":{},"37":{},"45":{},"47":{},"57":{},"58":{},"59":{}},"component":{}}],["initialdelaysecond",{"_index":3196,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["inject",{"_index":219,"title":{},"name":{},"text":{"2":{},"4":{},"6":{},"10":{},"11":{},"17":{},"21":{},"33":{},"36":{},"47":{},"49":{}},"component":{}}],["inmemori",{"_index":1270,"title":{},"name":{},"text":{"15":{},"21":{}},"component":{}}],["input",{"_index":88,"title":{"7":{},"7-1":{}},"name":{"7":{}},"text":{"1":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"18":{},"21":{},"33":{},"46":{},"53":{},"65":{}},"component":{}}],["insecur",{"_index":2991,"title":{},"name":{},"text":{"50":{}},"component":{}}],["insecureskipverifi",{"_index":3376,"title":{},"name":{},"text":{"69":{}},"component":{}}],["insensit",{"_index":989,"title":{},"name":{},"text":{"11":{}},"component":{}}],["insid",{"_index":582,"title":{},"name":{},"text":{"6":{},"10":{},"14":{},"49":{},"51":{}},"component":{}}],["insight",{"_index":1123,"title":{},"name":{},"text":{"14":{}},"component":{}}],["inspect",{"_index":3054,"title":{},"name":{},"text":{"54":{}},"component":{}}],["inspector",{"_index":2398,"title":{},"name":{},"text":{"36":{}},"component":{}}],["instal",{"_index":100,"title":{"50":{},"41-1":{},"50-1":{},"50-3":{},"50-5":{},"50-7":{},"58-1":{},"59-1":{},"64-1":{},"72-1":{},"74-1":{}},"name":{"50":{}},"text":{"1":{},"2":{},"3":{},"17":{},"21":{},"24":{},"25":{},"27":{},"28":{},"29":{},"30":{},"33":{},"36":{},"38":{},"41":{},"43":{},"47":{},"49":{},"50":{},"55":{},"57":{},"58":{},"59":{},"64":{},"69":{},"72":{},"74":{}},"component":{}}],["instanc",{"_index":65,"title":{"66":{},"14-8":{},"50-6":{},"63-1":{},"65-2":{},"65-3":{},"65-6":{},"66-1":{},"66-2":{},"69-2":{}},"name":{"66":{}},"text":{"1":{},"2":{},"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"14":{},"15":{},"16":{},"19":{},"22":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"33":{},"35":{},"37":{},"42":{},"43":{},"46":{},"47":{},"49":{},"50":{},"52":{},"53":{},"54":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"71":{}},"component":{}}],["instead",{"_index":393,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"11":{},"13":{},"27":{},"28":{},"32":{},"33":{},"36":{},"41":{},"47":{},"50":{},"55":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["instruct",{"_index":1712,"title":{},"name":{},"text":{"21":{},"30":{},"41":{},"43":{},"55":{},"59":{},"60":{}},"component":{}}],["int",{"_index":476,"title":{},"name":{},"text":{"5":{},"6":{},"16":{}},"component":{}}],["int32",{"_index":795,"title":{},"name":{},"text":{"7":{}},"component":{}}],["int64",{"_index":2415,"title":{},"name":{},"text":{"36":{}},"component":{}}],["integ",{"_index":548,"title":{},"name":{},"text":{"6":{},"7":{},"11":{},"14":{},"23":{},"36":{}},"component":{}}],["integer)iter.next",{"_index":754,"title":{},"name":{},"text":{"6":{}},"component":{}}],["integr",{"_index":14,"title":{"23":{},"29":{},"68":{},"69":{},"71":{},"1-10":{},"27-1":{},"51-4":{}},"name":{"23":{},"29":{},"38":{},"68":{},"69":{},"71":{}},"text":{"1":{},"3":{},"6":{},"23":{},"26":{},"27":{},"29":{},"30":{},"31":{},"35":{},"38":{},"42":{},"43":{},"46":{},"51":{},"54":{},"64":{},"67":{},"68":{},"69":{},"70":{},"71":{}},"component":{}}],["intend",{"_index":709,"title":{},"name":{},"text":{"6":{},"46":{}},"component":{}}],["interact",{"_index":165,"title":{"28-1":{},"28-2":{},"28-3":{}},"name":{},"text":{"1":{},"6":{},"10":{},"11":{},"14":{},"15":{},"17":{},"18":{},"27":{},"28":{},"29":{},"33":{},"42":{},"45":{}},"component":{}}],["interceptor",{"_index":3301,"title":{},"name":{},"text":{"60":{}},"component":{}}],["interfac",{"_index":542,"title":{},"name":{},"text":{"6":{},"16":{},"24":{},"26":{},"36":{},"43":{},"49":{},"54":{},"55":{},"57":{},"58":{},"59":{},"64":{},"69":{},"70":{}},"component":{}}],["intermedi",{"_index":2243,"title":{},"name":{},"text":{"33":{}},"component":{}}],["intern",{"_index":55,"title":{},"name":{},"text":{"1":{},"14":{},"19":{},"25":{},"26":{},"35":{},"36":{},"42":{},"45":{},"47":{},"51":{},"54":{},"59":{}},"component":{}}],["internalexecut",{"_index":704,"title":{},"name":{},"text":{"6":{}},"component":{}}],["internalexecute(kogitoworkitem",{"_index":742,"title":{},"name":{},"text":{"6":{}},"component":{}}],["interpol",{"_index":530,"title":{},"name":{},"text":{"6":{}},"component":{}}],["interpret",{"_index":302,"title":{},"name":{},"text":{"3":{}},"component":{}}],["interrupt",{"_index":852,"title":{},"name":{},"text":{"9":{}},"component":{}}],["interruptedexcept",{"_index":2577,"title":{},"name":{},"text":{"42":{}},"component":{}}],["interv",{"_index":1770,"title":{},"name":{},"text":{"25":{},"27":{}},"component":{}}],["introduc",{"_index":1442,"title":{},"name":{},"text":{"18":{},"45":{},"53":{}},"component":{}}],["introduct",{"_index":161,"title":{"27":{},"49-1":{}},"name":{},"text":{"1":{}},"component":{}}],["invalid",{"_index":2237,"title":{},"name":{},"text":{"33":{},"49":{}},"component":{}}],["invoc",{"_index":42,"title":{},"name":{},"text":{"1":{},"4":{},"10":{},"11":{},"12":{},"20":{},"32":{},"33":{},"36":{},"53":{}},"component":{}}],["invok",{"_index":155,"title":{"24":{}},"name":{},"text":{"1":{},"6":{},"10":{},"11":{},"20":{},"21":{},"24":{},"32":{},"34":{},"35":{},"36":{},"37":{},"45":{},"55":{}},"component":{}}],["invokefunct",{"_index":642,"title":{},"name":{},"text":{"6":{}},"component":{}}],["io",{"_index":757,"title":{},"name":{},"text":{"6":{}},"component":{}}],["io.qua.run.con.configrecord",{"_index":1676,"title":{},"name":{},"text":{"21":{}},"component":{}}],["io.quarku",{"_index":1414,"title":{},"name":{},"text":{"17":{},"18":{},"21":{},"28":{},"29":{},"30":{},"32":{},"38":{},"42":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["io.quarkus.deployment.quarkusaugmentor",{"_index":2511,"title":{},"name":{},"text":{"38":{}},"component":{}}],["io.quarkus.platform:quarku",{"_index":1592,"title":{},"name":{},"text":{"21":{}},"component":{}}],["io.quarkus.test.common.quarkustestresourc",{"_index":2653,"title":{},"name":{},"text":{"43":{}},"component":{}}],["io.quarkus.test.common.quarkustestresourcelifecyclemanag",{"_index":2636,"title":{},"name":{},"text":{"43":{}},"component":{}}],["io.quarkus.test.junit.quarkustest",{"_index":2456,"title":{},"name":{},"text":{"38":{},"43":{}},"component":{}}],["io.quarkus:quarku",{"_index":3176,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["io.rest",{"_index":1978,"title":{},"name":{},"text":{"29":{},"38":{},"42":{}},"component":{}}],["io.restassured.http.contenttyp",{"_index":2458,"title":{},"name":{},"text":{"38":{}},"component":{}}],["io.restassured.restassur",{"_index":2457,"title":{},"name":{},"text":{"38":{}},"component":{}}],["io.restassured.restassured.given",{"_index":2461,"title":{},"name":{},"text":{"38":{}},"component":{}}],["io.zon.tes.db.pos.emb.defaultpostgresbinaryresolv",{"_index":1653,"title":{},"name":{},"text":{"21":{}},"component":{}}],["io.zon.tes.db.pos.emb.embeddedpostgr",{"_index":1647,"title":{},"name":{},"text":{"21":{}},"component":{}}],["ioexcept",{"_index":756,"title":{},"name":{},"text":{"6":{},"43":{}},"component":{}}],["ip",{"_index":3115,"title":{},"name":{},"text":{"57":{}},"component":{}}],["iseven",{"_index":1000,"title":{},"name":{},"text":{"11":{}},"component":{}}],["isnul",{"_index":1157,"title":{},"name":{},"text":{"14":{}},"component":{}}],["iso",{"_index":835,"title":{},"name":{},"text":{"9":{}},"component":{}}],["isol",{"_index":2612,"title":{},"name":{},"text":{"43":{}},"component":{}}],["issu",{"_index":304,"title":{"51":{},"4-13":{},"5-1":{},"6-22":{},"7-6":{},"8-3":{},"9-11":{},"10-5":{},"11-4":{},"12-3":{},"13-5":{},"14-16":{},"15-4":{},"16-9":{},"17-7":{},"18-5":{},"19-3":{},"20-3":{},"21-7":{},"22-1":{},"23-6":{},"24-3":{},"25-6":{},"26-5":{},"27-17":{},"28-5":{},"29-4":{},"30-3":{},"31-9":{},"32-8":{},"33-5":{},"34-10":{},"35-7":{},"36-7":{},"37-4":{},"38-2":{},"41-7":{},"42-5":{},"43-5":{},"45-5":{},"46-11":{},"47-14":{},"48-4":{},"49-14":{},"50-10":{},"53-4":{},"54-5":{},"55-6":{},"57-6":{},"58-6":{},"59-7":{},"60-8":{},"62-6":{},"63-2":{},"64-2":{},"65-8":{},"66-3":{},"67-3":{},"68-4":{},"69-3":{},"70-3":{},"71-3":{},"72-3":{},"73-3":{},"74-7":{}},"name":{"51":{}},"text":{"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["istio",{"_index":3236,"title":{},"name":{},"text":{"59":{}},"component":{}}],["iswinn",{"_index":3039,"title":{},"name":{},"text":{"53":{}},"component":{}}],["item",{"_index":688,"title":{},"name":{},"text":{"6":{},"8":{},"45":{},"74":{}},"component":{}}],["iter",{"_index":296,"title":{},"name":{},"text":{"3":{},"6":{}},"component":{}}],["itself",{"_index":1121,"title":{},"name":{},"text":{"14":{}},"component":{}}],["it’",{"_index":286,"title":{},"name":{},"text":{"3":{},"6":{},"14":{},"48":{},"49":{}},"component":{}}],["it’ll",{"_index":1933,"title":{},"name":{},"text":{"27":{}},"component":{}}],["jackson",{"_index":453,"title":{},"name":{},"text":{"5":{},"21":{},"38":{}},"component":{}}],["jackson,quarku",{"_index":1597,"title":{},"name":{},"text":{"21":{}},"component":{}}],["jackson’",{"_index":558,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["jan",{"_index":2374,"title":{},"name":{},"text":{"35":{}},"component":{}}],["jane",{"_index":2953,"title":{},"name":{},"text":{"49":{}},"component":{}}],["jar",{"_index":1613,"title":{},"name":{},"text":{"21":{},"29":{},"33":{},"34":{},"38":{},"60":{}},"component":{}}],["java",{"_index":306,"title":{"6-2":{},"27-6":{}},"name":{},"text":{"3":{},"4":{},"6":{},"11":{},"12":{},"21":{},"23":{},"27":{},"30":{},"33":{},"34":{},"36":{},"37":{},"38":{},"41":{},"45":{},"49":{},"60":{}},"component":{}}],["java.io.ioexcept",{"_index":2637,"title":{},"name":{},"text":{"43":{}},"component":{}}],["java.io.uncheckedioexcept",{"_index":2638,"title":{},"name":{},"text":{"43":{}},"component":{}}],["java.lang.except",{"_index":2150,"title":{},"name":{},"text":{"33":{}},"component":{}}],["java.lang.illegalstateexcept",{"_index":983,"title":{},"name":{},"text":{"11":{}},"component":{}}],["java.lang.runtimeexcept",{"_index":982,"title":{},"name":{},"text":{"11":{}},"component":{}}],["java.util.map",{"_index":2639,"title":{},"name":{},"text":{"43":{}},"component":{}}],["java_app_jar=\\\"/deployments/quarku",{"_index":2861,"title":{},"name":{},"text":{"47":{}},"component":{}}],["java_hom",{"_index":1576,"title":{},"name":{},"text":{"21":{}},"component":{}}],["java_opt",{"_index":1882,"title":{},"name":{},"text":{"27":{},"47":{}},"component":{}}],["javax.enterprise.context.applicationscop",{"_index":2167,"title":{},"name":{},"text":{"33":{}},"component":{}}],["javi",{"_index":2364,"title":{},"name":{},"text":{"35":{}},"component":{}}],["javierito",{"_index":1566,"title":{},"name":{},"text":{"20":{},"35":{}},"component":{}}],["javierito\\nhello",{"_index":2378,"title":{},"name":{},"text":{"35":{}},"component":{}}],["jboss",{"_index":2480,"title":{},"name":{},"text":{"38":{}},"component":{}}],["jdbc",{"_index":418,"title":{},"name":{},"text":{"5":{},"19":{},"21":{},"27":{},"29":{},"30":{},"31":{}},"component":{}}],["jdbc:postgresql://newslett",{"_index":1326,"title":{},"name":{},"text":{"16":{}},"component":{}}],["jdbc:postgresql://postgres:5432/kogito",{"_index":1294,"title":{},"name":{},"text":{"16":{}},"component":{}}],["jdbc:postgresql://timeout",{"_index":1877,"title":{},"name":{},"text":{"27":{}},"component":{}}],["jib",{"_index":1413,"title":{},"name":{},"text":{"17":{},"41":{},"55":{}},"component":{}}],["job",{"_index":15,"title":{"28":{},"1-11":{},"14-8":{},"14-14":{},"27-2":{},"28-4":{}},"name":{},"text":{"1":{},"2":{},"9":{},"14":{},"16":{},"27":{},"28":{},"46":{}},"component":{}}],["job.creat",{"_index":1942,"title":{},"name":{},"text":{"27":{}},"component":{}}],["job.delet",{"_index":1944,"title":{},"name":{},"text":{"27":{}},"component":{}}],["job_nam",{"_index":1775,"title":{},"name":{},"text":{"25":{}},"component":{}}],["jobcancel",{"_index":1232,"title":{},"name":{},"text":{"14":{}},"component":{}}],["jobev",{"_index":1254,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["jobreschedul",{"_index":1227,"title":{},"name":{},"text":{"14":{}},"component":{}}],["jobs_service_persist",{"_index":1872,"title":{},"name":{},"text":{"27":{}},"component":{}}],["jobs_service_persistence=postgresql",{"_index":1873,"title":{},"name":{},"text":{"27":{}},"component":{}}],["john",{"_index":2357,"title":{},"name":{},"text":{"35":{},"38":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["john\"},{\"message\":\"saludo",{"_index":2371,"title":{},"name":{},"text":{"35":{}},"component":{}}],["john\\nhello",{"_index":2379,"title":{},"name":{},"text":{"35":{}},"component":{}}],["jpi",{"_index":2238,"title":{},"name":{},"text":{"33":{}},"component":{}}],["jq",{"_index":79,"title":{"10":{},"10-1":{},"10-2":{},"10-3":{}},"name":{"10":{}},"text":{"1":{},"4":{},"6":{},"10":{},"21":{},"23":{},"36":{},"38":{},"49":{}},"component":{}}],["jre8",{"_index":2565,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["json",{"_index":95,"title":{"6-15":{}},"name":{},"text":{"1":{},"6":{},"7":{},"10":{},"11":{},"21":{},"23":{},"26":{},"33":{},"35":{},"38":{},"43":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{},"65":{},"66":{},"70":{},"73":{},"74":{}},"component":{}}],["jsonata",{"_index":1807,"title":{},"name":{},"text":{"26":{}},"component":{}}],["jsoncloudeventdata",{"_index":1055,"title":{},"name":{},"text":{"12":{}},"component":{}}],["jsongreet",{"_index":1788,"title":{},"name":{},"text":{"25":{}},"component":{}}],["jsonnod",{"_index":559,"title":{},"name":{},"text":{"6":{},"23":{},"43":{}},"component":{}}],["jsonp",{"_index":2539,"title":{},"name":{},"text":{"41":{}},"component":{}}],["jsonp,quarku",{"_index":1602,"title":{},"name":{},"text":{"21":{},"41":{}},"component":{}}],["jsonpath",{"_index":377,"title":{},"name":{},"text":{"4":{},"10":{}},"component":{}}],["jsonpath=\"{.spec.template.spec.containers[?(@.name=='manager')].imag",{"_index":3009,"title":{},"name":{},"text":{"50":{}},"component":{}}],["jsonpath='{..namespac",{"_index":3143,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["jsonpath={.statu",{"_index":3055,"title":{},"name":{},"text":{"54":{}},"component":{}}],["jsonpath={.status.condit",{"_index":2965,"title":{},"name":{},"text":{"49":{}},"component":{}}],["jsonprocessingexcept",{"_index":1044,"title":{},"name":{},"text":{"12":{},"37":{},"42":{}},"component":{}}],["jta",{"_index":1699,"title":{},"name":{},"text":{"21":{}},"component":{}}],["junit5",{"_index":1977,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["jvm",{"_index":1632,"title":{},"name":{},"text":{"21":{},"29":{},"38":{},"42":{},"55":{}},"component":{}}],["k8",{"_index":1769,"title":{},"name":{},"text":{"25":{},"47":{},"49":{}},"component":{}}],["k_sink",{"_index":1255,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"28":{}},"component":{}}],["k_sink:http://localhost:9090",{"_index":1363,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kafka",{"_index":119,"title":{"18":{},"14-13":{},"16-4":{},"27-15":{},"28-2":{}},"name":{"18":{}},"text":{"1":{},"2":{},"5":{},"8":{},"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"27":{},"28":{}},"component":{}}],["kafka,kogito",{"_index":1972,"title":{},"name":{},"text":{"28":{}},"component":{}}],["kafka.bootstrap.serv",{"_index":1956,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kafka_bootstrap_serv",{"_index":1948,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kaniko",{"_index":2809,"title":{},"name":{},"text":{"47":{}},"component":{}}],["kanikobuildcacheen",{"_index":2884,"title":{},"name":{},"text":{"47":{}},"component":{}}],["kaoto",{"_index":1720,"title":{},"name":{},"text":{"23":{}},"component":{}}],["kebab",{"_index":3338,"title":{},"name":{},"text":{"66":{}},"component":{}}],["keep",{"_index":1867,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["key",{"_index":456,"title":{"32-4":{},"65-5":{}},"name":{},"text":{"5":{},"6":{},"14":{},"26":{},"32":{},"34":{},"35":{},"36":{},"48":{},"65":{},"66":{},"74":{}},"component":{}}],["key/valu",{"_index":607,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["key1",{"_index":603,"title":{},"name":{},"text":{"6":{}},"component":{}}],["key2",{"_index":605,"title":{},"name":{},"text":{"6":{}},"component":{}}],["key=my_key",{"_index":2089,"title":{},"name":{},"text":{"32":{}},"component":{}}],["keycloak",{"_index":2136,"title":{},"name":{},"text":{"33":{}},"component":{}}],["keyword",{"_index":537,"title":{},"name":{},"text":{"6":{},"50":{}},"component":{}}],["kgto",{"_index":2309,"title":{},"name":{},"text":{"34":{}},"component":{}}],["kie",{"_index":2518,"title":{},"name":{},"text":{"41":{},"72":{},"74":{}},"component":{}}],["kind",{"_index":1248,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"17":{},"25":{},"27":{},"31":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["kind=postgresql",{"_index":2009,"title":{},"name":{},"text":{"30":{},"31":{}},"component":{}}],["kn",{"_index":618,"title":{},"name":{"41":{}},"text":{"6":{},"17":{},"21":{},"24":{},"41":{},"57":{},"58":{},"59":{}},"component":{}}],["knativ",{"_index":120,"title":{"17":{},"24":{},"41":{},"6-11":{},"14-12":{},"16-5":{},"17-1":{},"17-2":{},"17-4":{},"17-5":{},"27-13":{},"27-14":{},"28-1":{},"41-1":{},"41-2":{},"41-3":{},"41-5":{},"51-4":{},"57-1":{},"57-3":{},"58-1":{},"58-3":{},"59-4":{}},"name":{"17":{},"24":{},"61":{}},"text":{"1":{},"2":{},"6":{},"8":{},"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"21":{},"22":{},"24":{},"27":{},"28":{},"36":{},"37":{},"41":{},"42":{},"46":{},"51":{},"54":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["knative.json",{"_index":3182,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["knative.yml",{"_index":1419,"title":{},"name":{},"text":{"17":{},"28":{},"41":{},"57":{},"58":{},"59":{}},"component":{}}],["knative/kubernet",{"_index":3026,"title":{},"name":{},"text":{"51":{}},"component":{}}],["knative:services.v1.serving.knative.dev/custom",{"_index":628,"title":{},"name":{},"text":{"6":{},"24":{}},"component":{}}],["knative:services.v1.serving.knative.dev/my_different_namespace/custom",{"_index":637,"title":{},"name":{},"text":{"6":{}},"component":{}}],["know",{"_index":720,"title":{},"name":{},"text":{"6":{},"49":{}},"component":{}}],["known",{"_index":303,"title":{"51":{}},"name":{"51":{}},"text":{"3":{},"14":{},"35":{},"45":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"60":{},"69":{}},"component":{}}],["ko.loc",{"_index":3214,"title":{},"name":{},"text":{"58":{}},"component":{}}],["kogito",{"_index":127,"title":{"6-6":{}},"name":{},"text":{"1":{},"2":{},"5":{},"6":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"38":{},"41":{},"46":{},"47":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"65":{},"66":{}},"component":{}}],["kogito.addon.messaging.emitter..buff",{"_index":1475,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.emitter..overflow",{"_index":1470,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.emitter.overflow",{"_index":1484,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.emitter.wait.buff",{"_index":1480,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.emitter.wait.overflow",{"_index":1478,"title":{},"name":{},"text":{"18":{}},"component":{}}],["kogito.addon.messaging.incoming.defaultnam",{"_index":443,"title":{},"name":{},"text":{"5":{},"18":{}},"component":{}}],["kogito.addon.messaging.outgoing.defaultnam",{"_index":447,"title":{},"name":{},"text":{"5":{},"18":{}},"component":{}}],["kogito.grpc.enum.includedefault",{"_index":466,"title":{},"name":{},"text":{"5":{},"35":{}},"component":{}}],["kogito.grpc.stream.timeout",{"_index":470,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.jackson.fail",{"_index":450,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.job",{"_index":1893,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{}}],["kogito.loanbroker.aggregated.quotes.respons",{"_index":1430,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kogito.messaging.a",{"_index":442,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.persistence.optimistic.lock",{"_index":428,"title":{},"name":{},"text":{"5":{},"30":{}},"component":{}}],["kogito.persistence.optimistic.lock=tru",{"_index":2016,"title":{},"name":{},"text":{"30":{}},"component":{}}],["kogito.persistence.query.timeout.milli",{"_index":424,"title":{},"name":{},"text":{"5":{},"16":{},"30":{}},"component":{}}],["kogito.persistence.typ",{"_index":416,"title":{},"name":{},"text":{"5":{},"30":{}},"component":{}}],["kogito.persistence.type=jdbc",{"_index":2007,"title":{},"name":{},"text":{"30":{}},"component":{}}],["kogito.quarkus.events.threads.pools",{"_index":478,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.quarkus.events.threads.queues",{"_index":483,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.serverless.loanbroker.aggregated.quotes.respons",{"_index":1406,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kogito.service.url",{"_index":437,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.sw.functions..timeout",{"_index":674,"title":{},"name":{},"text":{"6":{}},"component":{}}],["kogito.sw.functions.greet.timeout=5000",{"_index":677,"title":{},"name":{},"text":{"6":{}},"component":{}}],["kogito.sw.operationidstrategi",{"_index":455,"title":{},"name":{},"text":{"5":{},"34":{}},"component":{}}],["kogito.sw.request.quot",{"_index":1428,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kogito.sw.states.foreach.outputvarnam",{"_index":462,"title":{},"name":{},"text":{"5":{}},"component":{}}],["kogito.swf.serviceregistri",{"_index":3409,"title":{},"name":{},"text":{"74":{}},"component":{}}],["kogito.workflow.vers",{"_index":434,"title":{},"name":{},"text":{"5":{},"30":{}},"component":{}}],["kogito.yml",{"_index":1420,"title":{},"name":{},"text":{"17":{},"28":{},"41":{}},"component":{}}],["kogito/serverless/loanbroker/aggreg",{"_index":1431,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kogito_data_index_quarkus_profil",{"_index":1244,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["kogito_incoming_stream",{"_index":446,"title":{},"name":{},"text":{"5":{},"18":{}},"component":{}}],["kogito_jobs_service_backoffretrymilli",{"_index":1888,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kogito_jobs_service_http_job_status_change_ev",{"_index":1937,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kogito_jobs_service_kafka_job_status_change_ev",{"_index":1947,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kogito_jobs_service_maxintervallimittoretrymilli",{"_index":1891,"title":{},"name":{},"text":{"27":{}},"component":{}}],["kogito_jobs_service_url",{"_index":1974,"title":{},"name":{},"text":{"28":{}},"component":{}}],["kogito_outgoing_stream",{"_index":449,"title":{},"name":{},"text":{"5":{},"18":{}},"component":{}}],["kogito_process_instance_completed_tot",{"_index":1782,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["kogito_process_instance_completed_total{app_id=\"default",{"_index":1791,"title":{},"name":{},"text":{"25":{}},"component":{}}],["kogito_process_instance_duration_seconds_sum",{"_index":1785,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["kogito_process_instance_running_tot",{"_index":1784,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["kogito_process_instance_started_tot",{"_index":1783,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["kogitobusinesskey",{"_index":3330,"title":{},"name":{},"text":{"65":{}},"component":{}}],["kogitoprocesscontext",{"_index":583,"title":{},"name":{},"text":{"6":{}},"component":{}}],["kogitoprocid",{"_index":1532,"title":{},"name":{},"text":{"19":{}},"component":{}}],["kogitoprocinstanceid",{"_index":1048,"title":{},"name":{},"text":{"12":{},"19":{},"37":{}},"component":{}}],["kogitoprocrefid",{"_index":823,"title":{},"name":{},"text":{"8":{},"12":{},"37":{},"66":{}},"component":{}}],["kogitoproctyp",{"_index":1535,"title":{},"name":{},"text":{"19":{}},"component":{}}],["kogitoprocvers",{"_index":1533,"title":{},"name":{},"text":{"19":{}},"component":{}}],["kogitousertaskist",{"_index":1534,"title":{},"name":{},"text":{"19":{}},"component":{}}],["kogitoworkitemhandl",{"_index":738,"title":{},"name":{},"text":{"6":{}},"component":{}}],["kourier",{"_index":3136,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["ksw",{"_index":265,"title":{},"name":{},"text":{"2":{}},"component":{}}],["kubectl",{"_index":1423,"title":{},"name":{},"text":{"17":{},"24":{},"28":{},"41":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"57":{},"58":{}},"component":{}}],["kubectl=\"minikub",{"_index":3209,"title":{},"name":{},"text":{"58":{}},"component":{}}],["kubernet",{"_index":152,"title":{"57":{},"60":{},"3-1":{},"3-2":{},"47-5":{},"50-3":{},"57-1":{},"57-2":{},"57-4":{},"58-4":{},"60-1":{},"60-2":{},"60-3":{},"60-4":{},"60-5":{}},"name":{"57":{},"60":{}},"text":{"1":{},"3":{},"16":{},"17":{},"24":{},"25":{},"27":{},"28":{},"34":{},"36":{},"41":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"69":{}},"component":{}}],["kubernetes,quarku",{"_index":1412,"title":{},"name":{},"text":{"17":{}},"component":{}}],["kubernetes/kn",{"_index":2800,"title":{},"name":{},"text":{"46":{}},"component":{}}],["kubernetes:2.16.9.fin",{"_index":3177,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["kubernetes:pods.v1//?labels=label",{"_index":3283,"title":{},"name":{},"text":{"60":{}},"component":{}}],["kubernetes_namespac",{"_index":1321,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["kubernetesservicecatalog",{"_index":225,"title":{},"name":{},"text":{"2":{}},"component":{}}],["l",{"_index":2704,"title":{},"name":{},"text":{"45":{}},"component":{}}],["l[0",{"_index":1813,"title":{},"name":{},"text":{"26":{}},"component":{}}],["l[1",{"_index":1818,"title":{},"name":{},"text":{"26":{}},"component":{}}],["l[2",{"_index":1819,"title":{},"name":{},"text":{"26":{}},"component":{}}],["label",{"_index":507,"title":{},"name":{},"text":{"5":{},"16":{},"25":{},"26":{},"48":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["label=anoth",{"_index":3282,"title":{},"name":{},"text":{"60":{}},"component":{}}],["label=oth",{"_index":3271,"title":{},"name":{},"text":{"60":{}},"component":{}}],["labels=label",{"_index":3268,"title":{},"name":{},"text":{"60":{}},"component":{}}],["lack",{"_index":2972,"title":{},"name":{},"text":{"49":{}},"component":{}}],["lang='en_us.utf",{"_index":2840,"title":{},"name":{},"text":{"47":{}},"component":{}}],["languag",{"_index":382,"title":{},"name":{},"text":{"4":{},"10":{},"11":{},"35":{},"42":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["language\":\"czech",{"_index":2375,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language\":\"english",{"_index":2373,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language\":\"english\"},{\"nam",{"_index":2381,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language\":\"spanish",{"_index":2372,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language\":\"spanish\"},{\"nam",{"_index":2380,"title":{},"name":{},"text":{"35":{}},"component":{}}],["language='en_us:en'\\n",{"_index":2841,"title":{},"name":{},"text":{"47":{}},"component":{}}],["language=2",{"_index":2340,"title":{},"name":{},"text":{"35":{}},"component":{}}],["larg",{"_index":1488,"title":{},"name":{},"text":{"19":{}},"component":{}}],["last",{"_index":584,"title":{},"name":{},"text":{"6":{},"11":{},"27":{},"54":{},"62":{},"66":{}},"component":{}}],["later",{"_index":2207,"title":{},"name":{},"text":{"33":{},"41":{},"57":{},"58":{},"59":{},"67":{},"74":{}},"component":{}}],["latest",{"_index":619,"title":{},"name":{},"text":{"6":{},"24":{},"31":{},"41":{},"49":{},"55":{},"57":{},"58":{},"59":{},"69":{},"74":{}},"component":{}}],["latter",{"_index":790,"title":{},"name":{},"text":{"7":{},"13":{}},"component":{}}],["launch",{"_index":1178,"title":{},"name":{},"text":{"14":{},"29":{},"33":{}},"component":{}}],["layer",{"_index":1278,"title":{},"name":{},"text":{"16":{},"47":{}},"component":{}}],["lead",{"_index":3328,"title":{},"name":{},"text":{"65":{},"66":{}},"component":{}}],["leader",{"_index":1855,"title":{"27-16":{}},"name":{},"text":{"27":{}},"component":{}}],["learn",{"_index":66,"title":{},"name":{},"text":{"1":{},"3":{}},"component":{}}],["leav",{"_index":2667,"title":{},"name":{},"text":{"45":{}},"component":{}}],["left",{"_index":939,"title":{},"name":{},"text":{"10":{},"69":{}},"component":{}}],["leftel",{"_index":936,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["legaci",{"_index":710,"title":{},"name":{},"text":{"6":{}},"component":{}}],["lessthan",{"_index":1164,"title":{},"name":{},"text":{"14":{}},"component":{}}],["lessthanequ",{"_index":1165,"title":{},"name":{},"text":{"14":{}},"component":{}}],["letsgetloud",{"_index":816,"title":{},"name":{},"text":{"8":{}},"component":{}}],["letter",{"_index":1114,"title":{},"name":{},"text":{"13":{}},"component":{}}],["let’",{"_index":1548,"title":{},"name":{},"text":{"20":{},"59":{}},"component":{}}],["level",{"_index":239,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"27":{},"46":{}},"component":{}}],["leverag",{"_index":1335,"title":{},"name":{},"text":{"16":{},"21":{},"34":{},"36":{},"57":{},"58":{},"59":{}},"component":{}}],["librari",{"_index":2446,"title":{},"name":{},"text":{"38":{},"47":{}},"component":{}}],["life",{"_index":1854,"title":{"27-2":{}},"name":{},"text":{},"component":{}}],["lifetim",{"_index":2597,"title":{},"name":{},"text":{"42":{}},"component":{}}],["lightweight",{"_index":62,"title":{},"name":{},"text":{"1":{}},"component":{}}],["limit",{"_index":305,"title":{"51":{}},"name":{},"text":{"3":{},"4":{},"14":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"54":{}},"component":{}}],["line",{"_index":1422,"title":{},"name":{},"text":{"17":{},"22":{},"24":{},"31":{},"41":{},"47":{},"50":{},"55":{},"57":{},"58":{},"59":{},"64":{}},"component":{}}],["link",{"_index":1806,"title":{},"name":{},"text":{"26":{},"29":{},"31":{},"57":{},"58":{},"59":{},"62":{},"65":{},"66":{},"69":{}},"component":{}}],["link:{spec_doc_url}#ev",{"_index":349,"title":{},"name":{},"text":{"4":{}},"component":{}}],["linux",{"_index":1649,"title":{},"name":{},"text":{"21":{},"55":{}},"component":{}}],["list",{"_index":278,"title":{},"name":{},"text":{"3":{},"6":{},"14":{},"17":{},"18":{},"24":{},"26":{},"27":{},"32":{},"34":{},"41":{},"48":{},"49":{},"54":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"65":{},"66":{},"67":{},"71":{},"74":{}},"component":{}}],["listen",{"_index":499,"title":{},"name":{},"text":{"5":{},"8":{},"12":{},"16":{},"17":{},"21":{},"37":{},"38":{},"42":{}},"component":{}}],["listener\",artifactid=\"kogito",{"_index":1792,"title":{},"name":{},"text":{"25":{}},"component":{}}],["liter",{"_index":917,"title":{},"name":{},"text":{"10":{}},"component":{}}],["live",{"_index":241,"title":{},"name":{},"text":{"2":{},"21":{},"67":{}},"component":{}}],["livenessprob",{"_index":3192,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["load",{"_index":3158,"title":{"74-5":{}},"name":{},"text":{"57":{},"58":{},"59":{},"68":{},"72":{},"74":{}},"component":{}}],["loadbalanc",{"_index":3225,"title":{},"name":{},"text":{"58":{}},"component":{}}],["loanbrok",{"_index":1434,"title":{},"name":{},"text":{"17":{}},"component":{}}],["local",{"_index":315,"title":{"59-1":{}},"name":{},"text":{"3":{},"17":{},"21":{},"22":{},"27":{},"41":{},"47":{},"50":{},"58":{},"59":{},"68":{},"74":{}},"component":{}}],["local/curl",{"_index":1405,"title":{},"name":{},"text":{"17":{}},"component":{}}],["local/quarku",{"_index":3329,"title":{},"name":{},"text":{"65":{},"66":{}},"component":{}}],["localhost:5000",{"_index":2993,"title":{},"name":{},"text":{"50":{}},"component":{}}],["localhost:8080",{"_index":1562,"title":{},"name":{},"text":{"20":{},"25":{}},"component":{}}],["localhost:9092",{"_index":1551,"title":{},"name":{},"text":{"20":{},"27":{}},"component":{}}],["locat",{"_index":1550,"title":{},"name":{},"text":{"20":{},"25":{},"28":{},"31":{},"33":{},"35":{},"36":{},"53":{}},"component":{}}],["lock",{"_index":432,"title":{},"name":{},"text":{"5":{},"30":{},"33":{}},"component":{}}],["log",{"_index":237,"title":{},"name":{},"text":{"2":{},"6":{},"7":{},"21":{},"23":{},"38":{},"41":{},"45":{},"47":{},"49":{},"50":{},"54":{},"59":{},"60":{},"69":{},"74":{}},"component":{}}],["logger",{"_index":491,"title":{},"name":{},"text":{"5":{}},"component":{}}],["logger.info(\"about",{"_index":2437,"title":{},"name":{},"text":{"37":{}},"component":{}}],["logic",{"_index":104,"title":{"67":{},"68":{},"69":{},"70":{},"68-1":{},"69-2":{},"70-1":{}},"name":{"67":{},"68":{},"69":{},"70":{},"71":{}},"text":{"1":{},"6":{},"13":{},"22":{},"43":{},"67":{},"68":{},"69":{},"70":{},"71":{},"73":{}},"component":{}}],["login",{"_index":2558,"title":{},"name":{},"text":{"41":{},"47":{},"59":{},"69":{},"74":{}},"component":{}}],["loginfo",{"_index":519,"title":{},"name":{},"text":{"6":{}},"component":{}}],["logist",{"_index":2674,"title":{},"name":{},"text":{"45":{}},"component":{}}],["logrout",{"_index":1734,"title":{},"name":{},"text":{"23":{}},"component":{}}],["logroutereplacehead",{"_index":1738,"title":{},"name":{},"text":{"23":{}},"component":{}}],["long",{"_index":426,"title":{},"name":{},"text":{"5":{},"6":{},"9":{},"16":{},"27":{},"30":{},"49":{},"63":{}},"component":{}}],["look",{"_index":291,"title":{},"name":{},"text":{"3":{},"6":{},"49":{},"57":{},"60":{},"65":{}},"component":{}}],["lookup",{"_index":1822,"title":{},"name":{},"text":{"26":{}},"component":{}}],["loop",{"_index":464,"title":{},"name":{},"text":{"5":{},"58":{}},"component":{}}],["lost",{"_index":1542,"title":{},"name":{},"text":{"19":{},"27":{}},"component":{}}],["low",{"_index":2801,"title":{},"name":{},"text":{"46":{}},"component":{}}],["m1",{"_index":3234,"title":{},"name":{},"text":{"59":{}},"component":{}}],["mac",{"_index":2520,"title":{},"name":{},"text":{"41":{},"58":{},"59":{}},"component":{}}],["machin",{"_index":2988,"title":{},"name":{},"text":{"50":{},"58":{}},"component":{}}],["maco",{"_index":3363,"title":{},"name":{},"text":{"69":{}},"component":{}}],["made",{"_index":1869,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["magic",{"_index":3145,"title":{},"name":{},"text":{"57":{}},"component":{}}],["main",{"_index":1332,"title":{},"name":{},"text":{"16":{},"21":{},"27":{},"38":{},"55":{},"73":{},"74":{}},"component":{}}],["mainten",{"_index":1269,"title":{},"name":{},"text":{"15":{}},"component":{}}],["major",{"_index":3012,"title":{},"name":{},"text":{"50":{}},"component":{}}],["make",{"_index":881,"title":{},"name":{},"text":{"9":{},"14":{},"20":{},"27":{},"30":{},"37":{},"47":{},"49":{},"53":{},"54":{},"57":{},"59":{},"60":{},"66":{},"72":{},"73":{},"74":{}},"component":{}}],["manag",{"_index":67,"title":{},"name":{},"text":{"1":{},"2":{},"3":{},"5":{},"12":{},"14":{},"15":{},"16":{},"18":{},"22":{},"27":{},"28":{},"32":{},"33":{},"41":{},"45":{},"50":{},"51":{},"54":{},"58":{},"64":{},"66":{},"71":{}},"component":{}}],["mandatori",{"_index":647,"title":{},"name":{},"text":{"6":{},"11":{},"18":{},"31":{}},"component":{}}],["mani",{"_index":1476,"title":{},"name":{},"text":{"18":{},"34":{},"53":{},"54":{}},"component":{}}],["manipul",{"_index":81,"title":{},"name":{},"text":{"1":{},"4":{}},"component":{}}],["manner",{"_index":988,"title":{},"name":{},"text":{"11":{}},"component":{}}],["mantra",{"_index":1574,"title":{},"name":{},"text":{"21":{}},"component":{}}],["manual",{"_index":283,"title":{"17-3":{},"31-4":{},"50-5":{}},"name":{},"text":{"3":{},"17":{},"25":{},"27":{},"28":{},"30":{},"31":{},"35":{},"57":{},"58":{},"59":{},"65":{}},"component":{}}],["map",{"_index":705,"title":{"18-2":{}},"name":{},"text":{"6":{},"11":{},"12":{},"18":{},"26":{},"32":{},"34":{},"35":{},"36":{},"42":{},"43":{},"47":{},"53":{}},"component":{}}],["map.of(\"quarkus.rest",{"_index":2646,"title":{},"name":{},"text":{"43":{}},"component":{}}],["mappingbuild",{"_index":2600,"title":{},"name":{},"text":{"42":{}},"component":{}}],["marketplac",{"_index":3398,"title":{},"name":{},"text":{"74":{}},"component":{}}],["marshal",{"_index":1448,"title":{},"name":{},"text":{"18":{}},"component":{}}],["match",{"_index":373,"title":{"8-1":{}},"name":{},"text":{"4":{},"6":{},"7":{},"8":{},"9":{},"11":{},"12":{},"15":{},"16":{},"18":{},"19":{},"25":{},"32":{},"42":{},"65":{},"74":{}},"component":{}}],["matcher",{"_index":985,"title":{},"name":{},"text":{"11":{}},"component":{}}],["matchlabel",{"_index":1314,"title":{},"name":{},"text":{"16":{},"25":{},"27":{}},"component":{}}],["matter",{"_index":2315,"title":{},"name":{},"text":{"34":{},"60":{}},"component":{}}],["maven",{"_index":532,"title":{},"name":{},"text":{"6":{},"17":{},"18":{},"21":{},"23":{},"28":{},"29":{},"30":{},"33":{},"35":{},"38":{},"41":{},"42":{},"46":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["maven.hom",{"_index":1985,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["max",{"_index":945,"title":{},"name":{},"text":{"10":{}},"component":{}}],["max.x",{"_index":958,"title":{},"name":{},"text":{"10":{}},"component":{}}],["max_by(.x",{"_index":946,"title":{},"name":{},"text":{"10":{}},"component":{}}],["maxact",{"_index":956,"title":{},"name":{},"text":{"10":{}},"component":{}}],["maximum",{"_index":480,"title":{},"name":{},"text":{"5":{},"9":{},"10":{},"27":{},"46":{}},"component":{}}],["md5",{"_index":1918,"title":{},"name":{},"text":{"27":{}},"component":{}}],["mean",{"_index":340,"title":{},"name":{},"text":{"4":{},"6":{},"10":{},"11":{},"13":{},"18":{},"19":{},"27":{},"30":{},"31":{},"32":{},"35":{},"38":{},"48":{},"49":{},"53":{},"59":{}},"component":{}}],["mechan",{"_index":679,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"15":{},"19":{},"26":{},"27":{},"31":{},"37":{},"45":{},"65":{}},"component":{}}],["memori",{"_index":1333,"title":{},"name":{},"text":{"16":{},"17":{},"19":{},"27":{},"47":{},"50":{},"52":{}},"component":{}}],["mention",{"_index":1454,"title":{},"name":{},"text":{"18":{},"25":{},"26":{},"30":{},"37":{},"58":{},"59":{}},"component":{}}],["menu",{"_index":3342,"title":{},"name":{},"text":{"67":{},"71":{},"74":{}},"component":{}}],["merg",{"_index":570,"title":{},"name":{},"text":{"6":{},"10":{},"23":{},"33":{},"35":{},"46":{},"68":{}},"component":{}}],["messag",{"_index":257,"title":{"27-15":{},"28-2":{}},"name":{},"text":{"2":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"14":{},"16":{},"17":{},"18":{},"20":{},"21":{},"23":{},"24":{},"26":{},"27":{},"28":{},"35":{},"37":{},"38":{},"46":{},"47":{},"49":{},"54":{},"59":{},"65":{},"66":{},"67":{},"69":{},"71":{},"72":{}},"component":{}}],["message\":\"hello",{"_index":2383,"title":{},"name":{},"text":{"35":{}},"component":{}}],["message\":\"saludo",{"_index":2377,"title":{},"name":{},"text":{"35":{}},"component":{}}],["met",{"_index":1861,"title":{},"name":{},"text":{"27":{}},"component":{}}],["metadata",{"_index":668,"title":{},"name":{},"text":{"6":{},"14":{},"16":{},"17":{},"25":{},"27":{},"30":{},"47":{},"48":{},"49":{},"52":{},"53":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["metadata.get(oper",{"_index":747,"title":{},"name":{},"text":{"6":{}},"component":{}}],["metadata.getordefault(port",{"_index":751,"title":{},"name":{},"text":{"6":{}},"component":{}}],["metadata.namespac",{"_index":1325,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["metdata",{"_index":1847,"title":{},"name":{},"text":{"26":{}},"component":{}}],["method",{"_index":51,"title":{},"name":{},"text":{"1":{},"6":{},"11":{},"12":{},"26":{},"33":{},"35":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"48":{},"50":{},"51":{},"65":{},"66":{},"72":{},"74":{}},"component":{}}],["metric",{"_index":157,"title":{"25":{},"25-1":{},"25-2":{},"25-3":{},"25-4":{},"25-5":{},"26-2":{}},"name":{"25":{}},"text":{"1":{},"21":{},"23":{},"25":{},"26":{},"50":{},"67":{}},"component":{}}],["metrics_path",{"_index":1778,"title":{},"name":{},"text":{"25":{}},"component":{}}],["micoprofil",{"_index":2280,"title":{},"name":{},"text":{"34":{}},"component":{}}],["micromet",{"_index":1773,"title":{},"name":{},"text":{"25":{}},"component":{}}],["microprofil",{"_index":2070,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{}}],["microservic",{"_index":2665,"title":{},"name":{},"text":{"45":{}},"component":{}}],["migrat",{"_index":146,"title":{"31":{},"52":{},"31-1":{},"31-2":{},"31-3":{},"31-5":{},"31-8":{}},"name":{"31":{},"52":{}},"text":{"1":{},"3":{},"14":{},"16":{},"30":{},"31":{},"52":{}},"component":{}}],["migrate=tru",{"_index":2046,"title":{},"name":{},"text":{"31":{}},"component":{}}],["migrations,s3:migrationsbucket,gcs:migrationsbucket",{"_index":2039,"title":{},"name":{},"text":{"31":{}},"component":{}}],["millisecond",{"_index":678,"title":{},"name":{},"text":{"6":{},"27":{}},"component":{}}],["min",{"_index":947,"title":{},"name":{},"text":{"10":{}},"component":{}}],["min_by(.i",{"_index":948,"title":{},"name":{},"text":{"10":{}},"component":{}}],["mind",{"_index":285,"title":{},"name":{},"text":{"3":{}},"component":{}}],["minifi",{"_index":3142,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["minikub",{"_index":314,"title":{"58":{},"50-6":{},"58-1":{},"58-2":{}},"name":{"58":{}},"text":{"3":{},"16":{},"21":{},"24":{},"47":{},"49":{},"50":{},"51":{},"55":{},"58":{}},"component":{}}],["minikube’",{"_index":3227,"title":{},"name":{},"text":{"58":{}},"component":{}}],["minim",{"_index":2538,"title":{},"name":{},"text":{"41":{}},"component":{}}],["minimum",{"_index":954,"title":{},"name":{},"text":{"10":{},"13":{},"54":{}},"component":{}}],["minor",{"_index":3013,"title":{},"name":{},"text":{"50":{}},"component":{}}],["minu",{"_index":714,"title":{},"name":{},"text":{"6":{}},"component":{}}],["minut",{"_index":845,"title":{},"name":{},"text":{"9":{},"67":{}},"component":{}}],["mislead",{"_index":402,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["miss",{"_index":238,"title":{},"name":{},"text":{"2":{},"31":{},"49":{}},"component":{}}],["mistak",{"_index":2052,"title":{},"name":{},"text":{"31":{}},"component":{}}],["mock",{"_index":132,"title":{"42":{},"43":{},"43-1":{}},"name":{"42":{},"43":{}},"text":{"1":{},"17":{},"38":{},"42":{},"43":{}},"component":{}}],["modal",{"_index":3343,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{}}],["mode",{"_index":493,"title":{"34-6":{},"34-7":{}},"name":{},"text":{"5":{},"9":{},"13":{},"14":{},"15":{},"16":{},"21":{},"26":{},"27":{},"28":{},"29":{},"34":{},"42":{},"47":{},"49":{},"51":{},"66":{},"70":{},"72":{}},"component":{}}],["model",{"_index":293,"title":{"70-1":{}},"name":{},"text":{"3":{},"4":{},"6":{},"7":{},"10":{},"11":{},"12":{},"35":{},"70":{}},"component":{}}],["modif",{"_index":2973,"title":{},"name":{},"text":{"49":{}},"component":{}}],["modifi",{"_index":567,"title":{},"name":{},"text":{"6":{},"12":{},"14":{},"26":{},"62":{}},"component":{}}],["modul",{"_index":246,"title":{},"name":{},"text":{"2":{},"4":{},"6":{}},"component":{}}],["modular",{"_index":258,"title":{},"name":{},"text":{"2":{}},"component":{}}],["moment",{"_index":1494,"title":{},"name":{},"text":{"19":{},"20":{},"23":{},"49":{}},"component":{}}],["mongodb",{"_index":419,"title":{},"name":{},"text":{"5":{},"14":{},"15":{}},"component":{}}],["monitor",{"_index":1763,"title":{"63":{}},"name":{"63":{}},"text":{"25":{},"26":{},"63":{},"64":{},"66":{},"69":{}},"component":{}}],["monitor.yaml",{"_index":1766,"title":{},"name":{},"text":{"25":{}},"component":{}}],["monitoring.coreos.com/v1",{"_index":1767,"title":{},"name":{},"text":{"25":{}},"component":{}}],["more",{"_index":36,"title":{"31-8":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"49":{},"50":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"72":{},"74":{}},"component":{}}],["move",{"_index":244,"title":{},"name":{},"text":{"2":{},"9":{},"10":{},"12":{},"37":{},"46":{},"68":{},"69":{}},"component":{}}],["mp.messaging.[incoming|outgo",{"_index":1446,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.emitter.default",{"_index":1483,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming..path",{"_index":1381,"title":{},"name":{},"text":{"17":{}},"component":{}}],["mp.messaging.incoming.kogito",{"_index":1957,"title":{},"name":{},"text":{"27":{}},"component":{}}],["mp.messaging.incoming.kogito_incoming_stream.connector=smallry",{"_index":1461,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming.kogito_incoming_stream.path",{"_index":1380,"title":{},"name":{},"text":{"17":{}},"component":{}}],["mp.messaging.incoming.kogito_incoming_stream.topic=applic",{"_index":1462,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming.kogito_incoming_stream.value.deserializer=org.apache.kafka.common.serialization.stringdeseri",{"_index":1463,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming.wait.connector=quarku",{"_index":2444,"title":{},"name":{},"text":{"37":{}},"component":{}}],["mp.messaging.incoming.wait.connector=smallry",{"_index":1456,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.incoming.wait.path=/wait",{"_index":2445,"title":{},"name":{},"text":{"37":{}},"component":{}}],["mp.messaging.incoming.wait.value.deserializer=org.apache.kafka.common.serialization.stringdeseri",{"_index":1457,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.kogito",{"_index":1256,"title":{},"name":{},"text":{"14":{},"16":{},"27":{},"28":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.connector",{"_index":1364,"title":{},"name":{},"text":{"17":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.connector=smallry",{"_index":1464,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.topic=decis",{"_index":1465,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.url",{"_index":1362,"title":{},"name":{},"text":{"17":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.url=http://0.0.0.0:8181",{"_index":2603,"title":{},"name":{},"text":{"42":{}},"component":{}}],["mp.messaging.outgoing.kogito_outgoing_stream.value.serializer=org.apache.kafka.common.serialization.stringseri",{"_index":1466,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.resume.connector=smallry",{"_index":1458,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp.messaging.outgoing.resume.value.serializer=org.apache.kafka.common.serialization.stringseri",{"_index":1459,"title":{},"name":{},"text":{"18":{}},"component":{}}],["mp_messaging_incoming_kogito_job_service_job_request_events_v2_top",{"_index":1951,"title":{},"name":{},"text":{"27":{}},"component":{}}],["mp_messaging_outgoing_kogito_job_service_job_status_events_top",{"_index":1953,"title":{},"name":{},"text":{"27":{}},"component":{}}],["much",{"_index":3315,"title":{},"name":{},"text":{"63":{}},"component":{}}],["multipl",{"_index":814,"title":{},"name":{},"text":{"8":{},"14":{},"16":{},"17":{},"19":{},"36":{},"41":{},"60":{}},"component":{}}],["multipli",{"_index":715,"title":{},"name":{},"text":{"6":{},"36":{}},"component":{}}],["multiplicationoper",{"_index":2405,"title":{},"name":{},"text":{"36":{}},"component":{}}],["multiplyvalu",{"_index":2408,"title":{},"name":{},"text":{"36":{}},"component":{}}],["mutat",{"_index":1118,"title":{},"name":{},"text":{"14":{}},"component":{}}],["mvn",{"_index":1093,"title":{},"name":{},"text":{"13":{},"17":{},"21":{},"28":{},"29":{},"33":{},"34":{},"35":{},"38":{},"42":{}},"component":{}}],["mxn",{"_index":2231,"title":{},"name":{},"text":{"33":{}},"component":{}}],["my.body.data",{"_index":602,"title":{},"name":{},"text":{"6":{}},"component":{}}],["my.other.valu",{"_index":606,"title":{},"name":{},"text":{"6":{}},"component":{}}],["my.properties.key",{"_index":2929,"title":{},"name":{},"text":{"48":{}},"component":{}}],["my.valu",{"_index":604,"title":{},"name":{},"text":{"6":{}},"component":{}}],["my_different_namespac",{"_index":638,"title":{},"name":{},"text":{"6":{}},"component":{}}],["my_key",{"_index":2091,"title":{},"name":{},"text":{"32":{}},"component":{}}],["mycamelendpoint",{"_index":590,"title":{},"name":{},"text":{"6":{}},"component":{}}],["myendpoint",{"_index":594,"title":{},"name":{},"text":{"6":{}},"component":{}}],["myfunct",{"_index":534,"title":{},"name":{},"text":{"6":{},"34":{}},"component":{}}],["myheadernam",{"_index":2124,"title":{},"name":{},"text":{"32":{}},"component":{}}],["myinterfaceorclass",{"_index":550,"title":{},"name":{},"text":{"6":{}},"component":{}}],["mymethod",{"_index":543,"title":{},"name":{},"text":{"6":{}},"component":{}}],["mymethod(int",{"_index":552,"title":{},"name":{},"text":{"6":{}},"component":{}}],["mymethod(jsonnod",{"_index":564,"title":{},"name":{},"text":{"6":{}},"component":{}}],["myopenapifile.yaml",{"_index":2389,"title":{},"name":{},"text":{"36":{}},"component":{}}],["mystat",{"_index":525,"title":{},"name":{},"text":{"6":{}},"component":{}}],["myworkflow",{"_index":389,"title":{},"name":{},"text":{"4":{},"34":{}},"component":{}}],["myworkflow_myfunct",{"_index":2263,"title":{},"name":{},"text":{"34":{}},"component":{}}],["n",{"_index":375,"title":{},"name":{},"text":{"4":{},"41":{},"47":{},"49":{},"50":{},"53":{},"54":{},"57":{},"59":{}},"component":{}}],["name",{"_index":391,"title":{"27-6":{}},"name":{},"text":{"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["name\":\"javierito",{"_index":1568,"title":{},"name":{},"text":{"20":{}},"component":{}}],["name\":\"myfunction1",{"_index":2384,"title":{},"name":{},"text":{"36":{}},"component":{}}],["name\":\"process",{"_index":2695,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"processpay",{"_index":2678,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"processpaymentact",{"_index":2680,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"reserv",{"_index":2693,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"reservestock",{"_index":2699,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name\":\"ship",{"_index":2696,"title":{},"name":{},"text":{"45":{}},"component":{}}],["name/port",{"_index":1911,"title":{},"name":{},"text":{"27":{}},"component":{}}],["name=[http_header_nam",{"_index":2121,"title":{},"name":{},"text":{"32":{}},"component":{}}],["name=label",{"_index":3269,"title":{},"name":{},"text":{"60":{}},"component":{}}],["name=myheadernam",{"_index":2123,"title":{},"name":{},"text":{"32":{}},"component":{}}],["name=namevalue;anoth",{"_index":3281,"title":{},"name":{},"text":{"60":{}},"component":{}}],["name=test",{"_index":3284,"title":{},"name":{},"text":{"60":{}},"component":{}}],["name={port_nam",{"_index":3267,"title":{},"name":{},"text":{"60":{}},"component":{}}],["name_oper",{"_index":3421,"title":{},"name":{},"text":{"74":{}},"component":{}}],["name_vers",{"_index":3422,"title":{},"name":{},"text":{"74":{}},"component":{}}],["namespac",{"_index":513,"title":{"6-13":{},"47-6":{}},"name":{},"text":{"6":{},"17":{},"25":{},"47":{},"48":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"69":{}},"component":{}}],["namespace/project",{"_index":3085,"title":{},"name":{},"text":{"55":{}},"component":{}}],["namespace=serverless",{"_index":3141,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["namespace=workflow",{"_index":2875,"title":{},"name":{},"text":{"47":{}},"component":{}}],["nan",{"_index":1820,"title":{},"name":{},"text":{"26":{}},"component":{}}],["narayana",{"_index":1698,"title":{},"name":{},"text":{"21":{}},"component":{}}],["nativ",{"_index":23,"title":{"55-3":{}},"name":{},"text":{"1":{},"3":{},"4":{},"6":{},"29":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["natur",{"_index":975,"title":{},"name":{},"text":{"11":{}},"component":{}}],["navig",{"_index":2210,"title":{},"name":{},"text":{"33":{},"35":{},"46":{},"55":{},"62":{},"65":{},"66":{},"74":{}},"component":{}}],["necess",{"_index":2540,"title":{},"name":{},"text":{"41":{}},"component":{}}],["necessari",{"_index":901,"title":{},"name":{},"text":{"9":{},"14":{},"31":{},"36":{}},"component":{}}],["need",{"_index":439,"title":{},"name":{},"text":{"5":{},"6":{},"9":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"21":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"50":{},"51":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"68":{},"69":{},"70":{},"74":{}},"component":{}}],["nest",{"_index":2740,"title":{},"name":{},"text":{"45":{}},"component":{}}],["net",{"_index":2051,"title":{},"name":{},"text":{"31":{},"36":{},"57":{}},"component":{}}],["network",{"_index":2348,"title":{},"name":{},"text":{"35":{},"60":{}},"component":{}}],["networking.k8s.io",{"_index":3289,"title":{},"name":{},"text":{"60":{}},"component":{}}],["never",{"_index":3216,"title":{},"name":{},"text":{"58":{}},"component":{}}],["new",{"_index":183,"title":{"2":{},"49-2":{},"65-2":{},"65-3":{},"65-6":{}},"name":{},"text":{"2":{},"3":{},"6":{},"8":{},"9":{},"12":{},"14":{},"15":{},"19":{},"21":{},"23":{},"27":{},"30":{},"31":{},"33":{},"37":{},"41":{},"42":{},"43":{},"45":{},"47":{},"49":{},"50":{},"53":{},"54":{},"59":{},"65":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["newaccountev",{"_index":1495,"title":{},"name":{},"text":{"19":{}},"component":{}}],["newaccounteventtyp",{"_index":1496,"title":{},"name":{},"text":{"19":{}},"component":{}}],["newli",{"_index":3076,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{},"65":{},"66":{}},"component":{}}],["next",{"_index":861,"title":{},"name":{},"text":{"9":{},"12":{},"21":{},"24":{},"27":{},"33":{},"37":{},"45":{},"46":{},"54":{},"57":{},"58":{},"59":{},"65":{},"66":{},"74":{}},"component":{}}],["nfrom",{"_index":2837,"title":{},"name":{},"text":{"47":{}},"component":{}}],["nightli",{"_index":2815,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["nightly:1.41.0",{"_index":3010,"title":{},"name":{},"text":{"50":{}},"component":{}}],["nightly:latest",{"_index":1876,"title":{},"name":{},"text":{"27":{},"47":{}},"component":{}}],["node",{"_index":569,"title":{},"name":{},"text":{"6":{},"14":{},"35":{},"66":{}},"component":{}}],["node.workname(name).metadata(oper",{"_index":736,"title":{},"name":{},"text":{"6":{}},"component":{}}],["nodedefinit",{"_index":1187,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeid",{"_index":1201,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeid:\"_b8c4f63c",{"_index":1209,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinst",{"_index":1202,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstancecancel",{"_index":1222,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstanceid",{"_index":1215,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstanceid:\"01756ba2",{"_index":1217,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstanceretrigg",{"_index":1216,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeinstancetrigg",{"_index":1203,"title":{},"name":{},"text":{"14":{}},"component":{}}],["nodeport",{"_index":2909,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["noisi",{"_index":807,"title":{},"name":{},"text":{"8":{}},"component":{}}],["noisyev",{"_index":809,"title":{},"name":{},"text":{"8":{}},"component":{}}],["non",{"_index":686,"title":{},"name":{},"text":{"6":{},"18":{},"19":{},"32":{}},"component":{}}],["none",{"_index":1472,"title":{},"name":{},"text":{"18":{},"46":{},"74":{}},"component":{}}],["normal",{"_index":1739,"title":{},"name":{},"text":{"23":{},"34":{},"35":{},"53":{},"54":{}},"component":{}}],["notabl",{"_index":180,"title":{"2-1":{}},"name":{},"text":{},"component":{}}],["notat",{"_index":1177,"title":{},"name":{},"text":{"14":{}},"component":{}}],["notcareaboutnois",{"_index":818,"title":{},"name":{},"text":{"8":{}},"component":{}}],["note",{"_index":636,"title":{},"name":{},"text":{"6":{},"11":{},"12":{},"13":{},"17":{},"18":{},"21":{},"26":{},"32":{},"34":{},"36":{},"37":{},"48":{},"53":{},"55":{},"59":{}},"component":{}}],["notic",{"_index":3248,"title":{},"name":{},"text":{"59":{}},"component":{}}],["notif",{"_index":3326,"title":{},"name":{},"text":{"65":{},"66":{},"74":{}},"component":{}}],["notifi",{"_index":1862,"title":{},"name":{},"text":{"27":{},"37":{},"46":{}},"component":{}}],["notus",{"_index":2402,"title":{},"name":{},"text":{"36":{}},"component":{}}],["now",{"_index":282,"title":{},"name":{},"text":{"3":{},"31":{},"47":{},"49":{},"53":{},"59":{}},"component":{}}],["npm",{"_index":1804,"title":{},"name":{},"text":{"26":{}},"component":{}}],["null",{"_index":748,"title":{},"name":{},"text":{"6":{},"19":{},"26":{},"33":{},"42":{},"43":{},"57":{},"58":{},"59":{}},"component":{}}],["number",{"_index":471,"title":{},"name":{},"text":{"5":{},"6":{},"10":{},"11":{},"13":{},"17":{},"26":{},"33":{},"36":{},"43":{},"46":{},"64":{}},"component":{}}],["numbertyp",{"_index":1010,"title":{},"name":{},"text":{"11":{}},"component":{}}],["numcomplet",{"_index":1107,"title":{},"name":{},"text":{"13":{}},"component":{}}],["numer",{"_index":1161,"title":{},"name":{},"text":{"14":{}},"component":{}}],["o",{"_index":2964,"title":{},"name":{},"text":{"49":{},"50":{},"54":{},"57":{},"58":{}},"component":{}}],["oauth",{"_index":124,"title":{"33":{},"32-5":{},"33-1":{}},"name":{},"text":{"1":{},"32":{},"33":{}},"component":{}}],["oauth2",{"_index":126,"title":{"33-2":{}},"name":{"33":{}},"text":{"1":{},"32":{},"33":{}},"component":{}}],["oauth_exampl",{"_index":2101,"title":{},"name":{},"text":{"32":{}},"component":{}}],["object",{"_index":310,"title":{"6-15":{},"17-4":{}},"name":{},"text":{"3":{},"6":{},"7":{},"10":{},"11":{},"17":{},"23":{},"32":{},"33":{},"35":{},"36":{},"47":{},"48":{},"54":{},"57":{},"58":{},"59":{},"60":{},"74":{}},"component":{}}],["objectmapp",{"_index":2578,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["objectmapper.readtree(countryserviceworkflowtest.class.getresourceasstream(\"/country_mock_feature_a.json",{"_index":2661,"title":{},"name":{},"text":{"43":{}},"component":{}}],["objectmapper.readtree(getclass().getresourceasstream(\"/country_mock.json",{"_index":2622,"title":{},"name":{},"text":{"43":{}},"component":{}}],["objectmapper.writevalueasstring(cloudeventbuilder.v1",{"_index":1037,"title":{},"name":{},"text":{"12":{}},"component":{}}],["observ",{"_index":3053,"title":{},"name":{},"text":{"54":{}},"component":{}}],["observedgener",{"_index":3056,"title":{},"name":{},"text":{"54":{}},"component":{}}],["obtain",{"_index":760,"title":{},"name":{},"text":{"6":{},"35":{},"69":{}},"component":{}}],["oc",{"_index":1772,"title":{},"name":{},"text":{"25":{},"47":{},"59":{},"69":{}},"component":{}}],["occur",{"_index":571,"title":{},"name":{},"text":{"6":{},"8":{},"10":{},"11":{},"45":{},"49":{}},"component":{}}],["occurr",{"_index":2244,"title":{},"name":{},"text":{"33":{}},"component":{}}],["odata",{"_index":363,"title":{},"name":{},"text":{"4":{}},"component":{}}],["odd",{"_index":1001,"title":{},"name":{},"text":{"11":{}},"component":{}}],["oer",{"_index":2443,"title":{},"name":{},"text":{"37":{}},"component":{}}],["offer",{"_index":3210,"title":{},"name":{},"text":{"58":{}},"component":{}}],["offset",{"_index":1173,"title":{},"name":{},"text":{"14":{}},"component":{}}],["oidc",{"_index":1700,"title":{},"name":{},"text":{"21":{},"32":{},"33":{}},"component":{}}],["oidcclient",{"_index":2100,"title":{},"name":{},"text":{"32":{}},"component":{}}],["ok",{"_index":626,"title":{},"name":{},"text":{"6":{},"24":{},"32":{},"33":{},"36":{},"57":{},"58":{},"59":{}},"component":{}}],["okhttp",{"_index":3300,"title":{},"name":{},"text":{"60":{}},"component":{}}],["olm",{"_index":2986,"title":{},"name":{},"text":{"50":{}},"component":{}}],["olm’",{"_index":2984,"title":{},"name":{},"text":{"50":{}},"component":{}}],["omit",{"_index":2387,"title":{},"name":{},"text":{"36":{}},"component":{}}],["on",{"_index":224,"title":{},"name":{},"text":{"2":{},"3":{},"4":{},"6":{},"8":{},"9":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"24":{},"26":{},"27":{},"30":{},"31":{},"32":{},"35":{},"36":{},"41":{},"43":{},"46":{},"47":{},"48":{},"49":{},"53":{},"57":{},"58":{},"59":{},"60":{},"67":{},"70":{},"72":{},"74":{}},"component":{}}],["onc",{"_index":849,"title":{},"name":{},"text":{"9":{},"10":{},"12":{},"15":{},"16":{},"19":{},"20":{},"21":{},"23":{},"29":{},"30":{},"33":{},"35":{},"36":{},"37":{},"42":{},"43":{},"45":{},"49":{},"50":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"74":{}},"component":{}}],["onerror",{"_index":872,"title":{},"name":{},"text":{"9":{},"11":{},"33":{},"45":{},"46":{}},"component":{}}],["onev",{"_index":802,"title":{},"name":{},"text":{"8":{},"9":{},"19":{},"46":{}},"component":{}}],["onevent(messag",{"_index":1052,"title":{},"name":{},"text":{"12":{}},"component":{}}],["onlin",{"_index":1716,"title":{},"name":{},"text":{"22":{},"62":{},"69":{}},"component":{}}],["onoverflow",{"_index":1439,"title":{"18-3":{}},"name":{},"text":{"18":{}},"component":{}}],["open",{"_index":457,"title":{"66-1":{}},"name":{},"text":{"5":{},"32":{},"41":{},"43":{},"49":{},"58":{},"67":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["openapi",{"_index":112,"title":{"32":{},"34":{},"36":{},"37":{},"43":{},"32-1":{},"34-3":{},"36-1":{},"36-2":{},"36-3":{},"36-5":{},"37-1":{},"43-1":{},"74-5":{}},"name":{"32":{},"34":{},"36":{},"37":{},"43":{}},"text":{"1":{},"2":{},"7":{},"10":{},"11":{},"21":{},"32":{},"33":{},"34":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"53":{},"60":{},"67":{},"71":{},"74":{}},"component":{}}],["openapi.json",{"_index":3047,"title":{},"name":{},"text":{"53":{}},"component":{}}],["openapi.json#iswinn",{"_index":3040,"title":{},"name":{},"text":{"53":{}},"component":{}}],["openapi/async",{"_index":44,"title":{},"name":{},"text":{"1":{}},"component":{}}],["openapi/stock",{"_index":2289,"title":{},"name":{},"text":{"34":{}},"component":{}}],["openid",{"_index":2099,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["openshift",{"_index":313,"title":{"59":{},"69":{},"71":{},"25-3":{},"47-9":{},"50-1":{},"59-1":{},"59-2":{},"59-5":{},"69-2":{},"71-1":{},"71-2":{}},"name":{"59":{},"69":{}},"text":{"3":{},"25":{},"47":{},"49":{},"50":{},"51":{},"55":{},"59":{},"60":{},"67":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["openshift1.43.0.fin",{"_index":3180,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["openshift:2.16.9.fin",{"_index":3253,"title":{},"name":{},"text":{"59":{}},"component":{}}],["openshift_registry_url",{"_index":3238,"title":{},"name":{},"text":{"59":{}},"component":{}}],["openshift_registry_url/kogito",{"_index":3245,"title":{},"name":{},"text":{"59":{}},"component":{}}],["openshift_registry_url=$(oc",{"_index":3240,"title":{},"name":{},"text":{"59":{}},"component":{}}],["openshift’",{"_index":2980,"title":{"59-3":{}},"name":{},"text":{"50":{},"59":{}},"component":{}}],["oper",{"_index":188,"title":{"47":{},"49":{},"50":{},"51":{},"3-1":{},"9-7":{},"46-5":{},"47-8":{},"50-1":{},"50-3":{},"50-5":{}},"name":{"50":{}},"text":{"2":{},"3":{},"4":{},"6":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"20":{},"23":{},"24":{},"25":{},"27":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"59":{},"67":{},"69":{},"74":{}},"component":{}}],["operation\":\"classpath:/myopenapi",{"_index":2385,"title":{},"name":{},"text":{"36":{}},"component":{}}],["operation\":\"service:org.kie.kogito.paymentservice::processpay",{"_index":2701,"title":{},"name":{},"text":{"45":{}},"component":{}}],["operation1",{"_index":2273,"title":{},"name":{},"text":{"34":{}},"component":{}}],["operation2",{"_index":2275,"title":{},"name":{},"text":{"34":{}},"component":{}}],["operationid",{"_index":746,"title":{},"name":{},"text":{"6":{},"20":{},"32":{},"33":{},"36":{}},"component":{}}],["operationid.valueof(operationid.touppercas",{"_index":753,"title":{},"name":{},"text":{"6":{}},"component":{}}],["operator/.x/operator.yaml",{"_index":3017,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operator/main/operator.yaml",{"_index":3018,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operator/v1.43.0/config/samples/sw.kogito_v1alpha08_sonataflow_devmode.yaml",{"_index":2946,"title":{},"name":{},"text":{"49":{}},"component":{}}],["operator/v1.43.0/operator.yaml",{"_index":2997,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operator/v1.43.0/test/testdata/sw.kogito_v1alpha08_sonataflow_devmode.yaml",{"_index":2940,"title":{},"name":{},"text":{"49":{}},"component":{}}],["operatorhub",{"_index":216,"title":{},"name":{},"text":{"2":{},"50":{}},"component":{}}],["operatorhub.io",{"_index":2982,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operatorhub’",{"_index":2983,"title":{},"name":{},"text":{"50":{}},"component":{}}],["operator’",{"_index":2823,"title":{},"name":{},"text":{"47":{},"50":{}},"component":{}}],["opt",{"_index":281,"title":{},"name":{},"text":{"3":{},"31":{}},"component":{}}],["optim",{"_index":2134,"title":{},"name":{},"text":{"33":{},"41":{}},"component":{}}],["optimist",{"_index":431,"title":{},"name":{},"text":{"5":{},"30":{}},"component":{}}],["option",{"_index":46,"title":{},"name":{},"text":{"1":{},"3":{},"5":{},"6":{},"7":{},"11":{},"12":{},"14":{},"16":{},"18":{},"19":{},"21":{},"24":{},"27":{},"30":{},"31":{},"33":{},"35":{},"41":{},"43":{},"45":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"65":{},"66":{},"67":{},"68":{},"74":{}},"component":{}}],["orchestr",{"_index":6,"title":{"20":{},"33":{},"35":{},"36":{},"45":{},"1-4":{},"1-5":{},"33-1":{},"33-2":{}},"name":{"20":{},"33":{},"35":{},"36":{},"45":{}},"text":{"1":{},"4":{},"6":{},"7":{},"10":{},"21":{},"32":{},"33":{},"34":{},"36":{},"43":{},"45":{},"53":{}},"component":{}}],["order",{"_index":271,"title":{},"name":{},"text":{"2":{},"13":{},"14":{},"31":{},"33":{},"35":{},"42":{},"45":{},"46":{},"47":{},"49":{},"54":{}},"component":{}}],["order.getid",{"_index":2585,"title":{},"name":{},"text":{"42":{}},"component":{}}],["order.setcountry(\"u",{"_index":2583,"title":{},"name":{},"text":{"42":{}},"component":{}}],["order.setdescription(\"iphon",{"_index":2580,"title":{},"name":{},"text":{"42":{}},"component":{}}],["order.setid(uuid.randomuuid().tostr",{"_index":2579,"title":{},"name":{},"text":{"42":{}},"component":{}}],["order.settotal(1001",{"_index":2582,"title":{},"name":{},"text":{"42":{}},"component":{}}],["orderbi",{"_index":1169,"title":{},"name":{},"text":{"14":{}},"component":{}}],["orderev",{"_index":2587,"title":{},"name":{},"text":{"42":{}},"component":{}}],["orderid",{"_index":2707,"title":{},"name":{},"text":{"45":{}},"component":{}}],["orderid\":\".orderid",{"_index":2682,"title":{},"name":{},"text":{"45":{}},"component":{}}],["orderid\":\"03e6cf79",{"_index":2718,"title":{},"name":{},"text":{"45":{}},"component":{}}],["orderrespons",{"_index":2738,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.acm",{"_index":1600,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.acme:serverless",{"_index":1587,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.apache.kafka.common.serialization.bytearraydeseri",{"_index":1449,"title":{},"name":{},"text":{"18":{}},"component":{}}],["org.apache.kafka.common.serialization.bytearrayseri",{"_index":1452,"title":{},"name":{},"text":{"18":{}},"component":{}}],["org.apache.kafka.common.serialization.stringdeseri",{"_index":1450,"title":{},"name":{},"text":{"18":{}},"component":{}}],["org.apache.kafka.common.serialization.stringseri",{"_index":1453,"title":{},"name":{},"text":{"18":{}},"component":{}}],["org.apache.maven.plugins:maven",{"_index":1615,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.awaitil",{"_index":1980,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["org.hamcrest.matchers.equalto",{"_index":2462,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.jbo.thread",{"_index":2479,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.jboss.logmanager.logmanag",{"_index":1984,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["org.junit.jupiter.api.beforeal",{"_index":2459,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.junit.jupiter.api.test",{"_index":2460,"title":{},"name":{},"text":{"38":{},"43":{}},"component":{}}],["org.kie.kog.add.qua.mes.com.quarkuskogitoextensioniniti",{"_index":1630,"title":{},"name":{},"text":{"21":{},"38":{}},"component":{}}],["org.kie.kog.cod.api.uti.addonsconfigdiscoveri",{"_index":2483,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.kie.kog.cod.cor.uti.applicationgeneratordiscoveri",{"_index":2495,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.kie.kog.mockservic",{"_index":2774,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kog.orderservic",{"_index":2748,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kog.paymentservic",{"_index":2744,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kog.per.inm.pos.run.inmemorypostgresqlrecord",{"_index":1673,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.kie.kog.per.pro.protobufservic",{"_index":1679,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.kie.kog.qua.pro.dev.dataindexinmemorycontain",{"_index":1641,"title":{},"name":{},"text":{"21":{}},"component":{}}],["org.kie.kog.shippingservic",{"_index":2746,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kog.stockservic",{"_index":2742,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kogito",{"_index":1225,"title":{},"name":{},"text":{"14":{},"15":{},"16":{},"17":{},"23":{},"24":{},"25":{},"26":{},"28":{},"29":{},"30":{},"57":{},"58":{},"59":{},"60":{},"64":{},"66":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.auto_generate_brok",{"_index":1370,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.brok",{"_index":1378,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.health",{"_index":2933,"title":{},"name":{},"text":{"48":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.health_en",{"_index":1369,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink",{"_index":1372,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink.api_vers",{"_index":1375,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink.kind",{"_index":1377,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink.nam",{"_index":1376,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.addons.knative.eventing.sink.namespac",{"_index":1374,"title":{},"name":{},"text":{"17":{}},"component":{}}],["org.kie.kogito.exampl",{"_index":2166,"title":{},"name":{},"text":{"33":{},"38":{}},"component":{}}],["org.kie.kogito.examples.evenservic",{"_index":1004,"title":{},"name":{},"text":{"11":{}},"component":{}}],["org.kie.kogito.examples.exchangeworkflowhelp",{"_index":2163,"title":{},"name":{},"text":{"33":{}},"component":{}}],["org.kie.kogito.examples.hellotest",{"_index":2476,"title":{},"name":{},"text":{"38":{}},"component":{}}],["org.kie.kogito.examples.sw.custom.rpccustomworkitemhandler.nam",{"_index":728,"title":{},"name":{},"text":{"6":{}},"component":{}}],["org.kie.kogito.examples.sw.custom.rpccustomworkitemhandler.oper",{"_index":729,"title":{},"name":{},"text":{"6":{}},"component":{}}],["org.kie.kogito.serviceexcept",{"_index":2697,"title":{},"name":{},"text":{"45":{}},"component":{}}],["org.kie.kogito.sw.knative.service=knative:services.v1/serverless",{"_index":3304,"title":{},"name":{},"text":{"60":{}},"component":{}}],["org.kie.kogito:kogito",{"_index":1719,"title":{},"name":{},"text":{"23":{},"25":{},"26":{},"57":{},"58":{},"59":{},"60":{},"64":{}},"component":{}}],["organ",{"_index":3051,"title":{},"name":{},"text":{"53":{}},"component":{}}],["origin",{"_index":960,"title":{},"name":{},"text":{"10":{},"11":{}},"component":{}}],["orm",{"_index":1696,"title":{},"name":{},"text":{"21":{}},"component":{}}],["otherwis",{"_index":806,"title":{},"name":{},"text":{"8":{},"10":{},"11":{},"16":{},"23":{},"24":{},"45":{},"48":{},"50":{},"57":{},"58":{}},"component":{}}],["ought",{"_index":1356,"title":{},"name":{},"text":{"17":{}},"component":{}}],["out",{"_index":858,"title":{},"name":{},"text":{"9":{},"10":{},"37":{},"49":{},"54":{},"57":{},"65":{},"66":{},"69":{}},"component":{}}],["outcom",{"_index":3008,"title":{},"name":{},"text":{"50":{}},"component":{}}],["outgo",{"_index":448,"title":{},"name":{},"text":{"5":{},"14":{},"17":{},"18":{},"27":{},"37":{}},"component":{}}],["outgoing(\"out",{"_index":1050,"title":{},"name":{},"text":{"12":{}},"component":{}}],["output",{"_index":89,"title":{"7":{},"7-2":{}},"name":{},"text":{"1":{},"7":{},"10":{},"11":{},"18":{},"21":{},"24":{},"38":{},"41":{},"45":{},"49":{},"50":{},"53":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["outputschema",{"_index":772,"title":{"7-3":{}},"name":{},"text":{"7":{}},"component":{}}],["outsid",{"_index":441,"title":{},"name":{},"text":{"5":{}},"component":{}}],["over",{"_index":1267,"title":{},"name":{},"text":{"15":{},"17":{},"20":{},"28":{},"37":{}},"component":{}}],["overdu",{"_index":857,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["overeag",{"_index":3366,"title":{},"name":{},"text":{"69":{}},"component":{}}],["overflow",{"_index":1468,"title":{},"name":{},"text":{"18":{}},"component":{}}],["overrid",{"_index":415,"title":{},"name":{},"text":{"5":{},"6":{},"10":{},"16":{},"17":{},"41":{},"43":{},"48":{},"55":{},"60":{}},"component":{}}],["overview",{"_index":1265,"title":{"15-1":{},"29-1":{},"32-1":{},"34-1":{},"42-1":{},"45-1":{}},"name":{"41":{},"64":{},"70":{},"73":{}},"text":{},"component":{}}],["overwrit",{"_index":2321,"title":{},"name":{},"text":{"34":{},"41":{}},"component":{}}],["overwrot",{"_index":2325,"title":{},"name":{},"text":{"34":{}},"component":{}}],["p",{"_index":2911,"title":{},"name":{},"text":{"47":{},"55":{},"58":{},"59":{}},"component":{}}],["p2dt3h4m",{"_index":846,"title":{},"name":{},"text":{"9":{}},"component":{}}],["packag",{"_index":1608,"title":{},"name":{},"text":{"21":{},"26":{},"27":{},"33":{},"34":{},"38":{}},"component":{}}],["package=com.acm",{"_index":2190,"title":{},"name":{},"text":{"33":{}},"component":{}}],["packet",{"_index":1663,"title":{},"name":{},"text":{"21":{}},"component":{}}],["page",{"_index":1821,"title":{},"name":{"62":{},"63":{},"65":{},"66":{}},"text":{"26":{},"38":{},"41":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"72":{},"74":{}},"component":{}}],["pagin",{"_index":1174,"title":{},"name":{},"text":{"14":{}},"component":{}}],["pair",{"_index":608,"title":{},"name":{},"text":{"6":{},"23":{},"35":{}},"component":{}}],["palett",{"_index":3403,"title":{},"name":{},"text":{"74":{}},"component":{}}],["panach",{"_index":1697,"title":{},"name":{},"text":{"21":{}},"component":{}}],["panel",{"_index":3333,"title":{},"name":{},"text":{"66":{}},"component":{}}],["parallel",{"_index":98,"title":{"13":{},"13-1":{},"13-2":{},"13-3":{}},"name":{"13":{}},"text":{"1":{},"4":{},"13":{},"42":{}},"component":{}}],["parallel.sw.json",{"_index":1072,"title":{},"name":{},"text":{"13":{}},"component":{}}],["paramet",{"_index":560,"title":{},"name":{},"text":{"6":{},"7":{},"11":{},"14":{},"25":{},"27":{},"32":{},"33":{},"35":{},"36":{},"38":{},"42":{},"47":{},"60":{}},"component":{}}],["parameters.values().iter",{"_index":744,"title":{},"name":{},"text":{"6":{}},"component":{}}],["parentprocessinstanceid",{"_index":1144,"title":{},"name":{},"text":{"14":{}},"component":{}}],["pars",{"_index":2560,"title":{},"name":{},"text":{"42":{},"60":{},"74":{}},"component":{}}],["parsercontext",{"_index":733,"title":{},"name":{},"text":{"6":{}},"component":{}}],["part",{"_index":697,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"14":{},"16":{},"19":{},"20":{},"27":{},"33":{},"35":{},"36":{}},"component":{}}],["parti",{"_index":123,"title":{"33":{}},"name":{"33":{}},"text":{"1":{},"32":{},"43":{},"45":{}},"component":{}}],["partial",{"_index":337,"title":{},"name":{},"text":{"4":{},"11":{}},"component":{}}],["particip",{"_index":2663,"title":{},"name":{},"text":{"45":{}},"component":{}}],["particular",{"_index":557,"title":{},"name":{},"text":{"6":{},"18":{},"19":{},"32":{},"33":{},"47":{},"53":{}},"component":{}}],["pass",{"_index":546,"title":{},"name":{},"text":{"6":{},"10":{},"14":{},"16":{},"27":{},"28":{},"32":{},"33":{},"42":{},"55":{}},"component":{}}],["password",{"_index":1347,"title":{},"name":{},"text":{"16":{},"21":{},"27":{},"29":{},"31":{},"32":{},"47":{},"58":{}},"component":{}}],["password=bar",{"_index":2033,"title":{},"name":{},"text":{"31":{}},"component":{}}],["past",{"_index":3357,"title":{},"name":{},"text":{"68":{}},"component":{}}],["patch",{"_index":2818,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["path",{"_index":634,"title":{"62-3":{}},"name":{},"text":{"6":{},"7":{},"10":{},"14":{},"17":{},"25":{},"26":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"46":{},"53":{},"57":{},"58":{},"59":{},"60":{},"62":{},"65":{},"66":{},"74":{}},"component":{}}],["path(\"id",{"_index":1993,"title":{},"name":{},"text":{"29":{}},"component":{}}],["path=/token",{"_index":2106,"title":{},"name":{},"text":{"32":{}},"component":{}}],["path=http://localhost:8281/auth/realms/kogito/protocol/openid",{"_index":2197,"title":{},"name":{},"text":{"33":{}},"component":{}}],["pattern",{"_index":177,"title":{"45-1":{},"45-2":{},"45-3":{}},"name":{"45":{}},"text":{"1":{},"11":{},"45":{},"49":{},"60":{},"74":{}},"component":{}}],["paus",{"_index":799,"title":{},"name":{},"text":{"8":{},"30":{}},"component":{}}],["pay",{"_index":3164,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["payload",{"_index":639,"title":{},"name":{},"text":{"6":{},"11":{},"17":{},"19":{},"20":{},"23":{},"24":{},"35":{},"36":{},"43":{},"46":{}},"component":{}}],["payment",{"_index":2671,"title":{},"name":{},"text":{"45":{}},"component":{}}],["paymentrespons",{"_index":2726,"title":{},"name":{},"text":{"45":{}},"component":{}}],["paymentservice.java",{"_index":2698,"title":{},"name":{},"text":{"45":{}},"component":{}}],["pbuild",{"_index":3096,"title":{},"name":{},"text":{"55":{}},"component":{}}],["peform",{"_index":1015,"title":{},"name":{},"text":{"12":{}},"component":{}}],["pencil",{"_index":3394,"title":{},"name":{},"text":{"72":{}},"component":{}}],["per",{"_index":341,"title":{},"name":{},"text":{"4":{},"13":{},"18":{},"27":{},"47":{}},"component":{}}],["percentag",{"_index":2299,"title":{},"name":{},"text":{"34":{}},"component":{}}],["perform",{"_index":563,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"25":{},"29":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"47":{},"49":{},"60":{},"71":{},"73":{},"74":{}},"component":{}}],["period",{"_index":1859,"title":{},"name":{},"text":{"27":{},"34":{}},"component":{}}],["periodsecond",{"_index":3197,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["perman",{"_index":1868,"title":{},"name":{},"text":{"27":{}},"component":{}}],["permiss",{"_index":2521,"title":{},"name":{},"text":{"41":{},"53":{},"60":{},"68":{},"69":{}},"component":{}}],["persist",{"_index":12,"title":{"1-8":{},"27-8":{},"29-2":{},"30-1":{}},"name":{"30":{}},"text":{"1":{},"2":{},"5":{},"14":{},"15":{},"16":{},"19":{},"27":{},"29":{},"30":{},"31":{},"45":{},"70":{}},"component":{}}],["person",{"_index":2969,"title":{},"name":{},"text":{"49":{},"67":{}},"component":{}}],["perspect",{"_index":1017,"title":{},"name":{},"text":{"12":{},"37":{},"53":{}},"component":{}}],["pet",{"_index":2412,"title":{},"name":{},"text":{"36":{}},"component":{}}],["pet/{petid",{"_index":2411,"title":{},"name":{},"text":{"36":{}},"component":{}}],["petid",{"_index":2414,"title":{},"name":{},"text":{"36":{}},"component":{}}],["petstor",{"_index":2390,"title":{},"name":{},"text":{"36":{}},"component":{}}],["phase",{"_index":701,"title":{"47-6":{}},"name":{},"text":{"6":{},"47":{},"54":{}},"component":{}}],["php",{"_index":2397,"title":{},"name":{},"text":{"36":{}},"component":{}}],["pick",{"_index":2023,"title":{},"name":{},"text":{"31":{}},"component":{}}],["pid",{"_index":3220,"title":{},"name":{},"text":{"58":{}},"component":{}}],["place",{"_index":779,"title":{},"name":{},"text":{"7":{},"15":{},"23":{},"67":{}},"component":{}}],["placehold",{"_index":3016,"title":{},"name":{},"text":{"50":{}},"component":{}}],["plain",{"_index":3174,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["plainjsonknativefunct",{"_index":1753,"title":{},"name":{},"text":{"24":{}},"component":{}}],["plan",{"_index":1409,"title":{},"name":{},"text":{"17":{}},"component":{}}],["platform",{"_index":230,"title":{},"name":{},"text":{"2":{},"3":{},"14":{},"17":{},"21":{},"47":{},"52":{},"57":{},"58":{},"69":{}},"component":{}}],["platform/4.13/networking/routes/rout",{"_index":2914,"title":{},"name":{},"text":{"47":{}},"component":{}}],["play",{"_index":1486,"title":{},"name":{},"text":{"19":{},"45":{},"49":{}},"component":{}}],["pleas",{"_index":403,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["plug",{"_index":130,"title":{"41":{},"41-1":{}},"name":{},"text":{"1":{},"17":{},"21":{},"22":{},"24":{},"29":{},"41":{},"42":{},"57":{},"58":{},"64":{}},"component":{}}],["plugin",{"_index":1982,"title":{},"name":{"41":{}},"text":{"29":{},"41":{},"42":{},"59":{}},"component":{}}],["plugin:2.16.9.final:cr",{"_index":1593,"title":{},"name":{},"text":{"21":{}},"component":{}}],["plugin:2.16.9.final:dev",{"_index":1614,"title":{},"name":{},"text":{"21":{}},"component":{}}],["plugin:2.4:jar",{"_index":2506,"title":{},"name":{},"text":{"38":{}},"component":{}}],["plugin:2.6:resourc",{"_index":1616,"title":{},"name":{},"text":{"21":{}},"component":{}}],["plugin:2.9.2.final:build",{"_index":2510,"title":{},"name":{},"text":{"38":{}},"component":{}}],["pndtnhnmn.n",{"_index":838,"title":{},"name":{},"text":{"9":{}},"component":{}}],["pod",{"_index":1368,"title":{},"name":{},"text":{"17":{},"36":{},"47":{},"49":{},"50":{},"54":{},"60":{}},"component":{}}],["podman",{"_index":2517,"title":{},"name":{},"text":{"41":{},"50":{},"59":{}},"component":{}}],["pods.v1",{"_index":3274,"title":{},"name":{},"text":{"60":{}},"component":{}}],["point",{"_index":1281,"title":{},"name":{},"text":{"16":{},"20":{},"27":{},"34":{},"36":{},"49":{}},"component":{}}],["pojo",{"_index":2172,"title":{},"name":{},"text":{"33":{}},"component":{}}],["polici",{"_index":2527,"title":{},"name":{},"text":{"41":{},"47":{},"49":{}},"component":{}}],["policy=ifnotpres",{"_index":3149,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["pom",{"_index":2344,"title":{},"name":{},"text":{"35":{}},"component":{}}],["pom.xml",{"_index":1224,"title":{},"name":{},"text":{"14":{},"15":{},"17":{},"18":{},"23":{},"25":{},"26":{},"29":{},"30":{},"35":{},"38":{},"42":{},"43":{},"55":{},"57":{},"58":{},"59":{},"64":{},"66":{},"67":{}},"component":{}}],["pool",{"_index":481,"title":{},"name":{},"text":{"5":{}},"component":{}}],["pop",{"_index":3348,"title":{},"name":{},"text":{"67":{}},"component":{}}],["popul",{"_index":1008,"title":{},"name":{},"text":{"11":{}},"component":{}}],["port",{"_index":498,"title":{},"name":{},"text":{"5":{},"16":{},"21":{},"27":{},"35":{},"42":{},"43":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["port(",{"_index":3116,"title":{},"name":{},"text":{"57":{}},"component":{}}],["portabl",{"_index":518,"title":{},"name":{},"text":{"6":{},"10":{}},"component":{}}],["portfolio",{"_index":2257,"title":{},"name":{},"text":{"34":{}},"component":{}}],["possibl",{"_index":417,"title":{"49-9":{}},"name":{},"text":{"5":{},"6":{},"16":{},"18":{},"19":{},"33":{},"34":{},"35":{},"45":{},"46":{},"54":{}},"component":{}}],["post",{"_index":631,"title":{},"name":{},"text":{"6":{},"10":{},"13":{},"17":{},"21":{},"24":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"45":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{},"65":{}},"component":{}}],["post(\"/callback",{"_index":1991,"title":{},"name":{},"text":{"29":{}},"component":{}}],["post(\"/hello",{"_index":2468,"title":{},"name":{},"text":{"38":{}},"component":{}}],["postconstruct",{"_index":768,"title":{},"name":{},"text":{"6":{}},"component":{}}],["postgr",{"_index":1288,"title":{},"name":{},"text":{"16":{},"21":{},"27":{}},"component":{}}],["postgres:5432/postgres?currentschema=data",{"_index":1327,"title":{},"name":{},"text":{"16":{}},"component":{}}],["postgres:pid(90",{"_index":1657,"title":{},"name":{},"text":{"21":{}},"component":{}}],["postgresql",{"_index":143,"title":{"29":{},"30":{},"31":{},"27-9":{},"29-2":{}},"name":{"29":{},"30":{},"31":{}},"text":{"1":{},"2":{},"5":{},"14":{},"15":{},"16":{},"19":{},"21":{},"27":{},"29":{},"30":{},"31":{},"38":{},"46":{}},"component":{}}],["postgresql://timeout",{"_index":1880,"title":{},"name":{},"text":{"27":{}},"component":{}}],["postgresql:latest",{"_index":1285,"title":{},"name":{},"text":{"16":{}},"component":{}}],["postgressql",{"_index":144,"title":{},"name":{},"text":{"1":{},"27":{}},"component":{}}],["postmast",{"_index":1671,"title":{},"name":{},"text":{"21":{}},"component":{}}],["postrequestedfor(urlequalto(\"/\")).withrequestbody(containing(\"\\\"type\\\":\\\"domesticshipping\\\"\").and(containing(\"\\\"id",{"_index":2596,"title":{},"name":{},"text":{"42":{}},"component":{}}],["postrequestedfor(urlequalto(\"/\")).withrequestbody(containing(\"\\\"type\\\":\\\"fraudevaluation\\\"\").and(containing(\"\\\"id",{"_index":2595,"title":{},"name":{},"text":{"42":{}},"component":{}}],["postrequestedfor(urlequalto(\"/\")).withrequestbody(containing(order.getid",{"_index":2593,"title":{},"name":{},"text":{"42":{}},"component":{}}],["postresql",{"_index":2802,"title":{},"name":{},"text":{"46":{}},"component":{}}],["potenti",{"_index":969,"title":{},"name":{},"text":{"11":{},"33":{}},"component":{}}],["power",{"_index":1126,"title":{},"name":{},"text":{"14":{},"21":{},"38":{},"55":{}},"component":{}}],["practic",{"_index":1490,"title":{},"name":{},"text":{"19":{}},"component":{}}],["pre",{"_index":3345,"title":{},"name":{},"text":{"67":{}},"component":{}}],["preced",{"_index":3255,"title":{"60-3":{}},"name":{},"text":{},"component":{}}],["precis",{"_index":3280,"title":{},"name":{},"text":{"60":{}},"component":{}}],["predefin",{"_index":680,"title":{},"name":{},"text":{"6":{},"11":{}},"component":{}}],["prefer",{"_index":2328,"title":{},"name":{},"text":{"35":{},"41":{},"48":{},"57":{},"74":{}},"component":{}}],["prefix",{"_index":682,"title":{},"name":{},"text":{"6":{},"23":{},"34":{}},"component":{}}],["prepar",{"_index":1274,"title":{"50-6":{},"59-3":{}},"name":{},"text":{"15":{},"27":{},"58":{},"59":{}},"component":{}}],["prerequisit",{"_index":1071,"title":{},"name":{},"text":{"13":{},"15":{},"17":{},"21":{},"23":{},"24":{},"25":{},"26":{},"29":{},"30":{},"33":{},"34":{},"36":{},"38":{},"41":{},"42":{},"43":{},"47":{},"49":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"64":{},"67":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["present",{"_index":496,"title":{},"name":{},"text":{"5":{},"6":{},"16":{},"17":{},"20":{},"28":{},"29":{},"66":{},"68":{}},"component":{}}],["preserv",{"_index":2934,"title":{},"name":{},"text":{"48":{}},"component":{}}],["press",{"_index":1710,"title":{},"name":{},"text":{"21":{},"74":{}},"component":{}}],["prevent",{"_index":1589,"title":{},"name":{},"text":{"21":{},"43":{},"49":{}},"component":{}}],["preview",{"_index":3384,"title":{},"name":{},"text":{"70":{}},"component":{}}],["previou",{"_index":586,"title":{},"name":{},"text":{"6":{},"7":{},"8":{},"10":{},"13":{},"17":{},"18":{},"21":{},"24":{},"25":{},"26":{},"32":{},"33":{},"34":{},"35":{},"36":{},"41":{},"42":{},"45":{},"55":{},"58":{},"59":{},"60":{},"64":{},"71":{}},"component":{}}],["previous",{"_index":1787,"title":{},"name":{},"text":{"25":{},"58":{},"59":{}},"component":{}}],["price",{"_index":2282,"title":{},"name":{},"text":{"34":{}},"component":{}}],["price/{symbol",{"_index":2266,"title":{},"name":{},"text":{"34":{}},"component":{}}],["primit",{"_index":573,"title":{},"name":{},"text":{"6":{},"23":{}},"component":{}}],["print",{"_index":783,"title":{},"name":{},"text":{"7":{},"37":{},"41":{},"47":{}},"component":{}}],["printact",{"_index":527,"title":{},"name":{},"text":{"6":{},"11":{}},"component":{}}],["printafterevent1",{"_index":896,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["printafterevent2",{"_index":899,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["printexitmessag",{"_index":900,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["printmessag",{"_index":1012,"title":{},"name":{},"text":{"11":{}},"component":{}}],["printwaitmessag",{"_index":854,"title":{},"name":{},"text":{"9":{}},"component":{}}],["priorit",{"_index":2971,"title":{},"name":{},"text":{"49":{},"51":{}},"component":{}}],["prioriti",{"_index":1147,"title":{},"name":{},"text":{"14":{}},"component":{}}],["privaci",{"_index":2528,"title":{},"name":{},"text":{"41":{}},"component":{}}],["privat",{"_index":1031,"title":{},"name":{},"text":{"12":{},"33":{},"42":{},"43":{},"57":{},"68":{}},"component":{}}],["privileg",{"_index":2979,"title":{},"name":{},"text":{"50":{}},"component":{}}],["probe",{"_index":1367,"title":{},"name":{},"text":{"17":{},"49":{}},"component":{}}],["problem",{"_index":2133,"title":{},"name":{},"text":{"33":{},"41":{},"49":{},"54":{},"74":{}},"component":{}}],["proce",{"_index":3233,"title":{},"name":{},"text":{"59":{}},"component":{}}],["procedur",{"_index":1062,"title":{},"name":{},"text":{"13":{},"15":{},"17":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"33":{},"34":{},"36":{},"38":{},"41":{},"42":{},"43":{},"47":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"64":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["proceed",{"_index":3114,"title":{},"name":{},"text":{"57":{},"59":{}},"component":{}}],["process",{"_index":194,"title":{},"name":{},"text":{"2":{},"5":{},"6":{},"12":{},"14":{},"15":{},"16":{},"19":{},"21":{},"25":{},"26":{},"27":{},"29":{},"30":{},"33":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"54":{},"57":{},"58":{},"59":{},"66":{},"67":{},"68":{}},"component":{}}],["process/correl",{"_index":1525,"title":{},"name":{},"text":{"19":{}},"component":{}}],["process_id",{"_index":1815,"title":{},"name":{},"text":{"26":{}},"component":{}}],["process_id=\".*?\"/).match",{"_index":1817,"title":{},"name":{},"text":{"26":{}},"component":{}}],["processdomesticorderunderfraudev",{"_index":2576,"title":{},"name":{},"text":{"42":{}},"component":{}}],["processid",{"_index":1143,"title":{},"name":{},"text":{"14":{},"25":{},"26":{}},"component":{}}],["processinst",{"_index":1142,"title":{},"name":{},"text":{"14":{},"16":{},"26":{}},"component":{}}],["processinstanceabort",{"_index":1179,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processinstanceev",{"_index":1250,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["processinstanceid",{"_index":1148,"title":{},"name":{},"text":{"14":{},"19":{},"37":{}},"component":{}}],["processinstancelisten",{"_index":1801,"title":{},"name":{},"text":{"26":{}},"component":{}}],["processinstanceretri",{"_index":1185,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processinstances(wher",{"_index":1150,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processinstanceskip",{"_index":1186,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processinstanceupdatevari",{"_index":1194,"title":{},"name":{},"text":{"14":{}},"component":{}}],["processnam",{"_index":1151,"title":{},"name":{},"text":{"14":{},"25":{},"26":{}},"component":{}}],["processor",{"_index":3235,"title":{},"name":{},"text":{"59":{}},"component":{}}],["processpay",{"_index":2689,"title":{},"name":{},"text":{"45":{}},"component":{}}],["processpaymentact",{"_index":2690,"title":{},"name":{},"text":{"45":{}},"component":{}}],["prod",{"_index":204,"title":{},"name":{},"text":{"2":{},"21":{},"34":{}},"component":{}}],["produc",{"_index":34,"title":{"17":{},"18":{}},"name":{"17":{},"18":{}},"text":{"1":{},"6":{},"8":{},"12":{},"14":{},"16":{},"17":{},"18":{},"19":{},"23":{},"27":{},"28":{},"29":{},"33":{},"37":{},"41":{},"42":{}},"component":{}}],["product",{"_index":1863,"title":{"34-7":{},"51-3":{},"54-3":{}},"name":{},"text":{"27":{},"28":{},"34":{},"36":{},"46":{},"49":{},"51":{},"54":{},"67":{}},"component":{}}],["product_id",{"_index":640,"title":{},"name":{},"text":{"6":{}},"component":{}}],["profil",{"_index":205,"title":{"9-7":{},"46-5":{},"49-1":{},"51-3":{},"54-2":{},"54-3":{}},"name":{},"text":{"2":{},"9":{},"21":{},"27":{},"34":{},"38":{},"46":{},"47":{},"48":{},"49":{},"51":{},"54":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["profit",{"_index":2281,"title":{},"name":{},"text":{"34":{}},"component":{}}],["program",{"_index":2561,"title":{},"name":{},"text":{"42":{},"46":{}},"component":{}}],["progress",{"_index":3065,"title":{},"name":{},"text":{"54":{}},"component":{}}],["project",{"_index":71,"title":{"21":{},"67":{},"68":{},"69":{},"9-8":{},"21-1":{},"23-4":{},"41-2":{},"41-3":{},"41-4":{},"41-5":{},"46-6":{},"46-7":{},"67-1":{},"67-2":{}},"name":{"67":{}},"text":{"1":{},"3":{},"5":{},"6":{},"7":{},"9":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"43":{},"46":{},"55":{},"57":{},"58":{},"59":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"74":{}},"component":{}}],["project.basedir}/../serverless",{"_index":2345,"title":{},"name":{},"text":{"35":{}},"component":{}}],["project/namespac",{"_index":3247,"title":{},"name":{},"text":{"59":{}},"component":{}}],["project/target/quarku",{"_index":2848,"title":{},"name":{},"text":{"47":{}},"component":{}}],["project:1.0.0",{"_index":2556,"title":{},"name":{},"text":{"41":{}},"component":{}}],["project:1.0.1",{"_index":2555,"title":{},"name":{},"text":{"41":{}},"component":{}}],["project\\ncopi",{"_index":2831,"title":{},"name":{},"text":{"47":{}},"component":{}}],["project’",{"_index":287,"title":{},"name":{},"text":{"3":{},"6":{}},"component":{}}],["prometheu",{"_index":158,"title":{"25":{},"25-4":{}},"name":{"25":{}},"text":{"1":{},"25":{},"26":{}},"component":{}}],["prompt",{"_index":2030,"title":{},"name":{},"text":{"31":{}},"component":{}}],["promql",{"_index":1840,"title":{},"name":{},"text":{"26":{}},"component":{}}],["prop",{"_index":2926,"title":{},"name":{},"text":{"48":{},"49":{}},"component":{}}],["propag",{"_index":1638,"title":{"32-6":{}},"name":{},"text":{"21":{},"27":{},"32":{},"38":{},"46":{}},"component":{}}],["propagation=[true,fals",{"_index":2117,"title":{},"name":{},"text":{"32":{}},"component":{}}],["propagation=tru",{"_index":2119,"title":{},"name":{},"text":{"32":{}},"component":{}}],["proper",{"_index":703,"title":{},"name":{},"text":{"6":{},"74":{}},"component":{}}],["properli",{"_index":1935,"title":{},"name":{},"text":{"27":{},"28":{},"33":{},"59":{}},"component":{}}],["properti",{"_index":85,"title":{"5":{},"16-7":{},"27-6":{},"48-2":{}},"name":{"5":{}},"text":{"1":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"42":{},"43":{},"46":{},"48":{},"49":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"74":{}},"component":{}}],["protect",{"_index":731,"title":{},"name":{},"text":{"6":{}},"component":{}}],["proto",{"_index":2329,"title":{},"name":{},"text":{"35":{}},"component":{}}],["protobuff",{"_index":1680,"title":{},"name":{},"text":{"21":{}},"component":{}}],["protocol",{"_index":717,"title":{},"name":{},"text":{"6":{},"16":{},"20":{},"24":{},"27":{},"53":{},"57":{},"58":{},"59":{}},"component":{}}],["protocolvers",{"_index":1552,"title":{},"name":{},"text":{"20":{}},"component":{}}],["prototyp",{"_index":2613,"title":{},"name":{},"text":{"43":{}},"component":{}}],["provid",{"_index":170,"title":{},"name":{},"text":{"1":{},"6":{},"7":{},"9":{},"11":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"21":{},"22":{},"27":{},"28":{},"29":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"41":{},"46":{},"50":{},"51":{},"54":{},"55":{},"57":{},"58":{},"60":{},"64":{},"65":{},"66":{},"67":{},"70":{},"73":{},"74":{}},"component":{}}],["provis",{"_index":904,"title":{},"name":{},"text":{"9":{},"14":{},"16":{},"46":{}},"component":{}}],["proxi",{"_index":3362,"title":{},"name":{},"text":{"69":{}},"component":{}}],["psql",{"_index":2040,"title":{},"name":{},"text":{"31":{}},"component":{}}],["pt15m",{"_index":843,"title":{},"name":{},"text":{"9":{}},"component":{}}],["pt1h",{"_index":855,"title":{},"name":{},"text":{"9":{}},"component":{}}],["pt30",{"_index":876,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["pt5",{"_index":890,"title":{},"name":{},"text":{"9":{}},"component":{}}],["public",{"_index":549,"title":{},"name":{},"text":{"6":{},"12":{},"33":{},"37":{},"42":{},"43":{},"45":{},"47":{},"68":{}},"component":{}}],["publish",{"_index":1020,"title":{"20-2":{}},"name":{},"text":{"12":{},"18":{},"19":{},"20":{},"37":{},"47":{},"57":{}},"component":{}}],["publishact",{"_index":1029,"title":{},"name":{},"text":{"12":{}},"component":{}}],["pull",{"_index":3140,"title":{},"name":{},"text":{"57":{},"58":{},"59":{},"68":{},"72":{}},"component":{}}],["purpos",{"_index":168,"title":{},"name":{},"text":{"1":{},"3":{},"7":{},"14":{},"15":{},"19":{},"23":{},"27":{},"33":{},"46":{},"67":{}},"component":{}}],["push",{"_index":2544,"title":{},"name":{},"text":{"41":{},"47":{},"55":{},"57":{},"58":{},"59":{},"68":{},"72":{}},"component":{}}],["put",{"_index":1825,"title":{},"name":{},"text":{"26":{}},"component":{}}],["python",{"_index":245,"title":{},"name":{},"text":{"2":{},"36":{}},"component":{}}],["q/health/liv",{"_index":3195,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["q/health/readi",{"_index":3202,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["q/metric",{"_index":1765,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["qualifi",{"_index":540,"title":{},"name":{},"text":{"6":{},"11":{},"45":{}},"component":{}}],["quarantin",{"_index":3368,"title":{},"name":{},"text":{"69":{}},"component":{}}],["quarkivers",{"_index":1545,"title":{},"name":{},"text":{"20":{}},"component":{}}],["quarku",{"_index":70,"title":{"15":{},"17":{},"18":{},"21":{},"28":{},"30":{},"38":{},"55":{},"64":{},"3-2":{},"9-8":{},"14-4":{},"14-5":{},"14-14":{},"16-6":{},"23-1":{},"31-6":{},"33-2":{},"46-6":{},"46-7":{},"57-5":{},"58-5":{},"59-6":{}},"name":{"15":{},"28":{},"55":{},"62":{},"63":{},"64":{},"65":{},"66":{}},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"48":{},"49":{},"55":{},"57":{},"58":{},"59":{},"60":{},"64":{},"66":{},"67":{},"68":{}},"component":{}}],["quarkus.10.103.94.37.sslip.io",{"_index":3163,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["quarkus.10.103.94.37.sslip.io/jsongreet",{"_index":3168,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["quarkus.contain",{"_index":3077,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{}},"component":{}}],["quarkus.datasource.db",{"_index":2008,"title":{},"name":{},"text":{"30":{},"31":{}},"component":{}}],["quarkus.datasource.jdbc.url",{"_index":1886,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{}}],["quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/postgr",{"_index":2012,"title":{},"name":{},"text":{"30":{}},"component":{}}],["quarkus.datasource.password",{"_index":1906,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{}}],["quarkus.datasource.password=pass",{"_index":2011,"title":{},"name":{},"text":{"30":{}},"component":{}}],["quarkus.datasource.reactive.url",{"_index":1907,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{}}],["quarkus.datasource.usernam",{"_index":1905,"title":{},"name":{},"text":{"27":{},"29":{}},"component":{}}],["quarkus.datasource.username=postgr",{"_index":2010,"title":{},"name":{},"text":{"30":{}},"component":{}}],["quarkus.flyway.baselin",{"_index":2045,"title":{},"name":{},"text":{"31":{}},"component":{}}],["quarkus.flyway.migr",{"_index":2013,"title":{},"name":{},"text":{"30":{},"31":{}},"component":{}}],["quarkus.grpc.clients.greeter.host=localhost",{"_index":2349,"title":{},"name":{},"text":{"35":{}},"component":{}}],["quarkus.grpc.clients.greeter.port=50051",{"_index":2350,"title":{},"name":{},"text":{"35":{}},"component":{}}],["quarkus.http.host",{"_index":2931,"title":{},"name":{},"text":{"48":{}},"component":{}}],["quarkus.http.non",{"_index":1240,"title":{},"name":{},"text":{"14":{}},"component":{}}],["quarkus.http.port",{"_index":2930,"title":{},"name":{},"text":{"48":{}},"component":{}}],["quarkus.http.root",{"_index":1239,"title":{},"name":{},"text":{"14":{}},"component":{}}],["quarkus.infinispan",{"_index":1923,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus.knative.name=hello",{"_index":3181,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["quarkus.kogito",{"_index":3308,"title":{},"name":{},"text":{"62":{}},"component":{}}],["quarkus.kogito.data",{"_index":1236,"title":{},"name":{},"text":{"14":{},"15":{}},"component":{}}],["quarkus.kogito.devservices.en",{"_index":494,"title":{},"name":{},"text":{"5":{},"15":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.enabled=fals",{"_index":1275,"title":{},"name":{},"text":{"15":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.imag",{"_index":501,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.imagename=quay.io/kiegroup/kogito",{"_index":1342,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus.kogito.devservices.port",{"_index":497,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.port=8180",{"_index":1341,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus.kogito.devservices.servic",{"_index":506,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.shar",{"_index":504,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["quarkus.kogito.devservices.shared=fals",{"_index":1344,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus.kogito.logger.alway",{"_index":489,"title":{},"name":{},"text":{"5":{}},"component":{}}],["quarkus.kubernetes.deploy",{"_index":1415,"title":{},"name":{},"text":{"17":{},"57":{},"58":{},"59":{}},"component":{}}],["quarkus.kubernetes.deploy=tru",{"_index":3204,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["quarkus.log.category.\"okhttp3.okhttpclient\".level=info",{"_index":3302,"title":{},"name":{},"text":{"60":{}},"component":{}}],["quarkus.oidc",{"_index":2102,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["quarkus.openapi",{"_index":2058,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["quarkus.profil",{"_index":1954,"title":{},"name":{},"text":{"27":{},"34":{}},"component":{}}],["quarkus.rest",{"_index":2191,"title":{},"name":{},"text":{"33":{},"34":{},"36":{},"43":{}},"component":{}}],["quarkus/acm",{"_index":2215,"title":{},"name":{},"text":{"33":{}},"component":{}}],["quarkus/curr",{"_index":2219,"title":{},"name":{},"text":{"33":{}},"component":{}}],["quarkus/dock",{"_index":2214,"title":{},"name":{},"text":{"33":{}},"component":{}}],["quarkus/greet",{"_index":3305,"title":{},"name":{},"text":{"60":{}},"component":{}}],["quarkus/script",{"_index":2212,"title":{},"name":{},"text":{"33":{}},"component":{}}],["quarkus/src/main/proto",{"_index":2346,"title":{},"name":{},"text":{"35":{}},"component":{}}],["quarkus:1.0",{"_index":3095,"title":{},"name":{},"text":{"55":{},"57":{},"58":{},"59":{}},"component":{}}],["quarkus:add",{"_index":1351,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{}}],["quarkus:dev",{"_index":1094,"title":{},"name":{},"text":{"13":{},"21":{},"34":{},"35":{}},"component":{}}],["quarkus_datasource_db_kind",{"_index":1328,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_datasource_jdbc_url",{"_index":1293,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["quarkus_datasource_password",{"_index":1296,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["quarkus_datasource_reactive_url",{"_index":1879,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_datasource_usernam",{"_index":1295,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["quarkus_flyway_migrate_at_start",{"_index":1298,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_flyway_migrate_at_start=tru",{"_index":1282,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_hibernate_orm_database_gener",{"_index":1299,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_http_cor",{"_index":1330,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_http_cors_origin",{"_index":1297,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_http_port",{"_index":1331,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_infinispan_client_auth_realm",{"_index":1919,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_host",{"_index":1909,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_password",{"_index":1922,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_sasl_mechan",{"_index":1915,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_use_auth",{"_index":1914,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_infinispan_client_usernam",{"_index":1921,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkus_kafka_health_en",{"_index":1329,"title":{},"name":{},"text":{"16":{}},"component":{}}],["quarkus_profil",{"_index":1945,"title":{},"name":{},"text":{"27":{}},"component":{}}],["quarkusintegrationtest",{"_index":1976,"title":{},"name":{},"text":{"29":{}},"component":{}}],["quarkustest",{"_index":2463,"title":{},"name":{},"text":{"38":{},"42":{},"43":{}},"component":{}}],["quarkustest(1",{"_index":2566,"title":{},"name":{},"text":{"42":{}},"component":{}}],["quarkustestresourc",{"_index":2611,"title":{"43-2":{}},"name":{},"text":{"43":{}},"component":{}}],["quarkustestresource(restcountriesmockserver.class",{"_index":2654,"title":{},"name":{},"text":{"43":{}},"component":{}}],["quarkustestresourcelifecyclemanag",{"_index":2644,"title":{},"name":{},"text":{"43":{}},"component":{}}],["quay.io",{"_index":2552,"title":{},"name":{},"text":{"41":{},"55":{},"57":{}},"component":{}}],["quay.io/johndoe/myworkflow:latest",{"_index":3036,"title":{},"name":{},"text":{"52":{}},"component":{}}],["quay.io/kiegroup",{"_index":1280,"title":{},"name":{},"text":{"16":{},"47":{},"52":{}},"component":{}}],["quay.io/kiegroup/kogito",{"_index":502,"title":{},"name":{},"text":{"5":{},"16":{},"27":{},"47":{},"50":{}},"component":{}}],["quay.io/kiegroup/serverless",{"_index":3191,"title":{},"name":{},"text":{"57":{}},"component":{}}],["quay.io/kogito/serverless",{"_index":3094,"title":{},"name":{},"text":{"55":{}},"component":{}}],["quay.io/oth",{"_index":2553,"title":{},"name":{},"text":{"41":{}},"component":{}}],["queri",{"_index":425,"title":{"14-8":{}},"name":{},"text":{"5":{},"6":{},"10":{},"14":{},"15":{},"16":{},"26":{},"27":{},"32":{},"33":{},"59":{},"60":{}},"component":{}}],["queue",{"_index":484,"title":{},"name":{},"text":{"5":{}},"component":{}}],["quick",{"_index":86,"title":{"30-1":{}},"name":{},"text":{"1":{},"5":{},"16":{},"30":{}},"component":{}}],["quickli",{"_index":2516,"title":{},"name":{},"text":{"41":{}},"component":{}}],["quickstart",{"_index":3211,"title":{},"name":{},"text":{"58":{}},"component":{}}],["quot",{"_index":1395,"title":{},"name":{},"text":{"17":{}},"component":{}}],["random",{"_index":2284,"title":{},"name":{},"text":{"34":{}},"component":{}}],["rang",{"_index":1166,"title":{},"name":{},"text":{"14":{}},"component":{}}],["rate",{"_index":1398,"title":{},"name":{},"text":{"17":{},"33":{}},"component":{}}],["raw",{"_index":2706,"title":{},"name":{},"text":{"45":{}},"component":{}}],["rbac.authorization.k8s.io",{"_index":3296,"title":{},"name":{},"text":{"60":{}},"component":{}}],["rbac.authorization.k8s.io/v1",{"_index":3285,"title":{},"name":{},"text":{"60":{}},"component":{}}],["re",{"_index":2843,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["re)build",{"_index":2805,"title":{},"name":{},"text":{"47":{}},"component":{}}],["reach",{"_index":821,"title":{},"name":{},"text":{"8":{},"19":{},"20":{},"21":{},"27":{},"30":{},"32":{},"46":{}},"component":{}}],["react",{"_index":2606,"title":{},"name":{},"text":{"42":{}},"component":{}}],["reactiv",{"_index":37,"title":{},"name":{},"text":{"1":{},"14":{},"18":{},"21":{},"27":{},"28":{},"29":{},"38":{}},"component":{}}],["read",{"_index":1931,"title":{},"name":{},"text":{"27":{},"28":{},"32":{},"42":{},"47":{},"57":{},"58":{},"59":{},"60":{},"66":{},"71":{},"72":{}},"component":{}}],["readi",{"_index":32,"title":{},"name":{},"text":{"1":{},"6":{},"14":{},"15":{},"16":{},"24":{},"49":{},"50":{},"54":{},"57":{},"58":{},"59":{},"67":{},"69":{}},"component":{}}],["readinessprob",{"_index":3201,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["readm",{"_index":2003,"title":{},"name":{},"text":{"30":{}},"component":{}}],["real",{"_index":950,"title":{},"name":{},"text":{"10":{},"34":{}},"component":{}}],["realli",{"_index":408,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["realm",{"_index":1920,"title":{},"name":{},"text":{"27":{}},"component":{}}],["reason",{"_index":621,"title":{},"name":{},"text":{"6":{},"24":{},"35":{},"49":{},"51":{},"54":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["rebuild",{"_index":1764,"title":{},"name":{},"text":{"25":{},"41":{},"55":{}},"component":{}}],["receiv",{"_index":800,"title":{},"name":{},"text":{"8":{},"9":{},"12":{},"14":{},"17":{},"18":{},"19":{},"20":{},"23":{},"27":{},"33":{},"37":{},"42":{},"45":{},"46":{},"47":{},"49":{},"66":{}},"component":{}}],["recent",{"_index":721,"title":{},"name":{},"text":{"6":{}},"component":{}}],["recept",{"_index":797,"title":{},"name":{},"text":{"8":{},"13":{}},"component":{}}],["recipi",{"_index":1860,"title":{},"name":{},"text":{"27":{}},"component":{}}],["recommend",{"_index":392,"title":{},"name":{},"text":{"4":{},"27":{},"28":{},"30":{},"46":{},"50":{}},"component":{}}],["reconcil",{"_index":3156,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["reconcili",{"_index":266,"title":{},"name":{},"text":{"2":{}},"component":{}}],["record",{"_index":2025,"title":{},"name":{},"text":{"31":{}},"component":{}}],["recov",{"_index":3058,"title":{},"name":{},"text":{"54":{}},"component":{}}],["recoverfailureattempt",{"_index":3057,"title":{},"name":{},"text":{"54":{}},"component":{}}],["recreat",{"_index":1908,"title":{},"name":{},"text":{"27":{},"50":{}},"component":{}}],["recurs",{"_index":575,"title":{},"name":{},"text":{"6":{},"11":{}},"component":{}}],["red",{"_index":1581,"title":{"71":{},"71-1":{},"71-2":{}},"name":{},"text":{"21":{},"47":{},"59":{},"67":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["redhat",{"_index":3385,"title":{},"name":{"71":{}},"text":{},"component":{}}],["redirect",{"_index":2425,"title":{},"name":{},"text":{"36":{},"65":{},"74":{}},"component":{}}],["reduc",{"_index":675,"title":{},"name":{},"text":{"6":{}},"component":{}}],["ref",{"_index":1252,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"20":{},"27":{},"33":{},"36":{}},"component":{}}],["refactor",{"_index":268,"title":{},"name":{},"text":{"2":{}},"component":{}}],["refer",{"_index":87,"title":{"30-1":{}},"name":{},"text":{"1":{},"3":{},"4":{},"5":{},"6":{},"7":{},"9":{},"16":{},"17":{},"19":{},"23":{},"24":{},"25":{},"27":{},"30":{},"32":{},"33":{},"34":{},"36":{},"37":{},"42":{},"45":{},"49":{},"50":{},"53":{},"57":{},"59":{},"62":{},"66":{},"74":{}},"component":{}}],["referenc",{"_index":299,"title":{"53":{},"23-3":{},"49-5":{}},"name":{"53":{}},"text":{"3":{},"8":{},"14":{},"16":{},"23":{},"26":{},"32":{},"36":{},"49":{},"53":{}},"component":{}}],["reflect",{"_index":3011,"title":{},"name":{},"text":{"50":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["refnam",{"_index":529,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"11":{},"23":{},"24":{},"33":{},"34":{},"35":{},"36":{},"37":{},"46":{},"47":{},"49":{},"53":{}},"component":{}}],["refname\":\"divis",{"_index":763,"title":{},"name":{},"text":{"6":{}},"component":{}}],["refname\":\"processpay",{"_index":2681,"title":{},"name":{},"text":{"45":{}},"component":{}}],["refresh",{"_index":2205,"title":{},"name":{},"text":{"33":{},"65":{},"66":{},"74":{}},"component":{}}],["regard",{"_index":1272,"title":{},"name":{},"text":{"15":{},"30":{}},"component":{}}],["regardless",{"_index":829,"title":{},"name":{},"text":{"9":{},"10":{},"17":{},"42":{}},"component":{}}],["regcr",{"_index":2877,"title":{},"name":{},"text":{"47":{},"52":{}},"component":{}}],["regex",{"_index":984,"title":{},"name":{},"text":{"11":{}},"component":{}}],["regist",{"_index":295,"title":{},"name":{},"text":{"3":{},"6":{},"21":{},"27":{},"38":{}},"component":{}}],["register(handler.getname(),handl",{"_index":770,"title":{},"name":{},"text":{"6":{}},"component":{}}],["registri",{"_index":2545,"title":{"47-7":{},"47-8":{},"53-2":{},"59-3":{},"71-2":{},"74-5":{},"74-6":{}},"name":{},"text":{"41":{},"47":{},"50":{},"51":{},"52":{},"53":{},"55":{},"57":{},"58":{},"59":{},"67":{},"71":{},"74":{}},"component":{}}],["registry.access.redhat.com/ubi8/openjdk",{"_index":2838,"title":{},"name":{},"text":{"47":{}},"component":{}}],["registry.openshift",{"_index":3249,"title":{},"name":{},"text":{"59":{}},"component":{}}],["registry.svc:5000",{"_index":3250,"title":{},"name":{},"text":{"59":{}},"component":{}}],["registry.svc:5000/kogito",{"_index":3251,"title":{},"name":{},"text":{"59":{}},"component":{}}],["registry}/apis/registry/v2",{"_index":3417,"title":{},"name":{},"text":{"74":{}},"component":{}}],["regular",{"_index":515,"title":{"6-15":{}},"name":{},"text":{"6":{},"11":{},"20":{},"33":{}},"component":{}}],["rel",{"_index":2203,"title":{},"name":{},"text":{"33":{}},"component":{}}],["relat",{"_index":1014,"title":{},"name":{},"text":{"12":{},"14":{},"15":{},"16":{},"17":{},"26":{},"30":{},"32":{},"33":{},"36":{},"37":{},"41":{},"45":{},"58":{},"59":{},"66":{}},"component":{}}],["releas",{"_index":355,"title":{},"name":{},"text":{"4":{},"19":{},"30":{},"36":{},"41":{},"45":{},"72":{},"74":{}},"component":{}}],["release_not",{"_index":186,"title":{},"name":{"2":{}},"text":{},"component":{}}],["relev",{"_index":699,"title":{},"name":{},"text":{"6":{},"18":{},"35":{}},"component":{}}],["reli",{"_index":684,"title":{},"name":{},"text":{"6":{},"15":{},"30":{},"32":{}},"component":{}}],["reload",{"_index":197,"title":{},"name":{},"text":{"2":{},"73":{},"74":{}},"component":{}}],["remain",{"_index":2343,"title":{},"name":{},"text":{"35":{},"46":{},"54":{}},"component":{}}],["rememb",{"_index":1560,"title":{},"name":{},"text":{"20":{},"35":{},"60":{}},"component":{}}],["remot",{"_index":739,"title":{"74-5":{}},"name":{},"text":{"6":{},"14":{},"33":{},"35":{},"36":{},"53":{},"55":{},"58":{},"68":{},"74":{}},"component":{}}],["remotecatalog",{"_index":2272,"title":{},"name":{},"text":{"34":{}},"component":{}}],["remotecatalog#operation1",{"_index":2274,"title":{},"name":{},"text":{"34":{}},"component":{}}],["remotecatalog#operation2",{"_index":2276,"title":{},"name":{},"text":{"34":{}},"component":{}}],["remov",{"_index":819,"title":{"49-4":{}},"name":{},"text":{"8":{},"25":{},"27":{},"30":{},"31":{},"47":{},"49":{},"50":{},"53":{},"59":{}},"component":{}}],["renam",{"_index":3383,"title":{},"name":{},"text":{"70":{}},"component":{}}],["replac",{"_index":1732,"title":{},"name":{},"text":{"23":{},"24":{},"25":{},"32":{},"43":{},"47":{},"48":{},"49":{},"50":{},"53":{}},"component":{}}],["replace($match($l[1",{"_index":1816,"title":{},"name":{},"text":{"26":{}},"component":{}}],["replic",{"_index":1138,"title":{},"name":{},"text":{"14":{},"16":{},"42":{}},"component":{}}],["replica",{"_index":1313,"title":{},"name":{},"text":{"16":{}},"component":{}}],["replicaset",{"_index":213,"title":{},"name":{},"text":{"2":{}},"component":{}}],["repo",{"_index":3355,"title":{},"name":{},"text":{"68":{}},"component":{}}],["report",{"_index":406,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["repositori",{"_index":1024,"title":{},"name":{},"text":{"12":{},"13":{},"21":{},"27":{},"30":{},"33":{},"34":{},"35":{},"37":{},"38":{},"41":{},"45":{},"46":{},"49":{},"55":{},"68":{}},"component":{}}],["repres",{"_index":1421,"title":{},"name":{},"text":{"17":{},"27":{},"35":{},"45":{}},"component":{}}],["represent",{"_index":1724,"title":{},"name":{},"text":{"23":{}},"component":{}}],["request",{"_index":138,"title":{"6-18":{},"36-2":{}},"name":{},"text":{"1":{},"6":{},"9":{},"10":{},"13":{},"14":{},"17":{},"19":{},"21":{},"24":{},"25":{},"27":{},"28":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"45":{},"47":{},"49":{},"52":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"69":{},"72":{}},"component":{}}],["requestbodi",{"_index":2403,"title":{},"name":{},"text":{"36":{}},"component":{}}],["requestquot",{"_index":1427,"title":{},"name":{},"text":{"17":{}},"component":{}}],["requir",{"_index":54,"title":{"47-4":{},"60-1":{}},"name":{},"text":{"1":{},"6":{},"9":{},"10":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"20":{},"21":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"35":{},"36":{},"41":{},"42":{},"43":{},"47":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["reschedul",{"_index":1226,"title":{},"name":{},"text":{"14":{}},"component":{}}],["reserv",{"_index":536,"title":{},"name":{},"text":{"6":{},"45":{}},"component":{}}],["reset",{"_index":2602,"title":{},"name":{},"text":{"42":{},"65":{},"66":{}},"component":{}}],["resiz",{"_index":1831,"title":{},"name":{},"text":{"26":{}},"component":{}}],["resolut",{"_index":3147,"title":{},"name":{},"text":{"57":{}},"component":{}}],["resolv",{"_index":436,"title":{},"name":{},"text":{"5":{},"10":{},"33":{},"46":{},"68":{}},"component":{}}],["resourc",{"_index":189,"title":{"4-12":{},"6-21":{},"7-5":{},"8-2":{},"9-10":{},"10-4":{},"11-3":{},"12-2":{},"13-4":{},"14-15":{},"15-3":{},"16-4":{},"16-5":{},"16-8":{},"17-6":{},"18-4":{},"19-2":{},"21-6":{},"23-5":{},"24-2":{},"26-4":{},"27-14":{},"29-3":{},"30-2":{},"32-7":{},"33-4":{},"34-9":{},"36-6":{},"37-3":{},"38-1":{},"41-6":{},"42-4":{},"43-4":{},"45-4":{},"46-10":{},"47-4":{},"47-13":{},"48-3":{},"49-5":{},"49-13":{},"50-9":{},"53-3":{},"54-4":{},"55-5":{},"60-7":{},"70-2":{},"73-2":{}},"name":{"53":{}},"text":{"2":{},"3":{},"7":{},"14":{},"16":{},"21":{},"27":{},"29":{},"33":{},"35":{},"42":{},"43":{},"47":{},"49":{},"50":{},"52":{},"53":{},"54":{},"60":{}},"component":{}}],["resourceid\":\"03e6cf79",{"_index":2739,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"2114cc5b",{"_index":2763,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"505259d9",{"_index":2727,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"6ab362c6",{"_index":2758,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"d6e2d538",{"_index":2733,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourceid\":\"dc32abe6",{"_index":2721,"title":{},"name":{},"text":{"45":{}},"component":{}}],["resourcenam",{"_index":3263,"title":{},"name":{},"text":{"60":{}},"component":{}}],["resources/\\n\\nrun",{"_index":2832,"title":{},"name":{},"text":{"47":{}},"component":{}}],["resources\\n",{"_index":2835,"title":{},"name":{},"text":{"47":{}},"component":{}}],["respect",{"_index":1009,"title":{},"name":{},"text":{"11":{},"19":{},"21":{},"25":{},"35":{},"41":{},"48":{},"71":{}},"component":{}}],["respond",{"_index":673,"title":{},"name":{},"text":{"6":{},"45":{},"49":{}},"component":{}}],["respons",{"_index":469,"title":{},"name":{},"text":{"5":{},"6":{},"9":{},"10":{},"11":{},"13":{},"15":{},"17":{},"21":{},"23":{},"26":{},"27":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["responsedefinitionbuilder#withbodi",{"_index":2628,"title":{},"name":{},"text":{"43":{}},"component":{}}],["rest",{"_index":41,"title":{"38":{},"28-3":{},"36-2":{},"65-3":{}},"name":{},"text":{"1":{},"4":{},"10":{},"11":{},"20":{},"21":{},"26":{},"28":{},"29":{},"33":{},"34":{},"35":{},"36":{},"38":{},"42":{},"43":{},"45":{},"46":{},"49":{},"53":{},"65":{},"74":{}},"component":{}}],["rest/v2/name/greec",{"_index":2630,"title":{},"name":{},"text":{"43":{}},"component":{}}],["restart",{"_index":1543,"title":{},"name":{},"text":{"19":{},"21":{},"27":{},"50":{}},"component":{}}],["restassur",{"_index":142,"title":{},"name":{"38":{}},"text":{"1":{}},"component":{}}],["restassured.enableloggingofrequestandresponseifvalidationfail",{"_index":2465,"title":{},"name":{},"text":{"38":{},"42":{}},"component":{}}],["restassured.enableloggingofrequestandresponseifvalidationfails();(3",{"_index":1987,"title":{},"name":{},"text":{"29":{}},"component":{}}],["restcountriesmockserv",{"_index":2643,"title":{},"name":{},"text":{"43":{}},"component":{}}],["resteasi",{"_index":1586,"title":{},"name":{},"text":{"21":{},"38":{}},"component":{}}],["restworkitemhandl",{"_index":233,"title":{},"name":{},"text":{"2":{}},"component":{}}],["result",{"_index":577,"title":{},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"13":{},"14":{},"23":{},"26":{},"33":{},"34":{},"37":{},"38":{},"41":{},"45":{},"49":{},"55":{},"67":{}},"component":{}}],["result\":\"abc",{"_index":1104,"title":{},"name":{},"text":{"13":{}},"component":{}}],["result\":\"bc",{"_index":1113,"title":{},"name":{},"text":{"13":{}},"component":{}}],["resulteventref",{"_index":368,"title":{},"name":{},"text":{"4":{}},"component":{}}],["result|=.+\\\"a",{"_index":1077,"title":{},"name":{},"text":{"13":{}},"component":{}}],["result|=.+\\\"b",{"_index":1079,"title":{},"name":{},"text":{"13":{}},"component":{}}],["result|=.+\\\"c",{"_index":1081,"title":{},"name":{},"text":{"13":{}},"component":{}}],["resum",{"_index":822,"title":{},"name":{},"text":{"8":{},"12":{},"13":{},"18":{},"20":{},"30":{},"32":{},"37":{}},"component":{}}],["resumeev",{"_index":1028,"title":{},"name":{},"text":{"12":{}},"component":{}}],["retri",{"_index":316,"title":{"4-7":{}},"name":{},"text":{"4":{},"14":{},"27":{},"29":{},"42":{}},"component":{}}],["retriev",{"_index":228,"title":{},"name":{},"text":{"2":{},"14":{},"26":{},"33":{},"34":{},"59":{}},"component":{}}],["retrigg",{"_index":1214,"title":{},"name":{},"text":{"14":{}},"component":{}}],["return",{"_index":510,"title":{"6-5":{},"6-10":{}},"name":{},"text":{"6":{},"10":{},"11":{},"12":{},"13":{},"21":{},"23":{},"26":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"43":{},"58":{},"59":{}},"component":{}}],["reus",{"_index":2870,"title":{},"name":{},"text":{"47":{},"53":{}},"component":{}}],["revers",{"_index":2702,"title":{},"name":{},"text":{"45":{}},"component":{}}],["review",{"_index":215,"title":{},"name":{},"text":{"2":{},"51":{},"52":{}},"component":{}}],["revis",{"_index":3153,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["right",{"_index":941,"title":{},"name":{},"text":{"10":{},"14":{},"16":{},"66":{},"68":{},"69":{},"70":{},"71":{},"72":{},"74":{}},"component":{}}],["rightel",{"_index":937,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["roadmap",{"_index":288,"title":{"51":{},"51-1":{}},"name":{},"text":{"3":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{}},"component":{}}],["role",{"_index":687,"title":{"60-1":{}},"name":{},"text":{"6":{},"19":{},"45":{},"60":{},"71":{}},"component":{}}],["rolebind",{"_index":3294,"title":{},"name":{},"text":{"60":{}},"component":{}}],["roleref",{"_index":3295,"title":{},"name":{},"text":{"60":{}},"component":{}}],["roll",{"_index":3071,"title":{},"name":{},"text":{"54":{}},"component":{}}],["rollout",{"_index":3063,"title":{},"name":{},"text":{"54":{}},"component":{}}],["root",{"_index":635,"title":{},"name":{},"text":{"6":{},"14":{},"17":{},"33":{}},"component":{}}],["rootprocessid",{"_index":1145,"title":{},"name":{},"text":{"14":{}},"component":{}}],["rootprocessinstanceid",{"_index":1146,"title":{},"name":{},"text":{"14":{}},"component":{}}],["rout",{"_index":154,"title":{"23":{},"23-2":{}},"name":{"23":{}},"text":{"1":{},"6":{},"21":{},"23":{},"38":{},"47":{},"49":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["route.openshift.io",{"_index":3291,"title":{},"name":{},"text":{"60":{}},"component":{}}],["route/greet",{"_index":2918,"title":{},"name":{},"text":{"47":{}},"component":{}}],["route_rout",{"_index":2916,"title":{},"name":{},"text":{"47":{}},"component":{}}],["router",{"_index":3224,"title":{},"name":{},"text":{"58":{}},"component":{}}],["routes.v1.route.openshift.io",{"_index":3278,"title":{},"name":{},"text":{"60":{}},"component":{}}],["row",{"_index":1827,"title":{},"name":{},"text":{"26":{}},"component":{}}],["rpc",{"_index":360,"title":{},"name":{},"text":{"4":{},"6":{},"20":{},"35":{}},"component":{}}],["rpc:divis",{"_index":724,"title":{},"name":{},"text":{"6":{}},"component":{}}],["rpccustomtypehandl",{"_index":730,"title":{},"name":{},"text":{"6":{}},"component":{}}],["rpccustomworkitemhandl",{"_index":741,"title":{},"name":{},"text":{"6":{}},"component":{}}],["rpccustomworkitemhandlerconfig",{"_index":766,"title":{},"name":{},"text":{"6":{}},"component":{}}],["rule",{"_index":372,"title":{},"name":{},"text":{"4":{},"7":{},"19":{},"32":{},"33":{},"34":{},"36":{},"60":{}},"component":{}}],["run",{"_index":61,"title":{"30":{},"13-2":{},"13-3":{},"21-4":{},"33-3":{},"34-5":{},"34-6":{},"34-7":{},"35-2":{},"45-3":{},"46-9":{},"47-12":{},"49-3":{}},"name":{},"text":{"1":{},"6":{},"9":{},"13":{},"14":{},"15":{},"16":{},"19":{},"21":{},"22":{},"24":{},"25":{},"26":{},"27":{},"29":{},"30":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"42":{},"43":{},"45":{},"47":{},"49":{},"50":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"64":{},"67":{},"69":{},"74":{}},"component":{}}],["run.jar",{"_index":2218,"title":{},"name":{},"text":{"33":{},"34":{},"60":{}},"component":{}}],["run.jar\\\"\\n",{"_index":2862,"title":{},"name":{},"text":{"47":{}},"component":{}}],["run\\n",{"_index":2836,"title":{},"name":{},"text":{"47":{}},"component":{}}],["runtim",{"_index":160,"title":{},"name":{"26":{},"39":{}},"text":{"1":{},"2":{},"5":{},"6":{},"11":{},"14":{},"16":{},"21":{},"23":{},"27":{},"28":{},"30":{},"36":{},"41":{},"47":{},"48":{},"53":{},"62":{}},"component":{}}],["runtimeexcept",{"_index":1007,"title":{},"name":{},"text":{"11":{}},"component":{}}],["s",{"_index":2475,"title":{},"name":{},"text":{"38":{},"49":{}},"component":{}}],["s2i",{"_index":3074,"title":{},"name":{},"text":{"55":{}},"component":{}}],["safe",{"_index":2987,"title":{},"name":{},"text":{"50":{}},"component":{}}],["safeti",{"_index":2050,"title":{},"name":{},"text":{"31":{}},"component":{}}],["saga",{"_index":175,"title":{"45":{},"45-1":{},"45-2":{},"45-3":{}},"name":{"45":{}},"text":{"1":{},"4":{},"45":{}},"component":{}}],["saludo",{"_index":919,"title":{},"name":{},"text":{"10":{},"47":{},"49":{}},"component":{}}],["same",{"_index":59,"title":{},"name":{},"text":{"1":{},"4":{},"6":{},"7":{},"8":{},"10":{},"11":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"23":{},"25":{},"27":{},"28":{},"30":{},"32":{},"34":{},"35":{},"36":{},"42":{},"46":{},"47":{},"49":{},"50":{},"53":{},"60":{},"71":{}},"component":{}}],["sampl",{"_index":1781,"title":{},"name":{},"text":{"25":{},"70":{}},"component":{}}],["sandbox",{"_index":3372,"title":{},"name":{},"text":{"69":{}},"component":{}}],["sanit",{"_index":2064,"title":{},"name":{},"text":{"32":{},"36":{}},"component":{}}],["sasl",{"_index":1916,"title":{},"name":{},"text":{"27":{}},"component":{}}],["save",{"_index":925,"title":{},"name":{},"text":{"10":{},"24":{},"41":{},"47":{},"49":{},"53":{},"70":{},"71":{},"73":{},"74":{}},"component":{}}],["sayhello",{"_index":2331,"title":{},"name":{},"text":{"35":{}},"component":{}}],["sayhelloalllanguag",{"_index":2332,"title":{},"name":{},"text":{"35":{}},"component":{}}],["sayhelloapikey",{"_index":2086,"title":{},"name":{},"text":{"32":{}},"component":{}}],["sayhellobas",{"_index":2073,"title":{},"name":{},"text":{"32":{}},"component":{}}],["sayhellobear",{"_index":2082,"title":{},"name":{},"text":{"32":{}},"component":{}}],["sayhellomultiplelanguag",{"_index":2336,"title":{},"name":{},"text":{"35":{}},"component":{}}],["sayhellomultiplelanguagesatonc",{"_index":2333,"title":{},"name":{},"text":{"35":{}},"component":{}}],["sayhellooauth2",{"_index":2092,"title":{},"name":{},"text":{"32":{}},"component":{}}],["sb",{"_index":1433,"title":{},"name":{},"text":{"17":{},"27":{}},"component":{}}],["scaffold",{"_index":2537,"title":{},"name":{},"text":{"41":{}},"component":{}}],["scale",{"_index":1865,"title":{},"name":{},"text":{"27":{}},"component":{}}],["scan",{"_index":3257,"title":{},"name":{},"text":{"60":{}},"component":{}}],["scenario",{"_index":378,"title":{"14-2":{},"49-9":{}},"name":{},"text":{"4":{},"8":{},"9":{},"14":{},"17":{},"27":{},"28":{},"29":{},"35":{},"45":{},"46":{},"47":{},"49":{},"54":{}},"component":{}}],["schedul",{"_index":1857,"title":{},"name":{},"text":{"27":{},"45":{}},"component":{}}],["schema",{"_index":90,"title":{"7":{},"7-1":{},"7-2":{}},"name":{"7":{}},"text":{"1":{},"2":{},"7":{},"14":{},"16":{},"20":{},"27":{},"30":{},"31":{},"32":{},"33":{},"36":{},"53":{},"65":{},"73":{},"74":{}},"component":{}}],["schema.json",{"_index":2140,"title":{},"name":{},"text":{"33":{},"53":{}},"component":{}}],["scheme",{"_index":1771,"title":{},"name":{},"text":{"25":{},"32":{},"33":{},"35":{},"36":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["scope",{"_index":830,"title":{},"name":{},"text":{"9":{},"32":{},"33":{}},"component":{}}],["score",{"_index":1392,"title":{},"name":{},"text":{"17":{}},"component":{}}],["scrap_interv",{"_index":1780,"title":{},"name":{},"text":{"25":{}},"component":{}}],["scrape_interv",{"_index":1776,"title":{},"name":{},"text":{"25":{}},"component":{}}],["scratch",{"_index":3381,"title":{},"name":{},"text":{"70":{}},"component":{}}],["screen",{"_index":3325,"title":{},"name":{},"text":{"65":{},"66":{},"68":{},"71":{},"72":{}},"component":{}}],["script",{"_index":1904,"title":{"31-4":{}},"name":{},"text":{"27":{},"31":{},"41":{}},"component":{}}],["script_debug",{"_index":1871,"title":{},"name":{},"text":{"27":{}},"component":{}}],["search",{"_index":1122,"title":{},"name":{},"text":{"14":{},"18":{},"50":{},"60":{},"65":{},"74":{}},"component":{}}],["sec",{"_index":2675,"title":{},"name":{},"text":{"45":{}},"component":{}}],["second",{"_index":472,"title":{},"name":{},"text":{"5":{},"6":{},"25":{},"29":{},"42":{},"46":{},"49":{}},"component":{}}],["secret",{"_index":319,"title":{"4-11":{},"47-7":{},"47-8":{}},"name":{},"text":{"4":{},"32":{},"33":{},"47":{},"52":{},"57":{},"71":{}},"component":{}}],["secret.method=bas",{"_index":2113,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["secret.value=secret",{"_index":2114,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["section",{"_index":380,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"9":{},"14":{},"16":{},"17":{},"18":{},"19":{},"23":{},"24":{},"26":{},"27":{},"29":{},"33":{},"36":{},"41":{},"42":{},"43":{},"47":{},"49":{},"50":{},"54":{},"57":{},"58":{},"59":{},"65":{},"70":{},"74":{}},"component":{}}],["secur",{"_index":8,"title":{"1-6":{}},"name":{},"text":{"21":{},"32":{},"33":{},"41":{},"47":{},"49":{},"60":{},"69":{}},"component":{}}],["security_example_json",{"_index":2065,"title":{},"name":{},"text":{"32":{}},"component":{}}],["security_scheme_nam",{"_index":2066,"title":{},"name":{},"text":{"32":{}},"component":{}}],["securityschem",{"_index":2056,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["sed",{"_index":2890,"title":{},"name":{},"text":{"47":{}},"component":{}}],["see",{"_index":366,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"64":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["select",{"_index":914,"title":{},"name":{},"text":{"10":{},"18":{},"25":{},"27":{},"28":{},"33":{},"43":{},"45":{},"57":{},"58":{},"66":{},"68":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["selector",{"_index":1310,"title":{},"name":{},"text":{"16":{},"25":{},"27":{},"60":{}},"component":{}}],["self",{"_index":3374,"title":{},"name":{},"text":{"69":{}},"component":{}}],["semant",{"_index":2352,"title":{},"name":{},"text":{"35":{},"46":{}},"component":{}}],["semicolon",{"_index":1912,"title":{},"name":{},"text":{"27":{},"60":{}},"component":{}}],["send",{"_index":514,"title":{"6-15":{},"6-16":{},"17-3":{},"24-1":{},"36-2":{},"66-2":{}},"name":{},"text":{"6":{},"13":{},"14":{},"16":{},"17":{},"20":{},"21":{},"25":{},"28":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"45":{},"47":{},"57":{},"58":{},"59":{},"66":{},"67":{}},"component":{}}],["sendev",{"_index":1565,"title":{},"name":{},"text":{"20":{}},"component":{}}],["sendresum",{"_index":1563,"title":{},"name":{},"text":{"20":{}},"component":{}}],["sendtolog",{"_index":1740,"title":{},"name":{},"text":{"23":{}},"component":{}}],["sensit",{"_index":987,"title":{},"name":{},"text":{"11":{}},"component":{}}],["sent",{"_index":1300,"title":{},"name":{},"text":{"16":{},"24":{},"42":{},"46":{},"66":{}},"component":{}}],["separ",{"_index":812,"title":{},"name":{},"text":{"8":{},"11":{},"14":{},"15":{},"27":{},"33":{},"34":{},"35":{},"41":{},"53":{},"58":{}},"component":{}}],["sequenc",{"_index":968,"title":{},"name":{},"text":{"11":{},"45":{}},"component":{}}],["sequenti",{"_index":2294,"title":{},"name":{},"text":{"34":{},"36":{}},"component":{}}],["seri",{"_index":1070,"title":{},"name":{},"text":{"13":{},"50":{}},"component":{}}],["serial",{"_index":610,"title":{},"name":{},"text":{"6":{},"13":{},"23":{}},"component":{}}],["serv",{"_index":410,"title":{},"name":{},"text":{"5":{},"6":{},"16":{},"17":{},"21":{},"24":{},"30":{},"57":{},"58":{},"59":{}},"component":{}}],["server",{"_index":474,"title":{"35-4":{},"43-2":{},"43-3":{}},"name":{},"text":{"5":{},"6":{},"20":{},"25":{},"27":{},"32":{},"33":{},"35":{},"42":{},"43":{},"47":{},"50":{},"69":{}},"component":{}}],["serverless",{"_index":73,"title":{"4":{},"57":{},"67":{},"68":{},"69":{},"70":{},"72":{},"73":{},"74":{},"4-4":{},"33-2":{},"68-1":{},"69-2":{},"70-1":{},"72-1":{},"72-2":{},"73-1":{},"74-1":{},"74-2":{},"74-3":{},"74-4":{}},"name":{"4":{},"26":{},"50":{},"67":{},"68":{},"69":{},"70":{},"71":{}},"text":{"1":{},"4":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"15":{},"16":{},"17":{},"18":{},"19":{},"21":{},"22":{},"24":{},"25":{},"27":{},"29":{},"30":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"49":{},"50":{},"55":{},"57":{},"58":{},"59":{},"64":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["serverless/serverless",{"_index":3246,"title":{},"name":{},"text":{"59":{}},"component":{}}],["serverless_workflow_vscode_extension_version.vsix",{"_index":3400,"title":{},"name":{},"text":{"74":{}},"component":{}}],["serverlessworkflow",{"_index":179,"title":{},"name":{},"text":{},"component":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}}}],["servic",{"_index":5,"title":{"6":{},"16":{},"20":{},"24":{},"28":{},"32":{},"33":{},"34":{},"35":{},"36":{},"43":{},"48":{},"54":{},"60":{},"71":{},"1-4":{},"1-11":{},"1-12":{},"14-1":{},"14-3":{},"14-4":{},"14-5":{},"14-9":{},"14-11":{},"16-1":{},"16-3":{},"16-6":{},"16-7":{},"28-4":{},"32-1":{},"34-3":{},"34-4":{},"34-5":{},"34-8":{},"36-5":{},"43-1":{},"46-6":{},"46-7":{},"53-2":{},"60-2":{},"60-3":{},"60-4":{},"60-5":{},"60-6":{},"69-1":{},"71-1":{},"71-2":{},"74-5":{},"74-6":{}},"name":{"16":{},"20":{},"21":{},"32":{},"33":{},"34":{},"35":{},"36":{},"43":{},"60":{},"71":{}},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"19":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"67":{},"69":{},"70":{},"71":{},"74":{}},"component":{}}],["service(",{"_index":2400,"title":{},"name":{},"text":{"36":{}},"component":{}}],["service.backoffretrymilli",{"_index":1894,"title":{},"name":{},"text":{"27":{}},"component":{}}],["service.default.10.109.169.193.sslip.io",{"_index":623,"title":{},"name":{},"text":{"6":{},"24":{}},"component":{}}],["service.default.10.109.169.193.sslip.io/plainjsonfunct",{"_index":632,"title":{},"name":{},"text":{"6":{}},"component":{}}],["service.http.job",{"_index":1939,"title":{},"name":{},"text":{"27":{}},"component":{}}],["service.kafka.job",{"_index":1955,"title":{},"name":{},"text":{"27":{}},"component":{}}],["service.maxintervallimittoretrymilli",{"_index":1895,"title":{},"name":{},"text":{"27":{}},"component":{}}],["service.url=http://localhost:8280",{"_index":1973,"title":{},"name":{},"text":{"28":{}},"component":{}}],["service.yml",{"_index":2177,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service.yml#exchanger",{"_index":2145,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service/exchang",{"_index":2181,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service:java:com.acme.myinterfaceorclass::mymethod",{"_index":535,"title":{},"name":{},"text":{"6":{}},"component":{}}],["service:java:org.kie.kogito.examples.evenservice::iseven",{"_index":1005,"title":{},"name":{},"text":{"11":{}},"component":{}}],["service:org.kie.kogito.examples.exchangeworkflowhelper::validateinput",{"_index":2142,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service?path=/funct",{"_index":1750,"title":{},"name":{},"text":{"24":{}},"component":{}}],["service?path=/plainjsonfunct",{"_index":629,"title":{},"name":{},"text":{"6":{}},"component":{}}],["service?path=/plainjsonfunction&ascloudevent=tru",{"_index":651,"title":{},"name":{},"text":{"6":{}},"component":{}}],["service_api",{"_index":2269,"title":{},"name":{},"text":{"34":{}},"component":{}}],["service_api.url=http://localhost:8282",{"_index":2268,"title":{},"name":{},"text":{"34":{}},"component":{}}],["service_error",{"_index":2149,"title":{},"name":{},"text":{"33":{}},"component":{}}],["service_healthi",{"_index":1289,"title":{},"name":{},"text":{"16":{}},"component":{}}],["serviceaccount",{"_index":3297,"title":{},"name":{},"text":{"60":{}},"component":{}}],["servicemonitor",{"_index":1768,"title":{},"name":{},"text":{"25":{}},"component":{}}],["services.app",{"_index":3373,"title":{},"name":{},"text":{"69":{}},"component":{}}],["services.serving.knative.dev",{"_index":3166,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["services.v1",{"_index":3272,"title":{},"name":{},"text":{"60":{}},"component":{}}],["services.v1.serving.knative.dev",{"_index":3273,"title":{},"name":{},"text":{"60":{}},"component":{}}],["serving.knative.dev",{"_index":3290,"title":{},"name":{},"text":{"60":{}},"component":{}}],["serving.knative.dev/v1",{"_index":1435,"title":{},"name":{},"text":{"17":{},"57":{},"58":{},"59":{}},"component":{}}],["set",{"_index":347,"title":{"65-5":{},"68-1":{},"69-1":{},"74-4":{}},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"11":{},"12":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"22":{},"26":{},"27":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"41":{},"43":{},"46":{},"47":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"65":{},"66":{},"67":{},"68":{},"69":{},"71":{},"72":{},"74":{}},"component":{}}],["setbodi",{"_index":1727,"title":{},"name":{},"text":{"23":{}},"component":{}}],["setconst",{"_index":942,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["setter",{"_index":2176,"title":{},"name":{},"text":{"33":{}},"component":{}}],["setting.json",{"_index":3406,"title":{},"name":{},"text":{"74":{}},"component":{}}],["settings.json",{"_index":3408,"title":{},"name":{},"text":{"74":{}},"component":{}}],["setup",{"_index":698,"title":{},"name":{},"text":{"6":{},"12":{},"19":{},"27":{},"30":{},"31":{},"41":{},"65":{},"69":{},"74":{}},"component":{}}],["setup.j",{"_index":1805,"title":{},"name":{},"text":{"26":{}},"component":{}}],["sever",{"_index":827,"title":{},"name":{},"text":{"9":{},"10":{},"16":{},"18":{},"41":{}},"component":{}}],["share",{"_index":505,"title":{},"name":{},"text":{"5":{},"10":{},"15":{},"16":{},"30":{},"35":{},"68":{}},"component":{}}],["shell",{"_index":2535,"title":{},"name":{},"text":{"41":{}},"component":{}}],["ship",{"_index":1898,"title":{},"name":{},"text":{"27":{},"42":{},"45":{}},"component":{}}],["shippingrespons",{"_index":2732,"title":{},"name":{},"text":{"45":{}},"component":{}}],["shippingservic",{"_index":2750,"title":{},"name":{},"text":{"45":{}},"component":{}}],["short",{"_index":974,"title":{},"name":{},"text":{"11":{},"71":{}},"component":{}}],["shortli",{"_index":3349,"title":{},"name":{},"text":{"67":{}},"component":{}}],["show",{"_index":329,"title":{},"name":{},"text":{"4":{},"6":{},"12":{},"13":{},"16":{},"17":{},"19":{},"26":{},"27":{},"32":{},"33":{},"37":{},"42":{},"45":{},"46":{},"65":{},"67":{}},"component":{}}],["showcas",{"_index":178,"title":{"46":{},"9-9":{}},"name":{"46":{}},"text":{"1":{},"2":{},"9":{},"14":{},"27":{},"46":{}},"component":{}}],["shown",{"_index":386,"title":{},"name":{},"text":{"4":{},"6":{},"8":{},"13":{},"17":{},"25":{},"26":{},"27":{},"29":{},"32":{},"33":{},"34":{},"36":{},"37":{},"41":{},"42":{},"43":{},"45":{},"60":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["shut",{"_index":1963,"title":{},"name":{},"text":{"27":{}},"component":{}}],["side",{"_index":1026,"title":{"35-4":{},"35-5":{}},"name":{},"text":{"12":{},"26":{},"35":{},"70":{},"74":{}},"component":{}}],["sign",{"_index":3358,"title":{},"name":{},"text":{"68":{},"69":{}},"component":{}}],["signal",{"_index":2598,"title":{},"name":{},"text":{"42":{},"51":{}},"component":{}}],["signatur",{"_index":544,"title":{},"name":{},"text":{"6":{}},"component":{}}],["signific",{"_index":1487,"title":{},"name":{},"text":{"19":{}},"component":{}}],["silent",{"_index":808,"title":{},"name":{},"text":{"8":{}},"component":{}}],["silentev",{"_index":811,"title":{},"name":{},"text":{"8":{}},"component":{}}],["similar",{"_index":788,"title":{},"name":{},"text":{"7":{},"8":{},"10":{},"14":{},"25":{},"32":{},"33":{},"36":{},"38":{},"46":{},"49":{},"53":{},"60":{}},"component":{}}],["simpl",{"_index":712,"title":{"35-3":{}},"name":{},"text":{"6":{},"15":{},"23":{},"32":{},"35":{},"37":{},"46":{},"53":{}},"component":{}}],["simpli",{"_index":1266,"title":{},"name":{},"text":{"15":{},"23":{},"28":{},"49":{}},"component":{}}],["simplif",{"_index":2803,"title":{},"name":{},"text":{"46":{}},"component":{}}],["simplifi",{"_index":609,"title":{},"name":{},"text":{"6":{},"14":{},"60":{}},"component":{}}],["simul",{"_index":343,"title":{},"name":{},"text":{"4":{},"12":{},"34":{}},"component":{}}],["simultan",{"_index":1064,"title":{},"name":{},"text":{"13":{},"42":{}},"component":{}}],["singl",{"_index":339,"title":{},"name":{},"text":{"4":{},"8":{},"14":{},"27":{},"35":{},"36":{},"45":{},"46":{},"67":{},"70":{}},"component":{}}],["singleton",{"_index":1960,"title":{},"name":{},"text":{"27":{}},"component":{}}],["sink",{"_index":134,"title":{"42":{},"17-2":{}},"name":{},"text":{"1":{},"16":{},"17":{},"27":{},"38":{},"42":{}},"component":{}}],["sink.start",{"_index":2571,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sink.stop",{"_index":2575,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sink.stubfor(post(\"/\").willreturn(aresponse().withbody(\"ok\").withstatus(200",{"_index":2572,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sink.verify(1",{"_index":2594,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sink.verify(2",{"_index":2592,"title":{},"name":{},"text":{"42":{}},"component":{}}],["sinkbind",{"_index":1361,"title":{"42-2":{}},"name":{},"text":{"17":{},"27":{},"28":{},"42":{}},"component":{}}],["situat",{"_index":556,"title":{},"name":{},"text":{"6":{},"9":{},"45":{}},"component":{}}],["size",{"_index":485,"title":{},"name":{},"text":{"5":{},"18":{},"27":{},"55":{}},"component":{}}],["size=100",{"_index":1481,"title":{},"name":{},"text":{"18":{}},"component":{}}],["skeleton",{"_index":2830,"title":{},"name":{},"text":{"47":{}},"component":{}}],["skip",{"_index":927,"title":{},"name":{},"text":{"10":{},"14":{},"38":{},"46":{},"47":{},"50":{},"55":{},"59":{},"71":{}},"component":{}}],["sleep",{"_index":331,"title":{},"name":{},"text":{"4":{}},"component":{}}],["slider",{"_index":3335,"title":{},"name":{},"text":{"66":{}},"component":{}}],["slightli",{"_index":2863,"title":{},"name":{},"text":{"47":{}},"component":{}}],["small",{"_index":3097,"title":{},"name":{},"text":{"55":{}},"component":{}}],["smallry",{"_index":1260,"title":{"18-1":{},"18-2":{}},"name":{},"text":{"14":{},"16":{},"17":{},"18":{},"20":{},"21":{},"28":{},"38":{},"41":{}},"component":{}}],["snapshot",{"_index":1306,"title":{},"name":{},"text":{"16":{},"21":{},"25":{},"27":{},"30":{},"34":{},"50":{},"57":{},"58":{},"59":{}},"component":{}}],["snippet",{"_index":1940,"title":{},"name":{},"text":{"27":{},"35":{}},"component":{}}],["solut",{"_index":2135,"title":{},"name":{},"text":{"33":{}},"component":{}}],["someon",{"_index":3360,"title":{},"name":{},"text":{"68":{}},"component":{}}],["someth",{"_index":1140,"title":{},"name":{},"text":{"14":{},"49":{},"54":{}},"component":{}}],["sometim",{"_index":1358,"title":{},"name":{},"text":{"17":{},"49":{}},"component":{}}],["sonataflow",{"_index":20,"title":{"1":{},"3":{},"5":{},"6":{},"7":{},"8":{},"9":{},"11":{},"12":{},"13":{},"19":{},"22":{},"24":{},"29":{},"32":{},"37":{},"41":{},"45":{},"46":{},"50":{},"51":{},"58":{},"59":{},"60":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"9-7":{},"14-1":{},"23-1":{},"23-2":{},"25-1":{},"25-2":{},"25-5":{},"41-1":{},"46-5":{},"47-8":{},"50-1":{},"50-3":{},"50-5":{},"60-4":{},"64-1":{},"67-1":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"27":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"69":{},"70":{},"74":{}},"component":{}}],["sonataflow.org/descript",{"_index":2899,"title":{},"name":{},"text":{"47":{},"49":{},"53":{}},"component":{}}],["sonataflow.org/profil",{"_index":2937,"title":{},"name":{},"text":{"49":{},"53":{}},"component":{}}],["sonataflow.org/v1alpha08",{"_index":2864,"title":{},"name":{},"text":{"47":{},"49":{},"52":{},"53":{}},"component":{}}],["sonataflow.org/vers",{"_index":2900,"title":{},"name":{},"text":{"47":{},"49":{},"53":{}},"component":{}}],["sonataflowbuild",{"_index":2874,"title":{},"name":{},"text":{"47":{},"50":{},"54":{}},"component":{}}],["sonataflowplatform",{"_index":2817,"title":{},"name":{},"text":{"47":{},"49":{},"50":{},"52":{},"54":{}},"component":{}}],["sonataflowplatform.yaml",{"_index":2887,"title":{},"name":{},"text":{"47":{}},"component":{}}],["soon",{"_index":2797,"title":{},"name":{},"text":{"46":{}},"component":{}}],["sort",{"_index":1168,"title":{},"name":{},"text":{"14":{},"26":{},"66":{}},"component":{}}],["sortord",{"_index":1834,"title":{},"name":{},"text":{"26":{}},"component":{}}],["sourc",{"_index":655,"title":{"17-1":{}},"name":{},"text":{"6":{},"8":{},"12":{},"14":{},"15":{},"17":{},"19":{},"26":{},"29":{},"30":{},"33":{},"35":{},"37":{},"42":{},"43":{},"46":{},"64":{},"65":{},"66":{},"72":{}},"component":{}}],["sources.knative.dev/v1",{"_index":1432,"title":{},"name":{},"text":{"17":{},"27":{}},"component":{}}],["space",{"_index":3046,"title":{},"name":{},"text":{"53":{}},"component":{}}],["span",{"_index":1828,"title":{"27-2":{}},"name":{},"text":{"26":{}},"component":{}}],["spanish",{"_index":916,"title":{},"name":{},"text":{"10":{},"35":{},"47":{},"49":{}},"component":{}}],["spec",{"_index":1249,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"25":{},"27":{},"47":{},"49":{},"52":{},"53":{},"57":{},"58":{},"59":{},"67":{},"74":{}},"component":{}}],["spec.build",{"_index":3031,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.build.config",{"_index":3030,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.build.config.strategyoptions.kanikobuildcacheen",{"_index":2885,"title":{},"name":{},"text":{"47":{}},"component":{}}],["spec.build.templ",{"_index":3032,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.devmode.baseimag",{"_index":3034,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.devmodebaseimag",{"_index":3033,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.host",{"_index":3237,"title":{},"name":{},"text":{"59":{}},"component":{}}],["spec.platform",{"_index":3029,"title":{},"name":{},"text":{"52":{}},"component":{}}],["spec.resourc",{"_index":3049,"title":{},"name":{},"text":{"53":{}},"component":{}}],["spec:\\n",{"_index":2819,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["spec_titl",{"_index":460,"title":{},"name":{},"text":{"5":{},"34":{}},"component":{}}],["special",{"_index":1723,"title":{},"name":{},"text":{"23":{}},"component":{}}],["specif",{"_index":74,"title":{"4":{},"36-2":{},"43-3":{},"51-2":{}},"name":{"4":{}},"text":{"1":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"11":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"25":{},"26":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"41":{},"42":{},"43":{},"45":{},"47":{},"49":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"65":{},"67":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["specifi",{"_index":351,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"9":{},"10":{},"11":{},"14":{},"15":{},"18":{},"29":{},"30":{},"31":{},"33":{},"37":{},"38":{},"41":{},"42":{},"47":{},"55":{},"74":{}},"component":{}}],["specs/acm",{"_index":2144,"title":{},"name":{},"text":{"33":{}},"component":{}}],["specs/multiplication.yaml#dooper",{"_index":2406,"title":{},"name":{},"text":{"36":{}},"component":{}}],["specs/subtraction.yaml#dooper",{"_index":935,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["specs/workflow",{"_index":3038,"title":{},"name":{},"text":{"53":{}},"component":{}}],["specvers",{"_index":653,"title":{},"name":{},"text":{"6":{},"13":{},"17":{},"19":{},"21":{},"34":{},"42":{}},"component":{}}],["specversion\":\"1.0\",\"id\":\"41495513",{"_index":1384,"title":{},"name":{},"text":{"17":{}},"component":{}}],["speed",{"_index":2886,"title":{},"name":{},"text":{"47":{},"50":{},"55":{}},"component":{}}],["spent",{"_index":3313,"title":{},"name":{},"text":{"63":{}},"component":{}}],["spring",{"_index":2391,"title":{},"name":{},"text":{"36":{}},"component":{}}],["sql",{"_index":2036,"title":{},"name":{},"text":{"31":{}},"component":{}}],["squarest",{"_index":955,"title":{},"name":{},"text":{"10":{}},"component":{}}],["sr2j2",{"_index":2999,"title":{},"name":{},"text":{"50":{}},"component":{}}],["src/main/resourc",{"_index":1073,"title":{},"name":{},"text":{"13":{},"21":{},"34":{},"35":{},"36":{},"41":{},"67":{},"68":{}},"component":{}}],["src/main/resources/application.properti",{"_index":412,"title":{},"name":{},"text":{"5":{}},"component":{}}],["src/main/resources/dashboard",{"_index":3307,"title":{},"name":{},"text":{"62":{}},"component":{}}],["src/main/resources/myopenapifile.yaml",{"_index":2388,"title":{},"name":{},"text":{"36":{}},"component":{}}],["src/main/resources/openapi/stock",{"_index":2256,"title":{},"name":{},"text":{"34":{}},"component":{}}],["src/main/resources/rout",{"_index":1722,"title":{},"name":{},"text":{"23":{}},"component":{}}],["src/main/resources/spec",{"_index":2178,"title":{},"name":{},"text":{"33":{},"36":{}},"component":{}}],["src/test/java/org/kie/kogito/exampl",{"_index":2454,"title":{},"name":{},"text":{"38":{}},"component":{}}],["sso",{"_index":3419,"title":{},"name":{},"text":{"74":{}},"component":{}}],["stage",{"_index":962,"title":{},"name":{},"text":{"10":{},"28":{},"50":{},"54":{}},"component":{}}],["standalon",{"_index":171,"title":{"16":{},"14-3":{},"16-3":{},"46-7":{}},"name":{},"text":{"1":{},"9":{},"14":{},"16":{},"27":{},"28":{},"46":{}},"component":{}}],["standard",{"_index":837,"title":{},"name":{},"text":{"9":{},"32":{},"42":{},"47":{}},"component":{}}],["start",{"_index":1,"title":{"1-1":{},"43-2":{},"43-3":{},"65-2":{},"65-3":{},"65-6":{},"65-7":{}},"name":{},"text":{"3":{},"4":{},"5":{},"6":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"19":{},"21":{},"22":{},"25":{},"26":{},"27":{},"29":{},"31":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"47":{},"49":{},"50":{},"53":{},"54":{},"55":{},"58":{},"60":{},"63":{},"64":{},"65":{},"66":{},"67":{},"70":{}},"component":{}}],["start\":\"waitforev",{"_index":820,"title":{},"name":{},"text":{"8":{}},"component":{}}],["start=tru",{"_index":2014,"title":{},"name":{},"text":{"30":{},"31":{}},"component":{}}],["startkeycloak.sh",{"_index":2213,"title":{},"name":{},"text":{"33":{}},"component":{}}],["startsink",{"_index":2569,"title":{},"name":{},"text":{"42":{}},"component":{}}],["startup",{"_index":1662,"title":{},"name":{},"text":{"21":{},"27":{},"30":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["startwiremockserverforfeaturea",{"_index":2659,"title":{},"name":{},"text":{"43":{}},"component":{}}],["startwiremockserverforfeatureb",{"_index":2660,"title":{},"name":{},"text":{"43":{}},"component":{}}],["state",{"_index":77,"title":{"4-1":{},"9-3":{},"9-4":{},"9-5":{},"12-1":{},"36-4":{}},"name":{},"text":{"1":{},"2":{},"4":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"26":{},"27":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"42":{},"45":{},"46":{},"47":{},"49":{},"53":{},"54":{},"63":{},"66":{},"67":{}},"component":{}}],["state[ev",{"_index":350,"title":{},"name":{},"text":{"4":{}},"component":{}}],["statedatafilt",{"_index":961,"title":{},"name":{},"text":{"10":{},"35":{}},"component":{}}],["statefulset",{"_index":3288,"title":{},"name":{},"text":{"60":{}},"component":{}}],["statefulsets.v1.app",{"_index":3277,"title":{},"name":{},"text":{"60":{}},"component":{}}],["static",{"_index":615,"title":{"53-2":{}},"name":{},"text":{"6":{},"21":{},"29":{},"33":{},"38":{},"42":{},"43":{},"53":{},"60":{}},"component":{}}],["static_config",{"_index":1779,"title":{},"name":{},"text":{"25":{}},"component":{}}],["static_init",{"_index":3303,"title":{},"name":{},"text":{"60":{}},"component":{}}],["statu",{"_index":301,"title":{"54":{},"54-1":{},"67-2":{}},"name":{"54":{}},"text":{"3":{},"4":{},"11":{},"14":{},"27":{},"33":{},"38":{},"43":{},"46":{},"49":{},"50":{},"54":{},"58":{},"63":{},"66":{},"67":{}},"component":{}}],["statuscode(200",{"_index":2590,"title":{},"name":{},"text":{"42":{}},"component":{}}],["statuscode(201",{"_index":1992,"title":{},"name":{},"text":{"29":{},"38":{}},"component":{}}],["statuscode(404",{"_index":2000,"title":{},"name":{},"text":{"29":{}},"component":{}}],["stay",{"_index":1961,"title":{},"name":{},"text":{"27":{}},"component":{}}],["stdout",{"_index":1643,"title":{},"name":{},"text":{"21":{}},"component":{}}],["step",{"_index":1726,"title":{},"name":{},"text":{"23":{},"24":{},"26":{},"28":{},"41":{},"45":{},"46":{},"47":{},"55":{},"57":{},"58":{},"59":{},"71":{}},"component":{}}],["still",{"_index":1934,"title":{},"name":{},"text":{"27":{},"47":{},"57":{},"58":{},"59":{}},"component":{}}],["stock",{"_index":2265,"title":{},"name":{},"text":{"34":{},"45":{}},"component":{}}],["stock_portfolio_svc_yaml",{"_index":2255,"title":{},"name":{},"text":{"34":{}},"component":{}}],["stockprofit",{"_index":2286,"title":{},"name":{},"text":{"34":{}},"component":{}}],["stockrespons",{"_index":2719,"title":{},"name":{},"text":{"45":{}},"component":{}}],["stop",{"_index":1561,"title":{},"name":{},"text":{"20":{},"21":{},"33":{},"38":{},"42":{},"43":{},"49":{}},"component":{}}],["stopsink",{"_index":2574,"title":{},"name":{},"text":{"42":{}},"component":{}}],["storag",{"_index":151,"title":{"14-6":{},"62-3":{}},"name":{},"text":{"1":{},"62":{},"74":{}},"component":{}}],["store",{"_index":963,"title":{},"name":{},"text":{"10":{},"14":{},"15":{},"16":{},"18":{},"19":{},"27":{},"30":{},"35":{},"36":{},"46":{},"48":{},"58":{},"59":{},"72":{},"74":{}},"component":{}}],["straight",{"_index":2703,"title":{},"name":{},"text":{"45":{}},"component":{}}],["straightforward",{"_index":2559,"title":{},"name":{},"text":{"41":{}},"component":{}}],["strategi",{"_index":435,"title":{"41-4":{}},"name":{},"text":{"5":{},"11":{},"18":{},"30":{},"34":{},"41":{},"46":{}},"component":{}}],["strategy=buff",{"_index":1479,"title":{},"name":{},"text":{"18":{}},"component":{}}],["strategy=none|unbounded|fail|drop",{"_index":1485,"title":{},"name":{},"text":{"18":{}},"component":{}}],["strategy=project",{"_index":2018,"title":{},"name":{},"text":{"30":{}},"component":{}}],["strategyopt",{"_index":2883,"title":{},"name":{},"text":{"47":{}},"component":{}}],["stream",{"_index":475,"title":{"35-4":{},"35-5":{},"35-6":{}},"name":{},"text":{"5":{},"21":{},"35":{}},"component":{}}],["strict",{"_index":2813,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["string",{"_index":422,"title":{},"name":{},"text":{"5":{},"6":{},"7":{},"10":{},"11":{},"12":{},"13":{},"14":{},"16":{},"23":{},"29":{},"30":{},"32":{},"33":{},"35":{},"36":{},"43":{},"60":{},"74":{}},"component":{}}],["structur",{"_index":596,"title":{},"name":{},"text":{"6":{},"14":{},"17":{},"31":{},"36":{},"54":{},"67":{},"73":{},"74":{}},"component":{}}],["stub",{"_index":2599,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["studio",{"_index":1580,"title":{},"name":{},"text":{"21":{},"22":{},"74":{}},"component":{}}],["stunner",{"_index":3337,"title":{},"name":{},"text":{"66":{}},"component":{}}],["sub",{"_index":862,"title":{},"name":{},"text":{"9":{},"27":{}},"component":{}}],["subcommand",{"_index":2533,"title":{},"name":{},"text":{"41":{}},"component":{}}],["subflow",{"_index":3037,"title":{},"name":{},"text":{"53":{}},"component":{}}],["subject",{"_index":657,"title":{},"name":{},"text":{"6":{},"17":{},"27":{},"60":{}},"component":{}}],["submit",{"_index":1752,"title":{},"name":{},"text":{"24":{}},"component":{}}],["subscrib",{"_index":1251,"title":{},"name":{},"text":{"14":{},"16":{},"17":{},"20":{},"27":{}},"component":{}}],["subscript",{"_index":1436,"title":{},"name":{},"text":{"17":{},"20":{},"50":{}},"component":{}}],["substitut",{"_index":2422,"title":{},"name":{},"text":{"36":{}},"component":{}}],["subtract",{"_index":934,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["subtraction.yaml",{"_index":2418,"title":{},"name":{},"text":{"36":{}},"component":{}}],["subtraction_url",{"_index":2424,"title":{},"name":{},"text":{"36":{}},"component":{}}],["subtraction_yaml",{"_index":2419,"title":{},"name":{},"text":{"36":{}},"component":{}}],["subtractvalu",{"_index":938,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["succeed",{"_index":3244,"title":{},"name":{},"text":{"59":{}},"component":{}}],["success",{"_index":986,"title":{},"name":{},"text":{"11":{},"33":{},"38":{},"45":{},"50":{},"65":{},"66":{},"67":{}},"component":{}}],["successfulli",{"_index":1027,"title":{},"name":{},"text":{"12":{},"37":{},"38":{},"41":{},"42":{},"54":{},"65":{},"66":{},"67":{},"72":{}},"component":{}}],["successthreshold",{"_index":3198,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["such",{"_index":208,"title":{},"name":{},"text":{"2":{},"4":{},"7":{},"10":{},"11":{},"12":{},"19":{},"21":{},"25":{},"26":{},"27":{},"28":{},"29":{},"32":{},"33":{},"34":{},"35":{},"36":{},"41":{},"42":{},"45":{},"47":{},"49":{},"55":{},"57":{},"58":{},"59":{},"63":{},"64":{},"66":{},"70":{},"74":{}},"component":{}}],["suffix",{"_index":1737,"title":{},"name":{},"text":{"23":{},"32":{},"48":{}},"component":{}}],["suggest",{"_index":1455,"title":{},"name":{},"text":{"18":{}},"component":{}}],["suit",{"_index":1864,"title":{},"name":{},"text":{"27":{}},"component":{}}],["suitabl",{"_index":1016,"title":{},"name":{},"text":{"12":{},"18":{},"37":{},"43":{}},"component":{}}],["summari",{"_index":1555,"title":{},"name":{},"text":{"20":{},"36":{},"63":{}},"component":{}}],["support",{"_index":52,"title":{"27-14":{},"49-10":{},"74-3":{}},"name":{"4":{},"6":{},"9":{},"32":{}},"text":{"1":{},"2":{},"4":{},"5":{},"6":{},"7":{},"9":{},"10":{},"14":{},"15":{},"16":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"41":{},"46":{},"47":{},"51":{},"59":{},"60":{},"74":{}},"component":{}}],["support.adoc#send",{"_index":1760,"title":{},"name":{},"text":{"24":{}},"component":{}}],["suppos",{"_index":2129,"title":{},"name":{},"text":{"33":{}},"component":{}}],["sure",{"_index":1223,"title":{},"name":{},"text":{"14":{},"27":{},"28":{},"49":{},"57":{},"59":{},"66":{}},"component":{}}],["suspend",{"_index":1066,"title":{},"name":{},"text":{"13":{},"66":{}},"component":{}}],["svc",{"_index":2910,"title":{},"name":{},"text":{"47":{}},"component":{}}],["svc.yaml",{"_index":2258,"title":{},"name":{},"text":{"34":{}},"component":{}}],["svc.yaml#getstockpric",{"_index":2290,"title":{},"name":{},"text":{"34":{}},"component":{}}],["svc.yaml#getstockprofit",{"_index":2292,"title":{},"name":{},"text":{"34":{}},"component":{}}],["svg",{"_index":3396,"title":{},"name":{},"text":{"73":{},"74":{}},"component":{}}],["sw",{"_index":200,"title":{},"name":{},"text":{"2":{},"19":{},"33":{}},"component":{}}],["sw.json",{"_index":2828,"title":{},"name":{},"text":{"47":{},"70":{},"72":{}},"component":{}}],["sw.yaml",{"_index":3393,"title":{},"name":{},"text":{"72":{}},"component":{}}],["sw.yaml|yml",{"_index":3378,"title":{},"name":{},"text":{"70":{}},"component":{}}],["swagger",{"_index":773,"title":{"7-4":{}},"name":{},"text":{"7":{},"21":{},"36":{},"49":{},"67":{}},"component":{}}],["swagger/openapi",{"_index":2395,"title":{},"name":{},"text":{"36":{}},"component":{}}],["swaggerui",{"_index":1590,"title":{},"name":{},"text":{"21":{}},"component":{}}],["swf",{"_index":261,"title":{},"name":{"72":{},"73":{},"74":{}},"text":{"2":{},"47":{}},"component":{}}],["swf_metric",{"_index":1810,"title":{},"name":{},"text":{"26":{}},"component":{}}],["switch",{"_index":357,"title":{"9-4":{},"10-1":{}},"name":{},"text":{"4":{},"9":{},"10":{},"27":{},"33":{},"46":{},"47":{},"49":{},"72":{}},"component":{}}],["switch_state_timeout",{"_index":2788,"title":{"46-2":{}},"name":{},"text":{"46":{}},"component":{}}],["symbol",{"_index":2295,"title":{},"name":{},"text":{"34":{}},"component":{}}],["sync",{"_index":39,"title":{},"name":{},"text":{"1":{},"68":{}},"component":{}}],["synchron",{"_index":3351,"title":{"68-2":{}},"name":{},"text":{"68":{},"70":{}},"component":{}}],["syntax",{"_index":1127,"title":{},"name":{},"text":{"14":{},"34":{}},"component":{}}],["sysout",{"_index":365,"title":{"6-1":{}},"name":{},"text":{"4":{},"6":{},"47":{},"49":{}},"component":{}}],["sysout:info",{"_index":520,"title":{},"name":{},"text":{"6":{}},"component":{}}],["system",{"_index":967,"title":{"27-6":{},"47-1":{}},"name":{},"text":{"11":{},"14":{},"21":{},"27":{},"28":{},"29":{},"34":{},"35":{},"36":{},"41":{},"42":{},"45":{},"46":{},"47":{},"50":{},"53":{},"55":{},"57":{},"58":{},"59":{},"69":{}},"component":{}}],["system_username}/{project_artifactid}:{project_vers",{"_index":3081,"title":{},"name":{},"text":{"55":{}},"component":{}}],["systemout",{"_index":897,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["s|address",{"_index":2891,"title":{},"name":{},"text":{"47":{}},"component":{}}],["t",{"_index":2474,"title":{},"name":{},"text":{"38":{},"59":{}},"component":{}}],["tab",{"_index":2529,"title":{},"name":{},"text":{"41":{},"63":{},"67":{},"68":{},"69":{},"71":{},"74":{}},"component":{}}],["tabl",{"_index":328,"title":{"65-1":{}},"name":{},"text":{"4":{},"5":{},"11":{},"14":{},"15":{},"16":{},"17":{},"26":{},"27":{},"30":{},"31":{},"32":{},"48":{},"54":{},"62":{},"65":{},"66":{},"74":{}},"component":{}}],["tag",{"_index":2182,"title":{},"name":{},"text":{"33":{},"36":{},"41":{},"57":{},"58":{},"59":{}},"component":{}}],["tailor",{"_index":2811,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["take",{"_index":877,"title":{},"name":{},"text":{"9":{},"12":{},"16":{},"17":{},"30":{},"41":{},"57":{},"65":{},"67":{}},"component":{}}],["taken",{"_index":912,"title":{},"name":{},"text":{"10":{}},"component":{}}],["target",{"_index":959,"title":{},"name":{},"text":{"10":{},"17":{},"25":{},"34":{},"47":{},"53":{},"55":{},"57":{},"58":{},"59":{},"60":{}},"component":{}}],["target/classes/meta",{"_index":1291,"title":{},"name":{},"text":{"16":{}},"component":{}}],["target/knative.yml",{"_index":1426,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{}}],["target/kogito.yml",{"_index":1425,"title":{},"name":{},"text":{"17":{},"28":{}},"component":{}}],["target/kubernet",{"_index":1418,"title":{},"name":{},"text":{"17":{},"28":{},"41":{},"57":{},"58":{},"59":{}},"component":{}}],["target/kubernetes/knative.yml",{"_index":3203,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["target/lib",{"_index":3091,"title":{},"name":{},"text":{"55":{}},"component":{}}],["target/quarku",{"_index":2216,"title":{},"name":{},"text":{"33":{},"34":{},"60":{}},"component":{}}],["target=kn",{"_index":1416,"title":{},"name":{},"text":{"17":{},"57":{},"58":{},"59":{}},"component":{}}],["targetport",{"_index":1308,"title":{},"name":{},"text":{"16":{},"25":{}},"component":{}}],["task",{"_index":487,"title":{},"name":{},"text":{"5":{},"13":{},"25":{},"27":{}},"component":{}}],["tcp",{"_index":1319,"title":{},"name":{},"text":{"16":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["tekton",{"_index":3113,"title":{},"name":{"56":{}},"text":{},"component":{}}],["tell",{"_index":645,"title":{},"name":{},"text":{"6":{},"49":{},"53":{}},"component":{}}],["temperatur",{"_index":930,"title":{},"name":{},"text":{"10":{},"36":{}},"component":{}}],["templat",{"_index":1315,"title":{},"name":{},"text":{"16":{},"47":{},"52":{},"57":{},"58":{},"59":{},"67":{},"74":{}},"component":{}}],["template='{{.spec.host",{"_index":2919,"title":{},"name":{},"text":{"47":{}},"component":{}}],["temporari",{"_index":1137,"title":{},"name":{},"text":{"14":{},"15":{},"16":{}},"component":{}}],["term",{"_index":1119,"title":{},"name":{},"text":{"14":{},"17":{},"31":{}},"component":{}}],["termin",{"_index":1013,"title":{},"name":{},"text":{"11":{},"13":{},"21":{},"24":{},"33":{},"34":{},"35":{},"36":{},"45":{},"46":{},"55":{},"57":{},"58":{},"59":{},"64":{}},"component":{}}],["test",{"_index":10,"title":{"29":{},"38":{},"1-7":{},"21-5":{},"29-2":{},"42-2":{},"42-3":{},"43-1":{},"43-3":{},"45-3":{},"55-4":{}},"name":{"29":{},"38":{}},"text":{"1":{},"2":{},"3":{},"5":{},"13":{},"17":{},"19":{},"21":{},"26":{},"27":{},"28":{},"29":{},"30":{},"34":{},"38":{},"42":{},"43":{},"45":{},"47":{},"49":{},"50":{},"55":{},"67":{},"69":{},"70":{}},"component":{}}],["test@test.com",{"_index":1518,"title":{},"name":{},"text":{"19":{}},"component":{}}],["testcallbackrest",{"_index":1988,"title":{},"name":{},"text":{"29":{}},"component":{}}],["testcontain",{"_index":1336,"title":{},"name":{},"text":{"16":{}},"component":{}}],["testfeaturea",{"_index":2656,"title":{},"name":{},"text":{"43":{}},"component":{}}],["testfeatureb",{"_index":2657,"title":{},"name":{},"text":{"43":{}},"component":{}}],["testhello",{"_index":2466,"title":{},"name":{},"text":{"38":{}},"component":{}}],["text",{"_index":2335,"title":{},"name":{},"text":{"35":{},"65":{},"74":{}},"component":{}}],["text/plain",{"_index":2077,"title":{},"name":{},"text":{"32":{}},"component":{}}],["text/xml",{"_index":666,"title":{},"name":{},"text":{"6":{}},"component":{}}],["that’",{"_index":1382,"title":{},"name":{},"text":{"17":{},"23":{}},"component":{}}],["the*view",{"_index":3327,"title":{},"name":{},"text":{"65":{}},"component":{}}],["therefor",{"_index":397,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"9":{},"10":{},"11":{},"12":{},"13":{},"16":{},"18":{},"19":{},"20":{},"25":{},"26":{},"30":{},"32":{},"34":{},"35":{},"36":{},"37":{},"45":{},"58":{},"60":{},"67":{},"68":{},"69":{}},"component":{}}],["there’",{"_index":3059,"title":{},"name":{},"text":{"54":{}},"component":{}}],["thing",{"_index":1279,"title":{},"name":{},"text":{"16":{}},"component":{}}],["third",{"_index":122,"title":{"33":{}},"name":{"33":{}},"text":{"1":{},"32":{},"43":{},"45":{}},"component":{}}],["those",{"_index":1242,"title":{},"name":{},"text":{"14":{},"16":{}},"component":{}}],["though",{"_index":1445,"title":{},"name":{},"text":{"18":{},"30":{}},"component":{}}],["thought",{"_index":1131,"title":{},"name":{},"text":{"14":{}},"component":{}}],["thread",{"_index":60,"title":{},"name":{},"text":{"1":{},"4":{},"5":{},"21":{},"38":{},"45":{}},"component":{}}],["threadpoolexecutor",{"_index":479,"title":{},"name":{},"text":{"5":{}},"component":{}}],["three",{"_index":1068,"title":{},"name":{},"text":{"13":{},"35":{},"42":{},"54":{},"70":{}},"component":{}}],["through",{"_index":614,"title":{},"name":{},"text":{"6":{},"9":{},"10":{},"14":{},"15":{},"17":{},"18":{},"45":{},"66":{}},"component":{}}],["throughout",{"_index":3219,"title":{},"name":{},"text":{"58":{}},"component":{}}],["throw",{"_index":554,"title":{},"name":{},"text":{"6":{},"11":{},"12":{},"37":{},"42":{},"43":{},"45":{}},"component":{}}],["thrown",{"_index":782,"title":{},"name":{},"text":{"7":{},"23":{},"45":{}},"component":{}}],["thu",{"_index":908,"title":{},"name":{},"text":{"9":{},"27":{},"28":{},"46":{}},"component":{}}],["ti",{"_index":3050,"title":{},"name":{},"text":{"53":{}},"component":{}}],["till",{"_index":979,"title":{},"name":{},"text":{"11":{},"32":{}},"component":{}}],["time",{"_index":374,"title":{"9-6":{},"17-4":{}},"name":{},"text":{"4":{},"6":{},"9":{},"10":{},"14":{},"17":{},"19":{},"21":{},"27":{},"29":{},"30":{},"33":{},"34":{},"36":{},"38":{},"41":{},"42":{},"46":{},"47":{},"50":{},"53":{},"54":{},"60":{},"62":{},"63":{},"66":{},"74":{}},"component":{}}],["timelin",{"_index":3334,"title":{},"name":{},"text":{"66":{}},"component":{}}],["timeout",{"_index":97,"title":{"9":{},"46":{},"4-8":{},"6-18":{},"9-1":{},"9-2":{},"9-3":{},"9-4":{},"9-5":{},"9-9":{}},"name":{"9":{},"46":{}},"text":{"1":{},"2":{},"4":{},"5":{},"6":{},"9":{},"14":{},"16":{},"27":{},"28":{},"46":{}},"component":{}}],["timeouts_showcase_embed",{"_index":1268,"title":{},"name":{},"text":{"15":{}},"component":{}}],["timeoutsecond",{"_index":3199,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["timer",{"_index":164,"title":{},"name":{},"text":{"1":{},"9":{},"27":{},"28":{},"46":{}},"component":{}}],["timestamp",{"_index":3186,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["titl",{"_index":2075,"title":{},"name":{},"text":{"32":{},"33":{},"34":{},"36":{}},"component":{}}],["tl",{"_index":3242,"title":{},"name":{},"text":{"59":{}},"component":{}}],["togeth",{"_index":1519,"title":{},"name":{},"text":{"19":{},"46":{}},"component":{}}],["toggl",{"_index":3023,"title":{},"name":{},"text":{"51":{}},"component":{}}],["token",{"_index":2054,"title":{"32-3":{},"32-6":{},"68-1":{}},"name":{},"text":{"32":{},"33":{},"35":{},"59":{},"68":{},"69":{}},"component":{}}],["token=my_token",{"_index":2085,"title":{},"name":{},"text":{"32":{}},"component":{}}],["tokenurl",{"_index":2096,"title":{},"name":{},"text":{"32":{},"33":{}},"component":{}}],["took",{"_index":3314,"title":{},"name":{},"text":{"63":{}},"component":{}}],["tool",{"_index":4,"title":{"22":{},"67":{},"68":{},"69":{},"70":{},"1-3":{},"68-1":{},"69-2":{},"70-1":{}},"name":{"22":{},"40":{},"44":{},"67":{},"68":{},"69":{},"70":{},"71":{}},"text":{"1":{},"4":{},"17":{},"21":{},"22":{},"24":{},"25":{},"29":{},"31":{},"36":{},"41":{},"43":{},"50":{},"55":{},"57":{},"58":{},"59":{},"64":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["toolbar",{"_index":3317,"title":{},"name":{},"text":{"65":{}},"component":{}}],["tools.custom.dashboard.fold",{"_index":3309,"title":{},"name":{},"text":{"62":{}},"component":{}}],["top",{"_index":3324,"title":{},"name":{},"text":{"65":{},"66":{},"68":{},"69":{},"71":{},"72":{}},"component":{}}],["topic",{"_index":1061,"title":{},"name":{},"text":{"12":{},"14":{},"16":{},"18":{},"20":{},"27":{},"57":{},"58":{},"59":{}},"component":{}}],["topolog",{"_index":1133,"title":{},"name":{},"text":{"14":{},"69":{}},"component":{}}],["tostatedata",{"_index":894,"title":{},"name":{},"text":{"9":{},"10":{},"12":{},"46":{}},"component":{}}],["tostatedata\":\".paymentrespons",{"_index":2684,"title":{},"name":{},"text":{"45":{}},"component":{}}],["total",{"_index":1786,"title":{},"name":{},"text":{"25":{},"26":{},"38":{},"42":{},"53":{}},"component":{}}],["toward",{"_index":3367,"title":{},"name":{},"text":{"69":{}},"component":{}}],["trace",{"_index":521,"title":{},"name":{},"text":{"6":{}},"component":{}}],["track",{"_index":252,"title":{},"name":{},"text":{"2":{},"31":{},"45":{}},"component":{}}],["traffic",{"_index":2399,"title":{},"name":{},"text":{"36":{}},"component":{}}],["transact",{"_index":2664,"title":{},"name":{},"text":{"45":{}},"component":{}}],["transfer",{"_index":2562,"title":{},"name":{},"text":{"42":{}},"component":{}}],["transform",{"_index":1841,"title":{},"name":{},"text":{"26":{},"33":{}},"component":{}}],["transit",{"_index":860,"title":{},"name":{},"text":{"9":{},"10":{},"11":{},"12":{},"19":{},"21":{},"33":{},"34":{},"36":{},"37":{},"45":{},"46":{},"47":{},"49":{},"54":{}},"component":{}}],["transition\":\"scheduleship",{"_index":2685,"title":{},"name":{},"text":{"45":{}},"component":{}}],["transition\":\"serviceerror",{"_index":2688,"title":{},"name":{},"text":{"45":{}},"component":{}}],["translat",{"_index":616,"title":{},"name":{},"text":{"6":{}},"component":{}}],["transmit",{"_index":1273,"title":{},"name":{},"text":{"15":{}},"component":{}}],["transpar",{"_index":1136,"title":{},"name":{},"text":{"14":{},"46":{}},"component":{}}],["transport",{"_index":1359,"title":{"37-2":{}},"name":{},"text":{"17":{},"27":{}},"component":{}}],["travel",{"_index":1158,"title":{},"name":{},"text":{"14":{}},"component":{}}],["tri",{"_index":743,"title":{},"name":{},"text":{"6":{},"11":{},"12":{},"22":{},"27":{},"35":{},"43":{},"47":{},"48":{},"49":{},"50":{},"54":{},"67":{},"73":{}},"component":{}}],["trigger",{"_index":116,"title":{},"name":{},"text":{"1":{},"8":{},"14":{},"16":{},"17":{},"19":{},"20":{},"27":{},"37":{},"42":{},"45":{},"55":{},"65":{},"66":{},"74":{}},"component":{}}],["triggereventref",{"_index":1030,"title":{},"name":{},"text":{"12":{},"19":{}},"component":{}}],["trimcustomoperation(functiondef",{"_index":737,"title":{},"name":{},"text":{"6":{}},"component":{}}],["troubleshoot",{"_index":11,"title":{"1-7":{},"49-7":{},"49-8":{}},"name":{"40":{}},"text":{"49":{},"54":{}},"component":{}}],["true",{"_index":353,"title":{},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"13":{},"14":{},"15":{},"16":{},"17":{},"21":{},"23":{},"24":{},"26":{},"27":{},"33":{},"34":{},"35":{},"36":{},"46":{},"47":{},"49":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["tune",{"_index":2873,"title":{},"name":{},"text":{"47":{}},"component":{}}],["tunnel",{"_index":3218,"title":{},"name":{},"text":{"58":{}},"component":{}}],["turn",{"_index":921,"title":{},"name":{},"text":{"10":{}},"component":{}}],["tutori",{"_index":3144,"title":{},"name":{},"text":{"57":{},"58":{}},"component":{}}],["two",{"_index":274,"title":{},"name":{},"text":{"3":{},"6":{},"8":{},"10":{},"12":{},"13":{},"17":{},"18":{},"21":{},"35":{},"42":{},"46":{},"53":{},"60":{},"74":{}},"component":{}}],["type",{"_index":364,"title":{"6-19":{},"6-20":{}},"name":{},"text":{"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"23":{},"24":{},"25":{},"26":{},"27":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"42":{},"43":{},"45":{},"46":{},"47":{},"49":{},"53":{},"57":{},"58":{},"59":{},"65":{},"66":{},"70":{},"74":{}},"component":{}}],["type\":\"custom",{"_index":2700,"title":{},"name":{},"text":{"45":{}},"component":{}}],["type\":\"error",{"_index":2770,"title":{},"name":{},"text":{"45":{}},"component":{}}],["type\":\"oper",{"_index":2679,"title":{},"name":{},"text":{"45":{}},"component":{}}],["type\":\"success",{"_index":2720,"title":{},"name":{},"text":{"45":{}},"component":{}}],["type:application/json",{"_index":1701,"title":{},"name":{},"text":{"21":{},"35":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["type=kubernetes.io/dockerconfigjson",{"_index":2879,"title":{},"name":{},"text":{"47":{}},"component":{}}],["types.proto",{"_index":1684,"title":{},"name":{},"text":{"21":{}},"component":{}}],["typescript",{"_index":2396,"title":{},"name":{},"text":{"36":{}},"component":{}}],["tzdb.dat",{"_index":207,"title":{},"name":{},"text":{"2":{}},"component":{}}],["u",{"_index":2041,"title":{},"name":{},"text":{"31":{},"59":{}},"component":{}}],["ui",{"_index":129,"title":{"62":{},"63":{},"64":{},"65":{},"66":{},"14-10":{},"64-1":{}},"name":{"62":{},"63":{},"64":{},"65":{},"66":{}},"text":{"1":{},"2":{},"14":{},"15":{},"16":{},"21":{},"22":{},"36":{},"49":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{}},"component":{}}],["unbound",{"_index":1473,"title":{},"name":{},"text":{"18":{}},"component":{}}],["unchang",{"_index":2791,"title":{},"name":{},"text":{"46":{}},"component":{}}],["uncheck",{"_index":3347,"title":{},"name":{},"text":{"67":{}},"component":{}}],["uncheckedioexception(",{"_index":2650,"title":{},"name":{},"text":{"43":{}},"component":{}}],["uncheckedioexception(io",{"_index":758,"title":{},"name":{},"text":{"6":{}},"component":{}}],["uncommon",{"_index":718,"title":{},"name":{},"text":{"6":{}},"component":{}}],["uncompress",{"_index":1803,"title":{},"name":{},"text":{"26":{}},"component":{}}],["under",{"_index":247,"title":{},"name":{},"text":{"2":{},"13":{},"25":{},"35":{},"47":{},"49":{},"50":{},"51":{},"60":{}},"component":{}}],["underli",{"_index":996,"title":{},"name":{},"text":{"11":{},"27":{},"46":{},"48":{},"54":{}},"component":{}}],["underneath",{"_index":1544,"title":{},"name":{},"text":{"20":{}},"component":{}}],["underscor",{"_index":2072,"title":{},"name":{},"text":{"32":{},"34":{}},"component":{}}],["understand",{"_index":167,"title":{"54":{}},"name":{"10":{},"11":{}},"text":{"1":{},"3":{},"6":{},"12":{},"23":{},"33":{},"37":{},"45":{},"46":{},"49":{},"54":{}},"component":{}}],["undo",{"_index":2666,"title":{},"name":{},"text":{"45":{}},"component":{}}],["unexpect",{"_index":2245,"title":{},"name":{},"text":{"33":{}},"component":{}}],["unidentifi",{"_index":2532,"title":{},"name":{},"text":{"41":{}},"component":{}}],["unidirect",{"_index":1444,"title":{},"name":{},"text":{"18":{}},"component":{}}],["uninstal",{"_index":2974,"title":{"50-2":{},"50-4":{},"50-8":{}},"name":{},"text":{"50":{}},"component":{}}],["uniqu",{"_index":671,"title":{},"name":{},"text":{"6":{},"12":{},"21":{},"37":{},"66":{}},"component":{}}],["unit",{"_index":141,"title":{},"name":{},"text":{"1":{},"14":{},"42":{},"43":{}},"component":{}}],["unknown",{"_index":991,"title":{},"name":{},"text":{"11":{},"35":{},"54":{}},"component":{}}],["unless",{"_index":495,"title":{},"name":{},"text":{"5":{},"16":{},"18":{}},"component":{}}],["unlik",{"_index":2098,"title":{},"name":{},"text":{"32":{},"46":{}},"component":{}}],["unpack",{"_index":3390,"title":{},"name":{},"text":{"72":{}},"component":{}}],["unpredict",{"_index":1105,"title":{},"name":{},"text":{"13":{}},"component":{}}],["unrespons",{"_index":1962,"title":{},"name":{},"text":{"27":{}},"component":{}}],["unselect",{"_index":3332,"title":{},"name":{},"text":{"66":{}},"component":{}}],["unsuccess",{"_index":2137,"title":{},"name":{},"text":{"33":{}},"component":{}}],["unsuccessfulli",{"_index":3339,"title":{},"name":{},"text":{"66":{}},"component":{}}],["unsupport",{"_index":2230,"title":{},"name":{},"text":{"33":{}},"component":{}}],["until",{"_index":784,"title":{},"name":{},"text":{"7":{},"8":{},"9":{},"20":{},"29":{},"42":{},"54":{},"67":{}},"component":{}}],["untilassert",{"_index":1998,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["untitl",{"_index":3382,"title":{},"name":{},"text":{"70":{}},"component":{}}],["up",{"_index":694,"title":{"65-4":{},"65-5":{}},"name":{},"text":{"6":{},"13":{},"14":{},"16":{},"18":{},"22":{},"27":{},"31":{},"33":{},"41":{},"47":{},"49":{},"50":{},"55":{},"67":{}},"component":{}}],["upcom",{"_index":943,"title":{},"name":{},"text":{"10":{}},"component":{}}],["updat",{"_index":585,"title":{},"name":{},"text":{"6":{},"10":{},"14":{},"16":{},"21":{},"27":{},"30":{},"31":{},"36":{},"47":{},"49":{},"53":{},"59":{},"62":{},"66":{},"68":{},"69":{},"70":{},"71":{},"73":{},"74":{}},"component":{}}],["upgrad",{"_index":149,"title":{},"name":{},"text":{"1":{},"2":{},"30":{},"31":{}},"component":{}}],["upload",{"_index":3346,"title":{},"name":{},"text":{"67":{},"71":{}},"component":{}}],["upon",{"_index":796,"title":{},"name":{},"text":{"8":{},"27":{},"42":{}},"component":{}}],["upper",{"_index":3391,"title":{},"name":{},"text":{"72":{}},"component":{}}],["upstream",{"_index":2816,"title":{},"name":{},"text":{"47":{},"49":{}},"component":{}}],["uri",{"_index":595,"title":{"34-2":{}},"name":{},"text":{"6":{},"7":{},"14":{},"16":{},"20":{},"23":{},"27":{},"34":{},"35":{},"36":{},"37":{},"60":{},"74":{}},"component":{}}],["url",{"_index":438,"title":{"34-4":{},"34-8":{},"36-5":{}},"name":{},"text":{"5":{},"6":{},"7":{},"14":{},"16":{},"20":{},"24":{},"26":{},"27":{},"28":{},"33":{},"34":{},"36":{},"37":{},"38":{},"42":{},"43":{},"47":{},"49":{},"50":{},"57":{},"58":{},"59":{},"60":{},"65":{},"68":{},"74":{}},"component":{}}],["url=http://localhost:8281/auth/realms/kogito/protocol/openid",{"_index":2195,"title":{},"name":{},"text":{"33":{}},"component":{}}],["url=https://example.com/oauth",{"_index":2104,"title":{},"name":{},"text":{"32":{}},"component":{}}],["url=jdbc:postgresql://localhost:5432/foobardb",{"_index":2031,"title":{},"name":{},"text":{"31":{}},"component":{}}],["url_to_json_schema",{"_index":776,"title":{},"name":{},"text":{"7":{}},"component":{}}],["us",{"_index":18,"title":{"18":{},"29":{},"30":{},"33":{},"38":{},"42":{},"43":{},"55":{},"67":{},"68":{},"69":{},"1-13":{},"16-4":{},"16-5":{},"26-2":{},"26-3":{},"27-5":{},"27-6":{},"29-2":{},"31-2":{},"31-3":{},"31-6":{},"31-7":{},"34-2":{},"34-8":{},"41-2":{},"41-3":{},"41-5":{},"42-2":{},"47-2":{},"49-6":{},"55-1":{},"55-3":{},"57-3":{},"57-4":{},"57-5":{},"58-3":{},"58-4":{},"58-5":{},"59-4":{},"59-5":{},"59-6":{},"65-3":{},"65-7":{},"69-2":{},"72-2":{},"74-6":{}},"name":{},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"62":{},"63":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{}},"component":{}}],["usag",{"_index":913,"title":{},"name":{},"text":{"10":{},"11":{},"19":{},"28":{},"32":{},"41":{},"47":{},"49":{}},"component":{}}],["usd",{"_index":2221,"title":{},"name":{},"text":{"33":{},"42":{}},"component":{}}],["usecloudevents=tru",{"_index":2489,"title":{},"name":{},"text":{"38":{}},"component":{}}],["used\\ncopi",{"_index":2844,"title":{},"name":{},"text":{"47":{}},"component":{}}],["useeventdrivendecisions=fals",{"_index":2492,"title":{},"name":{},"text":{"38":{}},"component":{}}],["useeventdrivenrules=fals",{"_index":2493,"title":{},"name":{},"text":{"38":{}},"component":{}}],["useexplainability=fals",{"_index":2490,"title":{},"name":{},"text":{"38":{}},"component":{}}],["usemonitoring=fals",{"_index":2487,"title":{},"name":{},"text":{"38":{}},"component":{}}],["useprocesssvg=fals",{"_index":2491,"title":{},"name":{},"text":{"38":{}},"component":{}}],["useprometheusmonitoring=fals",{"_index":2488,"title":{},"name":{},"text":{"38":{}},"component":{}}],["user",{"_index":253,"title":{},"name":{},"text":{"2":{},"14":{},"16":{},"19":{},"21":{},"25":{},"29":{},"35":{},"41":{},"45":{},"58":{}},"component":{}}],["user'",{"_index":2339,"title":{},"name":{},"text":{"35":{}},"component":{}}],["user/mi",{"_index":2554,"title":{},"name":{},"text":{"41":{}},"component":{}}],["user=foo",{"_index":2032,"title":{},"name":{},"text":{"31":{}},"component":{}}],["userid",{"_index":1497,"title":{},"name":{},"text":{"19":{}},"component":{}}],["usernam",{"_index":1346,"title":{},"name":{},"text":{"16":{},"27":{},"31":{},"32":{},"47":{},"69":{}},"component":{}}],["usetracing=fals",{"_index":2486,"title":{},"name":{},"text":{"38":{}},"component":{}}],["usr/local/bin",{"_index":2519,"title":{},"name":{},"text":{"41":{}},"component":{}}],["usr/local/bin/kn",{"_index":2523,"title":{},"name":{},"text":{"41":{}},"component":{}}],["usual",{"_index":1120,"title":{},"name":{},"text":{"14":{},"16":{},"36":{},"48":{},"60":{}},"component":{}}],["utc",{"_index":1659,"title":{},"name":{},"text":{"21":{}},"component":{}}],["utf",{"_index":1617,"title":{},"name":{},"text":{"21":{}},"component":{}}],["uuid",{"_index":1809,"title":{},"name":{},"text":{"26":{}},"component":{}}],["v",{"_index":2536,"title":{},"name":{},"text":{"41":{}},"component":{}}],["v0.8",{"_index":3019,"title":{"51-2":{}},"name":{},"text":{},"component":{}}],["v1",{"_index":1253,"title":{},"name":{},"text":{"14":{},"16":{},"27":{},"47":{},"48":{},"53":{}},"component":{}}],["v2",{"_index":1952,"title":{},"name":{},"text":{"27":{},"28":{}},"component":{}}],["v2.topic",{"_index":1958,"title":{},"name":{},"text":{"27":{}},"component":{}}],["v2/jobs/ev",{"_index":1943,"title":{},"name":{},"text":{"27":{}},"component":{}}],["valid",{"_index":92,"title":{},"name":{},"text":{"1":{},"6":{},"7":{},"11":{},"17":{},"19":{},"23":{},"29":{},"33":{},"35":{},"36":{},"42":{},"49":{},"51":{},"58":{},"65":{},"73":{},"74":{}},"component":{}}],["validateaccountemail",{"_index":1499,"title":{},"name":{},"text":{"19":{}},"component":{}}],["validateaccountemailev",{"_index":1498,"title":{},"name":{},"text":{"19":{}},"component":{}}],["validatedaccountemail",{"_index":1501,"title":{},"name":{},"text":{"19":{}},"component":{}}],["validatedaccountemailev",{"_index":1500,"title":{},"name":{},"text":{"19":{}},"component":{}}],["validateinput",{"_index":2141,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validateinputs(str",{"_index":2170,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validateinputsact",{"_index":2151,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validateintpu",{"_index":2162,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validationresult",{"_index":2169,"title":{},"name":{},"text":{"33":{}},"component":{}}],["validationresult(\"error",{"_index":2174,"title":{},"name":{},"text":{"33":{}},"component":{}}],["valu",{"_index":414,"title":{"6-5":{},"6-10":{},"35-1":{}},"name":{},"text":{"5":{},"6":{},"8":{},"10":{},"11":{},"14":{},"16":{},"17":{},"18":{},"19":{},"21":{},"25":{},"26":{},"27":{},"28":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"38":{},"41":{},"45":{},"46":{},"48":{},"55":{},"58":{},"59":{},"60":{},"65":{},"66":{},"69":{},"71":{},"73":{},"74":{}},"component":{}}],["value.deseri",{"_index":1447,"title":{},"name":{},"text":{"18":{}},"component":{}}],["value.seri",{"_index":1451,"title":{},"name":{},"text":{"18":{}},"component":{}}],["value1",{"_index":1731,"title":{},"name":{},"text":{"23":{}},"component":{}}],["value;oth",{"_index":3270,"title":{},"name":{},"text":{"60":{}},"component":{}}],["valuefrom",{"_index":1322,"title":{},"name":{},"text":{"16":{},"27":{}},"component":{}}],["vari",{"_index":2796,"title":{},"name":{},"text":{"46":{},"54":{}},"component":{}}],["variabl",{"_index":463,"title":{"27-4":{},"27-5":{},"34-8":{}},"name":{},"text":{"5":{},"6":{},"14":{},"16":{},"17":{},"27":{},"28":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"43":{},"59":{},"66":{}},"component":{}}],["variable_name=valu",{"_index":1874,"title":{},"name":{},"text":{"27":{}},"component":{}}],["variables:\"{\\\"it_approval\\\":true,\\\"candidate\\\":{\\\"name\\\":\\\"joe\\\",\\\"email\\\":\\\"jdoe@ts.com\\\",\\\"salary\\\":30000,\\\"skills\\\":\\\"java\\\"},\\\"hr_approval\\\":tru",{"_index":1200,"title":{},"name":{},"text":{"14":{}},"component":{}}],["variou",{"_index":394,"title":{},"name":{},"text":{"4":{},"36":{},"66":{},"67":{}},"component":{}}],["vendor",{"_index":2132,"title":{},"name":{},"text":{"33":{}},"component":{}}],["verb",{"_index":3287,"title":{},"name":{},"text":{"60":{}},"component":{}}],["verbos",{"_index":1611,"title":{},"name":{},"text":{"21":{},"41":{}},"component":{}}],["veri",{"_index":1968,"title":{},"name":{},"text":{"28":{},"47":{}},"component":{}}],["verif",{"_index":2001,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["verifi",{"_index":774,"title":{"57-1":{},"67-2":{}},"name":{},"text":{"7":{},"11":{},"17":{},"21":{},"29":{},"38":{},"41":{},"42":{},"45":{},"55":{},"57":{},"58":{},"59":{},"67":{}},"component":{}}],["verify=fals",{"_index":3243,"title":{},"name":{},"text":{"59":{}},"component":{}}],["verifyworkflowexecutionit",{"_index":2567,"title":{},"name":{},"text":{"42":{}},"component":{}}],["versa",{"_index":3025,"title":{},"name":{},"text":{"51":{}},"component":{}}],["version",{"_index":326,"title":{"52-1":{}},"name":{"61":{}},"text":{"4":{},"5":{},"7":{},"9":{},"13":{},"17":{},"21":{},"30":{},"31":{},"32":{},"33":{},"34":{},"36":{},"38":{},"43":{},"47":{},"49":{},"50":{},"51":{},"52":{},"55":{},"58":{},"59":{},"60":{},"68":{},"69":{}},"component":{}}],["version.failsafe.plugin",{"_index":1983,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["version=1.32.0",{"_index":2047,"title":{},"name":{},"text":{"31":{}},"component":{}}],["version=2.16.9.fin",{"_index":1604,"title":{},"name":{},"text":{"21":{}},"component":{}}],["vert.x",{"_index":1129,"title":{},"name":{},"text":{"14":{}},"component":{}}],["vertx",{"_index":1639,"title":{},"name":{},"text":{"21":{},"38":{}},"component":{}}],["via",{"_index":43,"title":{},"name":{},"text":{"1":{},"14":{},"23":{},"27":{},"31":{},"46":{},"47":{},"49":{},"53":{},"60":{},"65":{}},"component":{}}],["vice",{"_index":3024,"title":{},"name":{},"text":{"51":{}},"component":{}}],["view",{"_index":110,"title":{"63-1":{}},"name":{},"text":{"1":{},"22":{},"57":{},"58":{},"63":{},"64":{},"65":{},"66":{},"67":{},"72":{},"73":{},"74":{}},"component":{}}],["visaapprovedev",{"_index":885,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["visadeniedev",{"_index":887,"title":{},"name":{},"text":{"9":{},"46":{}},"component":{}}],["visit",{"_index":1941,"title":{},"name":{},"text":{"27":{},"31":{}},"component":{}}],["visual",{"_index":1579,"title":{},"name":{},"text":{"21":{},"22":{},"25":{},"26":{},"62":{},"73":{},"74":{}},"component":{}}],["void",{"_index":551,"title":{},"name":{},"text":{"6":{},"29":{},"37":{},"38":{},"42":{},"43":{}},"component":{}}],["volum",{"_index":1290,"title":{},"name":{},"text":{"16":{}},"component":{}}],["vs",{"_index":101,"title":{"74":{},"74-1":{},"74-3":{},"74-5":{}},"name":{},"text":{"1":{},"22":{},"73":{},"74":{}},"component":{}}],["vscode",{"_index":1721,"title":{},"name":{"74":{}},"text":{"23":{},"49":{}},"component":{}}],["vsix",{"_index":3399,"title":{},"name":{},"text":{"74":{}},"component":{}}],["w",{"_index":2941,"title":{},"name":{},"text":{"49":{}},"component":{}}],["wait",{"_index":473,"title":{},"name":{},"text":{"5":{},"9":{},"12":{},"13":{},"18":{},"19":{},"20":{},"27":{},"30":{},"32":{},"37":{},"42":{},"45":{},"46":{},"54":{},"57":{},"58":{},"59":{},"66":{}},"component":{}}],["wait&fir",{"_index":826,"title":{},"name":{},"text":{"8":{}},"component":{}}],["wait(eventinput",{"_index":2435,"title":{},"name":{},"text":{"37":{}},"component":{}}],["waitev",{"_index":964,"title":{},"name":{},"text":{"10":{},"12":{},"37":{}},"component":{}}],["waitforev",{"_index":815,"title":{},"name":{},"text":{"8":{},"9":{},"12":{},"20":{},"37":{},"46":{}},"component":{}}],["waitingforbuildreason",{"_index":3070,"title":{},"name":{},"text":{"54":{}},"component":{}}],["waitingfordeploy",{"_index":2942,"title":{},"name":{},"text":{"49":{},"54":{}},"component":{}}],["waitingforplatform",{"_index":3068,"title":{},"name":{},"text":{"54":{}},"component":{}}],["want",{"_index":383,"title":{},"name":{},"text":{"4":{},"6":{},"7":{},"8":{},"13":{},"15":{},"18":{},"23":{},"24":{},"27":{},"28":{},"31":{},"33":{},"35":{},"36":{},"41":{},"42":{},"43":{},"47":{},"49":{},"53":{},"60":{},"65":{},"70":{}},"component":{}}],["warn",{"_index":523,"title":{},"name":{},"text":{"6":{},"7":{},"21":{},"74":{}},"component":{}}],["watch",{"_index":2967,"title":{},"name":{},"text":{"49":{},"50":{}},"component":{}}],["way",{"_index":38,"title":{},"name":{},"text":{"1":{},"4":{},"6":{},"12":{},"14":{},"15":{},"16":{},"27":{},"35":{},"37":{},"41":{},"49":{},"53":{},"60":{}},"component":{}}],["web",{"_index":105,"title":{"67":{},"68":{},"69":{},"70":{},"68-1":{},"69-2":{},"70-1":{}},"name":{"67":{},"68":{},"69":{},"70":{},"71":{}},"text":{"1":{},"22":{},"36":{},"58":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{}},"component":{}}],["webclient.postabs(eventinput.geturi()).sendjson(builder.build()).tocompletionstag",{"_index":2442,"title":{},"name":{},"text":{"37":{}},"component":{}}],["webhook",{"_index":3022,"title":{},"name":{},"text":{"51":{},"57":{}},"component":{}}],["websit",{"_index":1774,"title":{},"name":{},"text":{"25":{},"26":{},"29":{},"31":{},"42":{}},"component":{}}],["welcom",{"_index":1074,"title":{},"name":{},"text":{"13":{}},"component":{}}],["well",{"_index":907,"title":{},"name":{},"text":{"9":{},"31":{},"35":{},"46":{}},"component":{}}],["weren’t",{"_index":1301,"title":{},"name":{},"text":{"16":{}},"component":{}}],["whatev",{"_index":566,"title":{},"name":{},"text":{"6":{}},"component":{}}],["whether",{"_index":910,"title":{},"name":{},"text":{"10":{},"11":{},"18":{},"20":{},"57":{},"58":{},"59":{},"74":{}},"component":{}}],["whoami",{"_index":3241,"title":{},"name":{},"text":{"59":{}},"component":{}}],["whole",{"_index":2876,"title":{},"name":{},"text":{"47":{}},"component":{}}],["width",{"_index":1832,"title":{},"name":{},"text":{"26":{}},"component":{}}],["willreturn(arespons",{"_index":2652,"title":{},"name":{},"text":{"43":{}},"component":{}}],["willreturn(aresponse().withstatus(404",{"_index":2662,"title":{},"name":{},"text":{"43":{}},"component":{}}],["willreturn(wiremock.arespons",{"_index":2624,"title":{},"name":{},"text":{"43":{}},"component":{}}],["window",{"_index":1749,"title":{},"name":{},"text":{"24":{},"33":{},"34":{},"58":{},"68":{},"69":{},"71":{}},"component":{}}],["wiremock",{"_index":135,"title":{"42":{},"43":{},"43-2":{},"43-3":{}},"name":{"42":{},"43":{}},"text":{"1":{},"17":{},"38":{},"42":{},"43":{}},"component":{}}],["wiremock.vers",{"_index":2614,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockconfigur",{"_index":2615,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockconfiguration#port(int",{"_index":2620,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockconfiguration.wiremockconfig().dynamicport",{"_index":2616,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserv",{"_index":2568,"title":{},"name":{},"text":{"42":{},"43":{}},"component":{}}],["wiremockserver(config",{"_index":2617,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver(options().port(8181",{"_index":2570,"title":{},"name":{},"text":{"42":{}},"component":{}}],["wiremockserver(wiremockconfiguration.wiremockconfig().dynamicport",{"_index":2649,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.baseurl",{"_index":2648,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.start",{"_index":2618,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.stop",{"_index":2631,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.stubfor(get(urlequalto(\"/rest/v2/name/greec",{"_index":2651,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wiremockserver.stubfor(wiremock.get(wiremock.urlequalto(\"/rest/v2/name/greec",{"_index":2623,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wish",{"_index":2808,"title":{},"name":{},"text":{"47":{},"60":{},"70":{}},"component":{}}],["with().pollinterval(1",{"_index":1997,"title":{},"name":{},"text":{"29":{},"42":{}},"component":{}}],["withdata(objectmapper.writevalueasbytes(collections.singletonmap(\"messag",{"_index":2441,"title":{},"name":{},"text":{"37":{}},"component":{}}],["withdata(objectmapper.writevalueasbytes(eventbodi",{"_index":1043,"title":{},"name":{},"text":{"12":{}},"component":{}}],["withextension(cloudeventextensionconstants.process_reference_id",{"_index":1042,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["withheader(\"cont",{"_index":2626,"title":{},"name":{},"text":{"43":{}},"component":{}}],["withid(uuid.randomuuid().tostr",{"_index":1038,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["within",{"_index":64,"title":{},"name":{},"text":{"1":{},"6":{},"10":{},"11":{},"17":{},"20":{},"34":{},"35":{},"42":{},"48":{},"53":{}},"component":{}}],["withjsonbody(greecepayload",{"_index":2627,"title":{},"name":{},"text":{"43":{}},"component":{}}],["without",{"_index":600,"title":{},"name":{},"text":{"6":{},"9":{},"12":{},"13":{},"15":{},"21":{},"27":{},"32":{},"37":{},"41":{},"74":{}},"component":{}}],["withsource(uri.cr",{"_index":1039,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["withstatus(200",{"_index":2625,"title":{},"name":{},"text":{"43":{}},"component":{}}],["withtime(offsetdatetime.now",{"_index":1041,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["withtype(\"wait",{"_index":1040,"title":{},"name":{},"text":{"12":{},"37":{}},"component":{}}],["won’t",{"_index":2022,"title":{},"name":{},"text":{"31":{},"47":{},"53":{}},"component":{}}],["word",{"_index":1063,"title":{},"name":{},"text":{"13":{},"50":{},"53":{}},"component":{}}],["worflow",{"_index":3045,"title":{},"name":{},"text":{"53":{}},"component":{}}],["work",{"_index":35,"title":{},"name":{"12":{},"13":{},"37":{}},"text":{"1":{},"2":{},"3":{},"4":{},"6":{},"9":{},"14":{},"15":{},"17":{},"20":{},"27":{},"28":{},"29":{},"31":{},"35":{},"42":{},"46":{},"47":{},"49":{},"50":{},"57":{},"58":{},"59":{},"60":{},"68":{},"73":{},"74":{}},"component":{}}],["workflow",{"_index":24,"title":{"4":{},"21":{},"25":{},"26":{},"30":{},"38":{},"47":{},"48":{},"49":{},"53":{},"54":{},"55":{},"57":{},"65":{},"66":{},"72":{},"73":{},"74":{},"4-4":{},"9-1":{},"9-6":{},"9-8":{},"13-1":{},"13-2":{},"13-3":{},"14-8":{},"15-2":{},"17-5":{},"18-1":{},"19-1":{},"21-2":{},"21-3":{},"21-4":{},"21-5":{},"23-3":{},"26-1":{},"27-1":{},"29-2":{},"33-1":{},"33-2":{},"34-6":{},"34-7":{},"35-2":{},"36-3":{},"36-4":{},"41-2":{},"41-3":{},"41-4":{},"41-5":{},"42-2":{},"45-2":{},"45-3":{},"46-1":{},"46-2":{},"46-3":{},"46-4":{},"46-6":{},"46-7":{},"47-2":{},"47-8":{},"47-11":{},"47-12":{},"48-1":{},"49-2":{},"49-3":{},"49-4":{},"49-5":{},"49-6":{},"49-7":{},"49-11":{},"49-12":{},"51-3":{},"53-1":{},"55-2":{},"55-3":{},"55-4":{},"57-2":{},"57-3":{},"57-4":{},"57-5":{},"58-2":{},"58-3":{},"58-4":{},"58-5":{},"59-2":{},"59-4":{},"59-5":{},"59-6":{},"63-1":{},"65-1":{},"65-2":{},"65-3":{},"65-4":{},"65-6":{},"65-7":{},"66-1":{},"66-2":{},"70-1":{},"72-1":{},"72-2":{},"73-1":{},"74-1":{},"74-2":{},"74-3":{},"74-4":{}},"name":{"4":{},"7":{},"8":{},"11":{},"19":{},"21":{},"39":{},"41":{},"47":{},"48":{},"49":{},"54":{},"55":{},"56":{},"61":{},"65":{},"66":{}},"text":{"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"41":{},"42":{},"43":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"53":{},"54":{},"55":{},"57":{},"58":{},"59":{},"60":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"70":{},"72":{},"73":{},"74":{}},"component":{}}],["workflow,quarku",{"_index":1596,"title":{},"name":{},"text":{"21":{}},"component":{}}],["workflow.instanceid",{"_index":869,"title":{},"name":{},"text":{"9":{},"23":{},"37":{},"46":{}},"component":{}}],["workflow.serverless",{"_index":3162,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["workflow.sw.json",{"_index":2138,"title":{},"name":{},"text":{"33":{},"41":{}},"component":{}}],["workflow.yaml",{"_index":2907,"title":{},"name":{},"text":{"47":{}},"component":{}}],["workflow/greet",{"_index":2945,"title":{},"name":{},"text":{"49":{}},"component":{}}],["workflow_devmode.yaml",{"_index":2947,"title":{},"name":{},"text":{"49":{}},"component":{}}],["workflow_timeout",{"_index":853,"title":{},"name":{},"text":{"9":{}},"component":{}}],["workflowdata",{"_index":565,"title":{},"name":{},"text":{"6":{},"33":{},"35":{},"38":{},"45":{},"49":{},"55":{}},"component":{}}],["workflowdata.greet",{"_index":2473,"title":{},"name":{},"text":{"38":{}},"component":{}}],["workflowexectimeout",{"_index":848,"title":{},"name":{},"text":{"9":{}},"component":{}}],["workflowid",{"_index":1733,"title":{},"name":{},"text":{"23":{}},"component":{}}],["workflowpath",{"_index":3048,"title":{},"name":{},"text":{"53":{}},"component":{}}],["workflowworkitemhandl",{"_index":700,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workflow’",{"_index":1271,"title":{},"name":{},"text":{"15":{},"46":{},"65":{}},"component":{}}],["workitem",{"_index":706,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workitem.getnodeinstance().getnode().getmetadata",{"_index":745,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workitemhandlerconfig",{"_index":702,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workitemnodefactori",{"_index":695,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workitemtypehandl",{"_index":692,"title":{},"name":{},"text":{"6":{}},"component":{}}],["workspac",{"_index":3344,"title":{"68-2":{},"68-3":{}},"name":{},"text":{"67":{},"68":{},"70":{},"73":{},"74":{}},"component":{}}],["world",{"_index":1570,"title":{},"name":{},"text":{"21":{},"41":{}},"component":{}}],["world\",\"mantra\":\"serverless",{"_index":1708,"title":{},"name":{},"text":{"21":{}},"component":{}}],["world:1.0.0",{"_index":1588,"title":{},"name":{},"text":{"21":{}},"component":{}}],["world:latest",{"_index":1610,"title":{},"name":{},"text":{"21":{}},"component":{}}],["wrap",{"_index":2658,"title":{},"name":{},"text":{"43":{}},"component":{}}],["wrapper",{"_index":574,"title":{},"name":{},"text":{"6":{}},"component":{}}],["write",{"_index":722,"title":{},"name":{},"text":{"6":{},"29":{},"71":{}},"component":{}}],["wrong",{"_index":976,"title":{"49-11":{},"49-12":{}},"name":{},"text":{"11":{},"31":{},"49":{},"54":{}},"component":{}}],["x",{"_index":949,"title":{},"name":{},"text":{"10":{},"13":{},"17":{},"21":{},"24":{},"33":{},"34":{},"35":{},"41":{},"45":{},"47":{},"55":{},"57":{},"58":{},"59":{}},"component":{}}],["x86_64",{"_index":1650,"title":{},"name":{},"text":{"21":{}},"component":{}}],["x=kogito",{"_index":1584,"title":{},"name":{},"text":{"21":{}},"component":{}}],["x=quarku",{"_index":1585,"title":{},"name":{},"text":{"21":{}},"component":{}}],["xattr",{"_index":3369,"title":{},"name":{},"text":{"69":{}},"component":{}}],["xml",{"_index":1718,"title":{},"name":{},"text":{"23":{}},"component":{}}],["y",{"_index":951,"title":{},"name":{},"text":{"10":{}},"component":{}}],["yaml",{"_index":294,"title":{},"name":{},"text":{"3":{},"10":{},"23":{},"26":{},"37":{},"49":{},"62":{},"70":{},"73":{},"74":{}},"component":{}}],["yamlgreet",{"_index":1789,"title":{},"name":{},"text":{"25":{},"26":{}},"component":{}}],["yaml|json",{"_index":3175,"title":{},"name":{},"text":{"57":{},"58":{},"59":{}},"component":{}}],["yard.yaml|yml",{"_index":3379,"title":{},"name":{},"text":{"70":{}},"component":{}}],["ye",{"_index":423,"title":{},"name":{},"text":{"5":{},"16":{}},"component":{}}],["yml",{"_index":2202,"title":{},"name":{},"text":{"33":{}},"component":{}}],["yourself",{"_index":1410,"title":{},"name":{},"text":{"17":{}},"component":{}}],["you’ll",{"_index":3320,"title":{},"name":{},"text":{"65":{}},"component":{}}],["you’r",{"_index":2807,"title":{},"name":{},"text":{"47":{},"49":{},"50":{},"69":{}},"component":{}}],["z0",{"_index":3411,"title":{},"name":{},"text":{"74":{}},"component":{}}],["za",{"_index":3410,"title":{},"name":{},"text":{"74":{}},"component":{}}],["zero",{"_index":1866,"title":{},"name":{},"text":{"27":{}},"component":{}}],["zip",{"_index":2034,"title":{},"name":{},"text":{"31":{},"72":{}},"component":{}}]],"pipeline":["stemmer"]},"store":{"documents":{"1":{"id":1,"text":"SonataFlow is a tool for building cloud-native workflow applications. You can use it to do the services and events orchestration and choreography. Currently, with SonataFlow you can integrate with services and events in your architecture using: CloudEvents. Ideal for an Event-Driven architecture where the services are ready to consume and produce events working in a more reactive way. Sync or Async REST services invocations via OpenAPI/Async API. There are options even to directly call a REST service in the architecture or ecosystem. Either async or sync methods are supported depending on your requirements. Internal Service execution or invocation. SonataFlow is also a workflow framework to build applications. You can use it to create custom services in the same thread to run a lightweight workflow-based application within the same instance. You can learn how to create, manage, and deploy your workflow applications with the following guides. Creating a Quarkus Workflow Project Learn how to create your first Quarkus Workflow Project Serverless Workflow Specification Learn about the CNCF Serverless Workflow Specification implementation Events in SonataFlow Learn how to use the Event state in your workflow application Callbacks in SonataFlow Learn how to use the Callback state in your workflow application jq Expressions Learn how to create jq expressions to manipulate data within a workflow execution Error handling in SonataFlow Learn how to handle errors in your workflow application Configuration properties in SonataFlow Quick reference of configuration properties in workflow Input and Output schema definition for SonataFlow Learn about the input schema definition used to validate the workflow data input against a defined JSON Schema Custom functions for your SonataFlow service Learn about the custom functions supported by Serverless Workflow Timeouts in SonataFlow Learn how to configure timeouts in the workflow Parallelism in SonataFlow Working with parallelism in your workflow project Serverless Workflow editor Learn how to install and use the Serverless Workflow editor VS Code extension for Serverless Workflow editor Learn how to install and use the VS Code extension for Serverless Workflow editor for creating workflows. Serverless Logic Web Tools Learn how to use Serverless Logic Web Tools for creating and managing workflows, decisions, and dashboards. Chrome extension for Serverless Workflow editor on GitHub Learn how to install and use the Chrome extension for Serverless Workflow editor to view and edit workflows directly in Github. Orchestrating OpenAPI Services Learn how to orchestrate REST services using OpenAPI specification descriptors OpenAPI Callback in SonataFlow Learn how to use the OpenAPI Callback in your workflow application Orchestrating gRPC based Services Learn about orchestrating gRPC services Orchestrating AsyncAPI Services Learn how to trigger and consume events using AsyncAPI specification descriptors Event correlation in SonataFlow Learn how to configure event correlation in your workflow application Consuming and producing events using Apache Kafka in Quarkus Learn how to configure your Quarkus Workflow Project to produce and consume events using Apache Kafka Consuming and producing events on Knative Eventing in Quarkus Learn how to configure your Quarkus Workflow Project to produce and consume events on Knative Eventing Authentication for OpenAPI services in SonataFlow Learn how to use authentication methods when calling REST services using OpenAPI specification Orchestration of third-party services using OAuth 2.0 authentication Learn about the OAuth2 method support when orchestrating REST services using your workflow application Kogito Serverless Workflow Tools extension in Quarkus Dev UI Learn how to use the Serverless Workflow extension in Quarkus Dev UI SonataFlow plug-in for Knative CLI Learn how to install the SonataFlow plug-in for Knative CLI Mocking HTTP CloudEvents sink using WireMock Testing Quarkus Workflow Project that uses HTTP CloudEvents and Knative Sink Binding Mocking OpenAPI services using WireMock Learn how to mock external REST requests when testing your Quarkus Workflow Project Testing your Quarkus Workflow Application using REST Assured Learn how to add unit tests in your Quarkus Workflow Project using RestAssured Running a Quarkus Workflow Application using PostgreSQL Running Quarkus Workflow Applications using PostgresSQL PostgreSQL Database Migration Migrating your existing PostgreSQL Database with changes from the SonataFlow upgrade using Flyway SonataFlow integration test using PostgreSQL Learn how to integrate tests on Quarkus Workflow Applications that use PostgreSQL as a persistence storage SonataFlow in the Cloud Learn about the options to deploy workflow applications in Kubernetes Integrating with Camel routes Learn how to use Camel Routes within your workflow application Invoking Knative services from SonataFlow Learn how to invoke Knative Services from SonataFlow custom functions Exposing Workflow base metrics to Prometheus Exposing the workflow base metrics to Prometheus Displaying Workflow Data in Dashboards Learn how to use dashboards to display the runtime data of your workflow application Introduction Details about Job Service to control timers in SonataFlow Job Service Quarkus Extensions Details about how to configure you Quarkus Workflow Project to interact with the Job Service in SonataFlow Data Index Core Concepts Learn Data Index core concepts, allowing to understand the purpose and the different deployment options that are provided. Data Index standalone service Go deeper in details about Data Index as standalone service deployment. Data Index Quarkus extension Explore Data Index as Quarkus extension in SonataFlow Saga orchestration example in SonataFlow Learn how and when to use the SAGA pattern in your workflow projects Timeouts Showcase in SonataFlow Learn how and when to use timeout in your workflow projects","title":"SonataFlow Guides","component":"serverlessworkflow","version":"1.43.0.Final","name":"index","url":"/serverlessworkflow/latest/index.html","titles":[{"text":"Getting started","hash":"_getting_started","id":1},{"text":"Core Concepts","hash":"_core_concepts","id":2},{"text":"Tooling","hash":"_tooling","id":3},{"text":"Service Orchestration","hash":"_service_orchestration","id":4},{"text":"Event Orchestration","hash":"_event_orchestration","id":5},{"text":"Security","hash":"_security","id":6},{"text":"Executing, Testing and Troubleshooting","hash":"_executing_testing_and_troubleshooting","id":7},{"text":"Persistence","hash":"_persistence","id":8},{"text":"Cloud","hash":"_cloud","id":9},{"text":"Integrations","hash":"_integrations","id":10},{"text":"Job Service","hash":"_job_service","id":11},{"text":"Data Index service","hash":"_data_index_service","id":12},{"text":"Use Cases","hash":"_use_cases","id":13}]},"2":{"id":2,"text":"KOGITO-9702 - [Operator] SonataFlow resources are not being added to container-builder build process KOGITO-9614 - Hot reload doesn’t work for workflows that use AsyncAPI KOGITO-9613 - Allow PostgreSQL persistence for process instance state when using SW executor KOGITO-8794 - [Operator] Handle deployment failures in prod profile KOGITO-9633 - tzdb.dat (No such file or directory) KOGITO-9653 - [SonataFlow Operator] Duplicated replicasets on dev profile KOGITO-9683 - [Operator] Review installation guide to use OperatorHub KOGITO-9665 - Deffer the injection of Processes in the Process Management Addon KOGITO-9643 - Align kogito-example dependencies with runtimes KOGITO-9605 - Change Knative Function tests so it can work with more than one KubernetesServiceCatalog implementation KOGITO-9603 - Create new endpoints to retrieve workflows and schema KOGITO-9218 - [Operator] Review Platform Conditions KOGITO-9158 - Use RestWorkItemHandler as HTTP client in Knative custom function KOGITO-8276 - [Operator] Improve the logging adding missing levels KOGITO-9415 - Added Live Reload support for CodeGenProviders KOGITO-9434 - Moving python modules under python profile KOGITO-9625 - Upgrade quarkus-openapi-generator to 1.3.8 KOGITO-9611 - Track user identity in Kogito events KOGITO-9659 - Workflow timeout not working using external Job Service (management-addon) KOGITO-9561 - Jobs service kafka and http messaging modularization KOGITO-9654 - Include kogito-addons-quarkus-process-management in kogito-swf-devmode-image KOGITO-8785 - [KSW-Operator] Review the reconciliation flow to follow the new conditions API refactoring KOGITO-9679 - Add the workflow-timeout SW to the timeouts-showcase UIs KOGITO-9321 - Testing Operator using Order SWF example","title":"New features on 1.43","component":"serverlessworkflow","version":"1.43.0.Final","name":"release_notes","url":"/serverlessworkflow/latest/release_notes.html","titles":[{"text":"Notable changes","hash":"_notable_changes","id":1},{"text":"Other changes and Bug fixes","hash":"_other_changes_and_bug_fixes","id":2}]},"3":{"id":3,"text":"SonataFlow is evolving as platform to build and deploy workflow applications in Kubernetes clusters. You have two options to deploy your workflow applications: either as a full Quarkus project or using the SonataFlow Operator. The cards below list all features included in the platform to deploy workflow applications either with Quarkus or the Operator. Eventually these two options will converge, the SonataFlow Operator will also be able to handle full Quarkus projects. So if you opt in to use Quarkus now and manually deploy your workflows, bear in mind that it’s on the project’s roadmap to integrate the Quarkus experience with the Operator. For developers that are looking for a native Kubernetes approach where you can model workflows using YAML definitions and directly deploy them, you can use the SonataFlow Operator. The operator registers a new Kubernetes resource in the cluster to manage your workflow development iteration cycle and composition of services and events. The application is managed by the operator. Install the SonataFlow Operator Learn how to install the SonataFlow Operator in a Kubernetes cluster Developing Workflow with the Operator Learn how to deploy a workflow for development purposes Referencing Additional Files in the Workflow Learn how to reference resource files to the workflow application Configuring Workflow Services Learn how to configure workflows deployed with SonataFlow Operator Understanding Workflow Services Status Conditions Learn to interpret the workflow resource status conditions Building and Deploying Workflows with the Operator Learn how to build and deploy workflow services with SonataFlow Operator SonataFlow Operator Known Issues, Limitations and Roadmap Learn about the known issues and feature roadmap of the SonataFlow Operator Migration Guide Migration guides For Java developers, you can use Quarkus and a few add-ons to help you build and deploy the application in a Kubernetes cluster. SonataFlow also generates basic Kubernetes objects YAML files to help you getting started. The application should be managed by a Kubernetes administrator. Building workflow images using Quarkus CLI Learn how to build images for your workflow applications using Quarkus CLI Kubernetes service discovery in SonataFlow Learn what is and how the Kubernetes service discovery for workflow application configuration works Deploying your SonataFlow application on OpenShift Learn how to deploy your workflow application on OpenShift cluster Deploying your SonataFlow application on Minikube Learn how to deploy your workflow application on Minikube for local tests and development Deploying your SonataFlow application on Kubernetes Learn how to deploy your workflow application on Kubernetes","title":"SonataFlow Applications in Cloud","component":"serverlessworkflow","version":"1.43.0.Final","name":"index","url":"/serverlessworkflow/latest/cloud/index.html","titles":[{"text":"Kubernetes with the Operator","hash":"_kubernetes_with_the_operator","id":1},{"text":"Kubernetes with Quarkus","hash":"_kubernetes_with_quarkus","id":2}]},"4":{"id":4,"text":"This document describes the information about the implementation of the Cloud Native Computing Foundation (CNCF) Serverless Workflow specification. SonataFlow implements version 0.8 of the Serverless Workflow specification. The following table shows the implementation status for each Serverless Workflow specification feature. SonataFlow does not support Retries, Sleep State, and has a limited support of Timeouts features of Serverless Workflow specification. Table 1. Implementation status icons Icon Description Fully implemented feature and compliant with the Serverless Workflow specification Partially implemented feature Not implemented Table 2. Implementation status of the Serverless Workflow specification features Feature Status Reference States Workflow States Functions Function Definition Events Event Definition Serverless Workflow data Workflow Data Expressions Workflow Expressions Error handling Workflow Error Handling Retries Retry Definition Timeouts Workflow Timeouts Compensation Workflow Compensation Constants Workflow Constants Secrets Workflow Secrets The Parallel State of the workflow states feature works in a single thread. This means that a Parallel State does not create one thread per branch, simulating an actual parallel behavior. If an exclusive property is set to `false`, you should not use the link:{spec_doc_url}#event-state[Event State] of the workflow states feature as the starting state. In case, if it is specified that way, then it will behave as if an exclusive property was set to `true`. SonataFlow does not support the Sleep State feature. However, this feature will be supported in a future release. The following table shows all the workflow states that SonataFlow supports in the Serverless Workflow specification 0.8 version: Table 3. Workflow States implementation status State Status Reference Event Event State Operation Operation State Switch Switch State Sleep Sleep State Parallel Parallel State Inject Inject State ForEach ForEach State Callback Callback State The following table shows the status of the workflow functions that SonataFlow supports: Table 4. Workflow Functions implementation status Function Status Reference REST Using Functions for RESTful Service Invocations RPC Using Functions for RPC Service Invocations Expression Using Functions for Expression Evaluation Async API Using Functions for Async API Service Invocations GraphQL Using Functions for GraphQL Service Invocations OData Using Functions for OData Service Invocations Custom Defining custom function types For additional functions, the Serverless Workflow specification support the custom function type, such as sysout and java. For more information about these custom function types, see Custom functions for your SonataFlow service. SonataFlow supports events of the workflow model as defined in the Serverless Workflow specification definition, except the following: resultEventRef property in EventRefDefinition is not implemented and, if specified, this property is ignored. The same functionality can be achieved by using Callback state. Correlation has limited support, that evaluates correlation rules matching a single event consumed per time with a workflow instance. The correlation among N different events to be consumed and matched with a workflow instance is not supported in SonataFlow. For more information about event correlation, see Event correlation in SonataFlow. SonataFlow supports the implementation of the data manipulation feature using jq (default) or jsonpath expressions. jsonpath expressions can have limitations in specific scenarios of complex data manipulation. For more information, see Workflow Data section in the Serverless Workflow specification documentation. SonataFlow also supports data filtering. For more information about the data filtering, see State data filters section in the Serverless Workflow specification documentation. SonataFlow supports jq or jsonpath to define the workflow expressions. jq is the default expression language, however, if you want to use jsonpath, set the expressionLang attribute in the workflow definition as shown in the following example: Example of changing the default expression language { \"id\": \"myworkflow\", \"version\": \"1.0\", \"expressionLang\": \"jsonpath\", \"name\": \"Workflow example\", \"description\": \"An example of how to use jsonpath expressions\" } jsonpath expression is not recommended because of the limitations of the language for data manipulation. Instead, you can use jq in various use cases. SonataFlow supports the error handling feature as described in the Serverless Workflow specification definition. For more information about error handling, see Error handling in SonataFlow. SonataFlow does not support Retries feature, however, it will be implemented in a future release. Alternatively, you can use Error handling in SonataFlow. SonataFlow has limited support for the timeouts feature, which covers only workflow and event timeouts. For start event state the exclusive property is not supported if set to false, therefore the timeout is not supported for the event state when starting a workflow. For more information about timeouts, see Timeouts on events for SonataFlow. SonataFlow supports workflow compensation as described in the Serverless Workflow specification definition. For more information about compensations, see Saga orchestration example in SonataFlow. SonataFlow supports workflow constants as described in the Serverless Workflow specification definition. SonataFlow supports workflow secrets as described in the Serverless Workflow specification definition. Secrets are associated with the Quarkus Configuration module. This means that any form of configuration that Quarkus supports is also supported in SonataFlow. Creating your first workflow service Getting familiar with SonataFlow tooling If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Serverless Workflow Specification","component":"serverlessworkflow","version":"1.43.0.Final","name":"cncf-serverless-workflow-specification-support","url":"/serverlessworkflow/latest/core/cncf-serverless-workflow-specification-support.html","titles":[{"text":"States","hash":"states","id":1},{"text":"Functions","hash":"functions","id":2},{"text":"Events","hash":"events","id":3},{"text":"Serverless Workflow data","hash":"workflow_data","id":4},{"text":"Expressions","hash":"expressions","id":5},{"text":"Error handling","hash":"error_handling","id":6},{"text":"Retries","hash":"retries","id":7},{"text":"Timeouts","hash":"timeouts","id":8},{"text":"Compensation","hash":"compensation","id":9},{"text":"Constants","hash":"constants","id":10},{"text":"Secrets","hash":"secrets","id":11},{"text":"Additional resources","hash":"_additional_resources","id":12},{"text":"Found an issue?","hash":"_found_an_issue","id":13}]},"5":{"id":5,"text":"The following table serves as a quick reference for commonly used configuration properties supported in SonataFlow. You can define the following properties in the src/main/resources/application.properties file of your project. Table 1. Common configuration properties Property Description Type Default value Override at runtime kogito.persistence.type Defines the type of persistence database. The possible values of this property include: jdbc mongodb filesystem kafka infinispan postgresql string Yes kogito.persistence.query.timeout.millis Defines timeout for a query execution. long 10000 Yes kogito.persistence.optimistic.lock Enables or disables the optimistic locking. boolean false Yes kogito.workflow.version-strategy Defines strategy to resolve a process version to use. The possible values of this property include: * workflow * project string workflow No kogito.service.url Defines the service URL needed to connect to the runtime endpoint from outside the service. string Yes kogito.messaging.as-cloudevents Enables a service to use CloudEvents. boolean true No kogito.addon.messaging.incoming.defaultName Defines the default name of the incoming channel. string kogito_incoming_stream No kogito.addon.messaging.outgoing.defaultName Defines the default name of the outgoing channel. string kogito_outgoing_stream No kogito.jackson.fail-on-empty-bean If this property is set as true, Jackson fails on an empty bean. boolean false No kogito.sw.operationIdStrategy Defines strategy to generate the configuration key of open API specifications. The possible values of this property include: file_name full_uri spec_title function_name string file_name No kogito.sw.states.foreach.outputVarName Defines the variable name for foreach loop. string _swf_eval_temp No kogito.grpc.enum.includeDefault Indicates if the default value of enumerations needs to be included in gRPC response. boolean false No kogito.grpc.stream.timeout Number of seconds to wait for a response from the server when using streams. int 20 No kogito.quarkus.events.threads.poolSize Defines the ThreadPoolExecutor maximum number of threads to allow in the pool. int 10 Yes kogito.quarkus.events.threads.queueSize Defines the ThreadPoolExecutor queue size to use for holding tasks before the tasks are executed. int 1 Yes quarkus.kogito.logger.always-include Enables you to include the workflow debug logger everytime. By default, this property is included in development and test mode. boolean false No quarkus.kogito.devservices.enabled Enables or disables the Dev Services for Kogito. By default, the Dev Services are enabled, unless an existing configuration is present. boolean true No quarkus.kogito.devservices.port Defines the optional fixed port that the Dev Services listen to. int 8180 No quarkus.kogito.devservices.image-name Defines the Data Index image to use. string quay.io/kiegroup/kogito-data-index-ephemeral:1.43.0.Final No quarkus.kogito.devservices.shared Indicates if the Data Index instance, which is managed by Quarkus Dev Services, is shared. boolean true No quarkus.kogito.devservices.service-name Defines the value of the label that is attached to the started container. This property is used when shared is set to true. string kogito-data-index No If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Configuration properties in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"configuration-properties","url":"/serverlessworkflow/latest/core/configuration-properties.html","titles":[{"text":"Found an issue?","hash":"_found_an_issue","id":1}]},"6":{"id":6,"text":"The Cloud Native Computing Foundation (CNCF) specification supports the custom function type, which enables the implementations to extend the function definition capability. SonataFlow supports the java and sysout custom types. The CNCF specification does not support java and sysout functions. Therefore, these functions might not be portable across other implementations. You can use the sysout function for logging as shown in the following example: Example of sysout function definition { \"functions\": [ { \"name\": \"logInfo\", \"type\": \"custom\", \"operation\": \"sysout:INFO\" } ] } The string after the : is optional and is used to indicate the log level. The possible values are TRACE, DEBUG, INFO, WARN, and ERROR. If not present, INFO is considered by default. In the state definition, you can call the same sysout function as shown in the following example: Example of a sysout function reference within a state { \"states\": [ { \"name\": \"myState\", \"type\": \"operation\", \"actions\": [ { \"name\": \"printAction\", \"functionRef\": { \"refName\": \"logInfo\", \"arguments\": { \"message\": \"\\\"Workflow model is \\\\(.)\\\"\" } } } ] } ] } message argument can be a jq expression or a jq string using interpolation, as in the example above SonataFlow supports the java functions within an Apache Maven project, in which you define your workflow service. The following example shows the declaration of a java function: Example of a java function declaration { \"functions\": [ { \"name\": \"myFunction\", (1) \"type\": \"custom\", (2) \"operation\": \"service:java:com.acme.MyInterfaceOrClass::myMethod\" (3) } ] } 1 myFunction is the function name 2 custom is the function type 3 service:java:com.acme.MyInterfaceOrClass::myMethod is the custom operation definition. In the custom operation definition, service is the reserved operation keyword followed by the java keyword. com.acme.MyInterfaceOrClass is the FQCN (Fully Qualified Class Name) of the interface or implementation class followed by the method name (myMethod). Your method interface signature must copy the arguments passed by the workflow. For example, if you invoke a function using one argument as follows, then your method signature assumes that the number model variable is an integer: Example of a java function reference with one argument { \"functionRef\": { \"refName\": \"myFunction\", \"arguments\": { \"number\": \"${.number}\" } } } Example of a java function implementation public class MyInterfaceOrClass { public void myMethod(int number) { if (number % 2 != 0) { throw new IllegalArgumentException(\"Odd situation\"); } } } As a particular case, if you provide no argument in the workflow definition, the signature of the Java method might include a Jackson’s JsonNode parameter. This means that the Java method expects the entire workflow model as input. When using the following example function reference with no arguments, and if the method signature contains a JsonNode parameter, the entire workflow model is passed when the method call is performed. Example of a java function reference with no arguments { \"functionRef\": { \"refName\": \"myFunction\" } } Example of a java function implementation public class MyInterfaceOrClass { public JsonNode myMethod(JsonNode workflowData) { // do whatever I want with the Workflow model ...... // return the modified content: return workflowData; } } If your method returns a JsonNode, the content of that node is merged into the workflow model (you can use an action data filter to control what is merged). The same occurs if your method returns any Java Object descendant that is not a primitive wrapper, the Java object is recursively converted to a JSON object and the result is merged into the workflow model (you can use an action data filter to control what is merged). If your method returns a primitive type or their corresponding wrapper object (int, boolean, long, and so on), then the primitive value is added to the workflow model with the name response (you can change that name using an action data filter). If your method returns Java collections, it is converted to a JSON array and added to the workflow model with the name response (you can change that name using an action data filter). If you need access to process contextual information (for example, Kogito process instance ID) inside your Java service, you can add a KogitoProcessContext parameter as the last one in the method signature. Therefore, if you need to do so, you can update the signature of methods from previous sections. Example of a function accessing Kogito context public class MyInterfaceOrClass { public JsonNode myMethod(JsonNode workflowData, KogitoProcessContext context ) { // do whatever I want with the JsonNode and the Kogito process context ...... // return the modified content: return workflowData; } } Example of a function accessing Kogito context public class MyInterfaceOrClass { public void myMethod(int number, KogitoProcessContext context) { if (number % 2 != 0) { throw new IllegalArgumentException(\"Odd situation\"); } } } Avoid using java functions to call the external services, instead, you can use the services orchestration features. Kogito supports the Camel Routes functions within an Apache Maven project, in which you define your workflow service. This section briefly exemplifies how to define and use Camel Routes within your workflow application. For more information, see the Integrating with Camel Routes. The following example shows the declaration of a Camel function: { \"functions\": [ { \"name\": \"myCamelEndpoint\", (1) \"type\": \"custom\", (2) \"operation\": \"camel:direct:myendpoint\" (3) } ] } 1 myCamelEndpoint is the function name 2 custom is the function type 3 camel:direct:myendpoint is the custom operation definition. In this definition, camel is the reserved keyword followed by the direct endpoint. Camel Direct is the only supported consumer by SonataFlow. Finally, myendpoint is the endpoint URI name found in the route within your project’s context. The Camel function arguments must follow a specific structure when passing data from the workflow state to the route. The body and headers are the only attributes supported in the function arguments. Both are optional if you need to call the Camel routes without arguments. The only constraint is that you can not call a Camel route with only headers. The following examples display valid argument structures for Camel function arguments: Example calling a Camel route using body and headers { \"functionRef\": { \"refName\": \"myCamelEndpoint\", \"arguments\": { \"body\": \"${ .my.body.data }\", (1) \"headers\": { (2) \"key1\": \"${ .my.value }\", \"key2\": \"${ .my.other.value }\" } } } } 1 jq expression filtering the state data for the body argument. 2 JSON key/value pair for the headers argument. A jq expression returning the same JSON object is also valid. Example calling a Camel route using body { \"functionRef\": { \"refName\": \"myCamelEndpoint\", \"arguments\": { \"body\": \"${ .my.body.data }\" } } } Example calling a Camel route without arguments { \"functionRef\": { \"refName\": \"myCamelEndpoint\" } } Example calling a Camel route with only one argument { \"functionRef\": { \"refName\": \"myCamelEndpoint\", \"arguments\": \"${ .my.body.data }\" } } In this last example, the jq expression result is used as the body argument in a way to simplify the definition. The Camel route is responsible to produce the return value in a way that the workflow can understand. The following are considered valid objects: A string that contains a valid JSON object A valid Java bean that can be serialized to JSON A Jackson’s JsonNode object Any primitive type (Integer, Float, Decimal, String, etc) SonataFlow provides an implementation of a custom function through the knative-serving add-on to invoke Knative services. It allows you to have a static URI, defining a Knative service, which is used to perform HTTP requests. The Knative service defined in the URI is queried in the current Knative cluster and translated to a valid URL. This section briefly exemplifies how to define and use Knative custom functions within your workflow application. For more information, see Invoking Knative services from Serverless Workflow. Given the following deployed Knative service: $ kn service list NAME URL LATEST AGE CONDITIONS READY REASON custom-function-knative-service http://custom-function-knative-service.default.10.109.169.193.sslip.io custom-function-knative-service-00001 3h16m 3 OK / 3 True You can declare a SonataFlow custom function using the Knative service name, like the following: \"functions\": [ { \"name\": \"greet\", (1) \"type\": \"custom\", (2) \"operation\": \"knative:services.v1.serving.knative.dev/custom-function-knative-service?path=/plainJsonFunction\", (3) } ] 1 greet is the function name 2 custom is the function type 3 In operation you set the coordinates of the Knative service The above function will send a POST request to the http://custom-function-knative-service.default.10.109.169.193.sslip.io/plainJsonFunction URL. If you don’t specify a path, SonataFlow will use the root path (/). GET requests are not yet supported. Note that in the above example, you declared only the name of the service you wanted to call, but not a namespace. In this case, SonataFlow will look for a Knative service in the same namespace the workflow service is running. In case you need to call a Knative service in a different namespace, you can declare the function as: \"functions\": [ { \"name\": \"greet\", \"type\": \"custom\", \"operation\": \"knative:services.v1.serving.knative.dev/my_different_namespace/custom-function-knative-service?path=/plainJsonFunction\" } ] In the above example, SonataFlow will look for the custom-function-knative-service in the my_different_namespace namespace. In case you need to send a payload in the request, you can add it to arguments in functionRef. You must send the following JSON object as the payload: { \"product_id\": \".product_id\", \"customer_name\": \".customer_name\" } You must declare a functionRef like the following. \"states\": [ { \"name\": \"invokeFunction\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": { \"refName\": \"greet\", \"arguments\": { (1) \"product_id\": \".product_id\", \"customer_name\": \".customer_name\" } } } ], \"end\": true } ] 1 The request payload is set in arguments. By default, SonataFlow sends the payload of a Knative function as a regular JSON object and Content-Type as application/json. However, you can tell SonataFlow to send the payload as a CloudEvent. In that case, SonataFlow will check if the CloudEvent has all mandatory attributes set and use application/cloudevents+json; charset=UTF-8 in Content-Type. To tell SonataFlow you want to send the payload as a CloudEvent, you must define your function as follows: \"functions\": [ { \"name\": \"greet\", \"type\": \"custom\", \"operation\": \"knative:services.v1.serving.knative.dev/custom-function-knative-service?path=/plainJsonFunction&asCloudEvent=true\" (1) } ] 1 Tells SonataFlow to send the payload as a CloudEvent. Default is false If you do not set the asCloudEvent attribute to true, you can not send a CloudEvent. If you do so, SonataFlow will throw an error. You must send the following CloudEvent as the payload: { \"specversion\" : \"1.0\", \"type\" : \"com.github.pull_request.opened\", \"source\" : \"https://github.com/cloudevents/spec/pull\", \"subject\" : \"123\", \"time\" : \"2018-04-05T17:31:00Z\", \"comexampleextension1\" : \"value\", \"comexampleothervalue\" : 5, \"datacontenttype\" : \"text/xml\", \"data\" : \"\" } You must declare a functionRef like the following: (Do not forget to set asCloudEvent as true in function metadata) \"states\": [ { \"name\": \"invokeFunction\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": { \"refName\": \"greet\", \"arguments\": { (1) \"specversion\" : \"1.0\", \"type\" : \"com.github.pull_request.opened\", \"source\" : \"https://github.com/cloudevents/spec/pull\", \"subject\" : \"123\", \"time\" : \"2018-04-05T17:31:00Z\", \"comexampleextension1\" : \"value\", \"comexampleothervalue\" : 5, \"datacontenttype\" : \"text/xml\", \"data\" : \"\" } } } ], \"end\": true } ] 1 The CloudEvent is set in arguments. SonataFlow generates a CloudEvent ID based on the source and the workflow instance ID. In case you decide to set an ID, SonataFlow will use it and you must ensure it’s unique. Refer to the following example on how to set a CloudEvent ID: Setting a CloudEvent ID \"arguments\": { \"specversion\" : \"1.0\", \"id\": \"a_unique_id_42\", (1) \"type\" : \"com.github.pull_request.opened\", \"source\" : \"https://github.com/cloudevents/spec/pull\", \"subject\" : \"123\", \"time\" : \"2018-04-05T17:31:00Z\", \"comexampleextension1\" : \"value\", \"comexampleothervalue\" : 5, \"datacontenttype\" : \"text/xml\", \"data\" : \"\" } 1 The CloudEvent ID. By default, the Knative service must respond within 10 seconds. You can use the kogito.sw.functions..timeout property to configure this value. For instance, if you want to reduce the request timeout to 5 seconds, you must add the following to your application.properties file: kogito.sw.functions.greet.timeout=5000 (1) 1 Time in milliseconds You can add your custom types by using the Kogito add-on mechanism. As predefined custom types like sysout or java, the custom type identifier is the prefix of the operation field of the function definition. Kogito add-ons relies on the Quarkus extensions mechanism. And the add-on consists of at least two Maven projects: The deployment module, which is responsible for generating the code required for the extension to work. The runtime module, which includes the non-generated classes that are required for the extension to work. In the case of a Serverless Workflow custom type, following are the roles of the modules: The deployment project The deployment project is expected to configure the work item handler used during runtime to perform the logic associated with the custom type. It must contain a Java class that inherits from WorkItemTypeHandler. Its responsibilities are to indicate the custom type identifier (the operation prefix, as indicated earlier) and to set up the WorkItemNodeFactory instance passed as a parameter of the fillWorkItemHandler method. That instance is included in the Kogito process definition for that Workflow. As a part of this setup, you must indicate the name of the WorkItemNodeFactory. You might also provide any relevant metadata for that handler if needed. The runtime project The runtime project consists of a WorkflowWorkItemHandler implementation, which name must match with the one provided to WorkItemNodeFactory during the deployment phase, and a WorkItemHandlerConfig bean that registers that handler with that name. When a Serverless Workflow function is called, Kogito identifies the proper WorkflowWorkItemHandler instance to be used for that function type (using the handler name associated with that type by the deployment project) and then invokes the internalExecute method. The Map parameter contains the function arguments defined in the workflow, and the WorkItem parameter contains the metadata information added to the handler by the deployment project. Hence, the executeWorkItem implementation has an access to all the information needed to perform the computational logic intended for that custom type. Assuming you want to interact, from a workflow file, with a legacy RPC server as the one defined in this project. This legacy server supports four simple arithmetic operations: add, minus, multiply and divide, which can be invoked using a custom RPC protocol. Since this is an uncommon protocol, the workflow cannot handle them by using any of the predefined Serverless Workflow function types. The available options are to use a Java service, which invokes a Java class that knows how to interact with the server, or define a custom type that knows how to interact with the service. Using the recent approach, you can write a workflow file defining this function. RPC Custom function definition example \"functions\": [ { \"name\": \"division\", \"type\": \"custom\", \"operation\": \"rpc:division\" } ], The operation starts with rpc, which is the custom type identifier, and continues with division, which denotes the operation that will be executed in the legacy server. A Kogito addon that defines the rpc custom type must be developed for this function definition to be identified. It is consist of a deployment project and a runtime project. The deployment project is responsible for extending the WorkItemTypeHandler and setup the WorkItemNodeFactory as follows: Example of the RPC function Java implementation import static org.kie.kogito.examples.sw.custom.RPCCustomWorkItemHandler.NAME; import static org.kie.kogito.examples.sw.custom.RPCCustomWorkItemHandler.OPERATION; public class RPCCustomTypeHandler extends WorkItemTypeHandler{ @Override public String type() { return \"rpc\"; } @Override protected > WorkItemNodeFactory fillWorkItemHandler(Workflow workflow, ParserContext context, WorkItemNodeFactory node, FunctionDefinition functionDef) { return node.workName(NAME).metaData(OPERATION, trimCustomOperation(functionDef)); } } This example setups the name of the KogitoWorkItemHandler, adds a metadata key with the name of the remote operation (extracted from the Serverless Workflow function definition operation property), and declares that the custom type is named as rpc. The Runtime project contains the KogitoWorkItemHandler and the WorkItemHandlerConfig implementations. As expected, RPCCustomWorkItemHandler implements the internalExecute method as follows: Example of implementation of the internalExecute method @Override protected Object internalExecute(KogitoWorkItem workItem, Map parameters) { try { Iterator iter = parameters.values().iterator(); Map metadata = workItem.getNodeInstance().getNode().getMetaData(); String operationId = (String) metadata.get(OPERATION); if (operationId == null) { throw new IllegalArgumentException (\"Operation is a mandatory parameter\"); } return CalculatorClient.invokeOperation((String)metadata.getOrDefault(HOST,\"localhost\"), (int) metadata.getOrDefault(PORT, 8082), OperationId.valueOf(operationId.toUpperCase()), (Integer)iter.next(), (Integer)iter.next()); } catch (IOException io ) { throw new UncheckedIOException(io); } } The implementation invokes the CalculatorClient.invokeOperation, a java static method that knows how to interact with the legacy service. You can obtain the operation parameter from the WorkItem metadata. The dividend and the divisor parameters are obtained from the Map parameter, which contains the function arguments defined in the workflow file. Example of the custom function call from the workflow definition { \"actions\":[ { \"functionRef\":{ \"refName\":\"division\", \"arguments\":{ \"dividend\":\".dividend\", \"divisor\":\".divisor\" } } } ] } The RPCCustomWorkItemHandlerConfig is a bean that registers the handler name. Example of injecting the custom`WorkItemHandler` @Inject RPCCustomWorkItemHandler handler; @PostConstruct void init () { register(handler.getName(),handler); } CNCF Serverless Workflow specification jq expressions in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Custom functions for your SonataFlow service","component":"serverlessworkflow","version":"1.43.0.Final","name":"custom-functions-support","url":"/serverlessworkflow/latest/core/custom-functions-support.html","titles":[{"text":"Sysout custom function","hash":"con-func-sysout","id":1},{"text":"Java custom function","hash":"con-func-java","id":2},{"text":"Function Definition","hash":"_function_definition","id":3},{"text":"Function Arguments","hash":"_function_arguments","id":4},{"text":"Function return values","hash":"_function_return_values","id":5},{"text":"Function accessing Kogito context","hash":"_function_accessing_kogito_context","id":6},{"text":"Camel custom function","hash":"con-func-camel","id":7},{"text":"Function definition","hash":"_function_definition_2","id":8},{"text":"Function arguments","hash":"_function_arguments_2","id":9},{"text":"Function return values","hash":"_function_return_values_2","id":10},{"text":"Knative custom function","hash":"con-func-knative","id":11},{"text":"Function definition","hash":"_function_definition_3","id":12},{"text":"About namespaces","hash":"about-namespaces","id":13},{"text":"Function arguments","hash":"_function_arguments_3","id":14},{"text":"Sending a regular JSON object","hash":"_sending_a_regular_json_object","id":15},{"text":"Sending a CloudEvent","hash":"sending-cloudevents","id":16},{"text":"Configurations","hash":"_configurations","id":17},{"text":"Request timeout","hash":"_request_timeout","id":18},{"text":"Custom function types","hash":"_custom_function_types","id":19},{"text":"Custom function type example","hash":"_custom_function_type_example","id":20},{"text":"Additional resources","hash":"_additional_resources","id":21},{"text":"Found an issue?","hash":"_found_an_issue","id":22}]},"7":{"id":7,"text":"The dataInputSchema in the Serverless Workflow specification is a parameter used in the workflow definition. The dataInputSchema parameter validates the workflow data input against a defined JSON Schema. It is important to provide dataInputSchema, as it is used to verify if the provided workflow data input is correct before any workflow states are executed. You can define a dataInputSchema as follows: dataInputSchema definition \"dataInputSchema\": { \"schema\": \"URL_to_json_schema\", \"failOnValidationErrors\": false } In the previous definition, the schema property is a URI, which holds the path to the JSON schema used to validate the workflow data input. The URI can be a classpath URI, a file, or an HTTP URL. If a classpath URI is specified, then the JSON schema file must be placed in the resources section of the project or any other directory included in the classpath. failOnValidationErrors is an optional flag that indicates the behavior adopted when the input data does not match the specified JSON schema. If not specified or set to true, an exception will be thrown and flow execution will fail. If set to false, the flow will be executed and a log of level WARN with the validation errors will be printed. Serverless Workflow specification does not support JSON output schema until version 0.9. Therefore SonataFlow is implementing it as a Serverless Workflow specification extension. Output schema is applied after workflow execution to verify that the output model has the expected format. It is also useful for Swagger generation purposes. Similar to Input schema, you must specify the URL to the JSON schema, using outputSchema as follows: outputSchema definition \"extensions\" : [ { \"extensionid\": \"workflow-output-schema\", \"outputSchema\": { \"schema\" : \"URL_to_json_schema\", \"failOnValidationErrors\": false } ] The same rules described for dataInputSchema apply for schema and failOnValidationErrors. The difference is that the latter flag is applied after workflow execution. You can see the serverless-workflow-expression-quarkus example application of a workflow definition with dataInputSchema and outputSchema. When a workflow definition contains a dataInputSchema and/or outputSchema attribute, the workflow application generates an OpenAPI file, such as http://localhost:8080/q/openapi. The generated OpenAPI file references the schema file, which helps in defining the input and checking the output data for the workflows. For more information about the OpenAPI file, see OpenAPI specification. If you want to generate an OpenAPI file for a workflow, then you must add the Quarkus dependency in the project. Example component section with schema in an OpenAPI file components: schemas: GeneralError: type: object properties: code: format: int32 type: integer message: type: string Orchestrating the OpenAPI services Configuring the OpenAPI services endpoints If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Input and Output schema definition for SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"defining-an-input-schema-for-workflows","url":"/serverlessworkflow/latest/core/defining-an-input-schema-for-workflows.html","titles":[{"text":"Input schema","hash":"_input_schema","id":1},{"text":"Output schema","hash":"_output_schema","id":2},{"text":"Example with dataInputSchema and outputSchema","hash":"_example_with_datainputschema_and_outputschema","id":3},{"text":"Swagger documentation","hash":"_swagger_documentation","id":4},{"text":"Additional resources","hash":"_additional_resources","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"8":{"id":8,"text":"This document describes event state in a workflow. You can use the event state to start a new workflow instance upon the reception of a designated CloudEvent or to pause the execution of an existing workflow instance until a designated CloudEvent is received. An event state consists of one or more event definitions. Event definitions are combined to designate the CloudEvent types that the event state listens to. In an event definition, the onEvents property is used to group the CloudEvent types that might trigger the same set of actions. The exclusive property in an event definition indicates how an event match is calculated. In case the value of exclusive property is false, then all CloudEvent types in the eventRefs array must be received for a match to occur. Otherwise, the reception of the referenced CloudEvent types is considered a match. The following is an example of event definitions, consisting of two CloudEvent types including noisy and silent: Example event definitions \"events\": [ { \"name\": \"noisyEvent\", \"source\": \"\", \"type\": \"noisy\", \"dataOnly\" : \"false\" }, { \"name\": \"silentEvent\", \"source\": \"\", \"type\": \"silent\" } ] To indicate that an event match occurs when both noisy and silent CloudEvent types are received and to execute different actions for both CloudEvent types, define an event state containing both event definitions in separate onEvent items and set exclusive property to false. Example event state defintion with multiple onEvent items { \"name\": \"waitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"noisyEvent\" ], \"actions\": [ { \"functionRef\": \"letsGetLoud\" } ] }, { \"eventRefs\": [ \"silentEvent\" ], \"actions\": [ { \"functionRef\": \"beQuiet\" } ] } ] , \"exclusive\": false } To execute the same action when both event types are received, use only one onEvent item as shown in the following example: Example event state definition with single onEvent item { \"name\": \"waitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"noisyEvent\", \"silentEvent\" ], \"actions\": [ { \"functionRef\": \"notCareAboutNoise\" } ] } ] , \"exclusive\": false } If you want the same action to be executed when any of the event types is received, set the exclusive property to true as shown in the following example: Example event state definition executing same action { \"name\": \"waitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"noisyEvent\", \"silentEvent\" ], \"actions\": [ { \"functionRef\": \"notCareAboutNoise\" } ] } ] ,\"exclusive\": true } You can also remove the exclusive property, as true is the default value. To start a new workflow instance, set the start property to the event state name in the workflow header. The workflow instance starts when there is an event match. Using the previous example of event state definition, add the following code in the workflow header: Start a workflow instance \"start\":\"waitForEvent\" An event state can also be used to pause an existing workflow instance. When the workflow execution reaches an event state, which is not starting, then the execution is paused until there is an event match for that workflow instance. Similar to the callback state in a workflow, the workflow instance to be resumed is identified by kogitoprocrefid CloudEvent attribute or calculated according to the event correlation functionality. While callback state is used for fire&wait scenarios, event state covers wait&fire scenarios. For more information about the callback state, see Callback state in SonataFlow. Creating your first workflow service Consuming and producing events using Apache Kafka Consuming and producing events on Knative Eventing If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Events in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"handling-events-on-workflows","url":"/serverlessworkflow/latest/core/handling-events-on-workflows.html","titles":[{"text":"Example of event match","hash":"ref-example-event-match","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"9":{"id":9,"text":"The Serverless Workflow specification defines several timeouts configurations that you can use to configure maximum times for the workflow execution in different scenarios. For example, you can configure how long a workflow can wait for an event to arrive when it is in a given state, etc. Currently, SonataFlow supports only the workflow execution timeout and event timeouts. Regardless of its application scope (workflow or state), the timeouts must be configured as an amount of time (a duration), which is considered to start when the referred scope becomes active. Timeouts use the ISO 8601 data and time standard to specify a duration of time and follow the format PnDTnHnMn.nS with days considered to be exactly 24 hours. For instance, PT15M configures 15 minutes, and P2DT3H4M defines 2 days, 3 hours and 4 minutes. To configure the maximum amount of time a workflow can be running before being canceled, you can use the workflow timeout. This is configured in the header section of the workflow, by using the WorkflowExecTimeout definition. Only the duration property is currently implemented. Once canceled, the workflow is considered to be finished, and will not be accessible through a GET request anymore. So it behaves as if the interrupt was true by default. For example, to cancel the workflow after an hour of execution, you must use the following configuration. Example of workflow timeout { \"id\": \"workflow_timeout\", \"version\": \"1.0\", \"name\": \"Workflow timeout example\", \"description\": \"An example of how workflow timeout works\", \"start\": \"printWaitMessage\", \"timeouts\": { \"workflowExecTimeout\": \"PT1H\" } ... } When you define a state in a workflow, you can use the timeouts property to configure the maximum time to complete this state. When that time is overdue, the state is considered timed-out, and the engine continues the execution from this state. The execution flow depends on the state type, for instance, a transition to a next state might be executed. All the properties that you can use to configure state timeouts are described in the Serverless Workflow specification. Event-based states can use the sub-property eventTimeout to configure the maximum time to wait for an event to arrive. This is the only property that is supported in current implementation. The Callback state can be used when you need to execute an action, in general to call an external service, and wait for an asynchronous response in form of an event, the callback. Once the response event is consumed, the workflow continues the execution, in general moving to the next state defined in the transition property. See more on Callback state in SonataFlow. Since the Callback state halts the execution until the event is consumed, you can configure an eventTimeout for it, and in case the event does not arrive in the configured time duration, the workflow continues the execution moving to the next state defined in the transition, see the example. Example of Callback state with timeout { \"name\": \"CallbackState\", \"type\": \"callback\", \"action\": { \"name\": \"callbackAction\", \"functionRef\": { \"refName\": \"callbackFunction\", \"arguments\": { \"input\": \"${\\\"callback-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" has executed the callbackFunction.\\\"}\" } } }, \"eventRef\": \"callbackEvent\", \"transition\": \"CheckEventArrival\", \"onErrors\": [ { \"errorRef\": \"callbackError\", \"transition\": \"FinalizeWithError\" } ], \"timeouts\": { \"eventTimeout\": \"PT30S\" } } The Switch state can be used when you need to take an action depending on certain conditions, these conditions can be based on the workflow data, dataConditions, or on events, eventConditions. When you use the eventConditions, the workflow execution waits to make a decision until any of the configured events arrives and matches a condition. In this situation, you can configure an event timeout, that controls the maximum time to wait for an event to match the conditions. If this time expires, the workflow moves to the state defined in the defaultCondition property of the Switch state, as you can see in the example. See more details about this state on the Serverless Workflow specification - Switch State. Example of Switch state with timeout { \"name\": \"ChooseOnEvent\", \"type\": \"switch\", \"eventConditions\": [ { \"eventRef\": \"visaApprovedEvent\", \"transition\": \"ApprovedVisa\" }, { \"eventRef\": \"visaDeniedEvent\", \"transition\": \"DeniedVisa\" } ], \"defaultCondition\": { \"transition\": \"HandleNoVisaDecision\" }, \"timeouts\": { \"eventTimeout\": \"PT5S\" } } The Event state is used to wait for one or more events to be received by the workflow, execute a set of actions, and then continue the execution. If the Event state is a starting state, a new workflow instance is created. The Event state is not supported as a starting state if the exclusive flag is set to false, therefore timeout is not supported in this case. The timeouts property is used for this state to configure the maximum time the workflow should wait for the configured events to arrive. If this time is exceeded and the events are not received, the workflow moves to the state defined in the transition property or ends the workflow instance (in case of an end state), without performing any actions. You can see this in the example. For more information about Event state timeout, see Serverless Workflow specification - Event State. Example of Event state with timeout { \"name\": \"WaitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"event1\" ], \"eventDataFilter\": { \"data\": \"${ \\\"The event1 was received.\\\" }\", \"toStateData\": \"${ .exitMessage }\" }, \"actions\": [ { \"name\": \"printAfterEvent1\", \"functionRef\": { \"refName\": \"systemOut\", \"arguments\": { \"message\": \"${\\\"event-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" executing actions for event1.\\\"}\" } } } ] }, { \"eventRefs\": [ \"event2\" ], \"eventDataFilter\": { \"data\": \"${ \\\"The event2 was received.\\\" }\", \"toStateData\": \"${ .exitMessage }\" }, \"actions\": [ { \"name\": \"printAfterEvent2\", \"functionRef\": { \"refName\": \"systemOut\", \"arguments\": { \"message\": \"${\\\"event-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" executing actions for event2.\\\"}\" } } } ] } ], \"timeouts\": { \"eventTimeout\": \"PT30S\" }, \"transition\": \"PrintExitMessage\" } To deploy a workflow that uses timeouts, or any other timer-based action, it is necessary to have a job service running in your environment, which is an independent service responsible to control the workflows timers, see the job service for more information. The provisioning of this service depends on the work mode that you are using. When you work with the SonataFlow Operator Dev Profile, the operator will automatically provide an execution environment that contains an embedded job service instance, as well as an instance of the data index service. And thus, there is no need for additional configurations. In the timeouts showcase you can see the details of how to work with timeouts and the SonataFlow Operator Dev Profile. When you work with a standalone Quarkus Workflow Project, you must: Configure the project to include the required addon for the workflows to connect with that service. Ensure that a jobs service instance is available in your environment. In the job service guide you can see all the available add-dons and configuration alternatives for this case. To see the examples about how configure the timeouts, and execute them in different deployment scenarios, you can use the Timeouts showcase in SonataFlow Callback state in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Timeouts in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"timeouts-support","url":"/serverlessworkflow/latest/core/timeouts-support.html","titles":[{"text":"Workflow timeout","hash":"_workflow_timeout","id":1},{"text":"Event timeout","hash":"_event_timeout","id":2},{"text":"Callback state timeout","hash":"callback-state-timeout","id":3},{"text":"Switch state timeout","hash":"switch-state-timeout","id":4},{"text":"Event state timeout","hash":"event-state-timeout","id":5},{"text":"Deploying a timed-based workflow","hash":"_deploying_a_timed_based_workflow","id":6},{"text":"SonataFlow Operator Dev Profile","hash":"_sonataflow_operator_dev_profile","id":7},{"text":"Quarkus Workflow Project","hash":"_quarkus_workflow_project","id":8},{"text":"Timeouts showcase","hash":"timeouts-showcase","id":9},{"text":"Additional resources","hash":"_additional_resources","id":10},{"text":"Found an issue?","hash":"_found_an_issue","id":11}]},"10":{"id":10,"text":"Each workflow instance is associated with a data model. A data model consists of a JSON object regardless of whether the workflow file contains YAML or JSON. The initial content of the JSON object depends on how the workflow is started. If the workflow is created using the Cloud Event, then the workflow content is taken from the data property. However, if the workflow is started through an HTTP POST request, then the workflow content is taken from the request body. The workflow expressions in the Serverless Workflow specification are used to interact with the data model. The supported expression languages include JsonPath and jq. jq expression language is the default language. However, you can change the expression language to JsonPath using the expressionLang property. This document describes the usage of jq expressions in switch state conditions, action function arguments, and data filtering. The conditions occurring in a switch state enable the workflow designer to select the path that workflow follows based on the data model content. A condition in a switch state is an expression, which returns a boolean value when evaluated against the data model. If a condition associated with a state transition returns true, then the workflow must follow that transition. For example, in the serverless-workflow-greeting-quarkus example application, a message is displayed depending on the selected language, that is English or Spanish. If the value of the language property is English, the constant literal injected on the message property is Hello from, otherwise the constant value injected on the message property is Saludos desde…. The switch state in the serverless-workflow-greeting-quarkus example application contains the following conditions, which in turn contains two jq expressions returning a boolean. Example conditions in serverless-workflow-greeting-quarkus \"dataConditions\": [ { \"condition\": \"${ .language == \\\"English\\\" }\", \"transition\": \"GreetInEnglish\" }, { \"condition\": \"${ .language == \\\"Spanish\\\" }\", \"transition\": \"GreetInSpanish\" } ] The Serverless Workflow specification requires all the expressions to be embedded within ${… }. However, SonataFlow figures out whether or not a string is an expression. Therefore, you can save characters and skip ${ in the beginning and } in the end. In case of portability, you must embed the expressions within ${… }. In the Serverless Workflow specification, you can define workflow functions, which can be invoked several times by the workflow states. Each workflow function call might contain different arguments, which are specified using the function arguments. For example, you can see the temperature conversion function definition in serverless-workflow-temperature-conversion example application. The temperature conversion function performs OpenAPI invocations to convert Fahrenheit to Celsius. For more information about OpenAPI, see Orchestrating the OpenAPI services. Following is the subtraction function in serverless-workflow-temperature-conversion example application: Example subtraction function in serverless-workflow-temperature-conversion \"functions\": [ { \"name\": \"subtraction\", \"operation\": \"specs/subtraction.yaml#doOperation\" }] The arguments in subtraction function are expressed as a JSON object, and the property values of the JSON object are either a string containing an expression or a JSON data type, such as string, number, or boolean. Example arguments in subtraction function \"functionRef\": { \"refName\": \"subtraction\", \"arguments\": { \"leftElement\": \".fahrenheit\", \"rightElement\": \".subtractValue\" } } In the previous example, the left number is equal to the fahrenheit property (an input number that invokes the workflow), and the right number is equal to the subtractValue property (a constant number that is injected to the workflow model by SetConstants state). Once the expression evaluation is resolved for all properties that contain an expression, the resulting object is passed in the OpenAPI request. Based on the OpenAPI definition, the properties in the JSON object are used as body, path, query, or header of the upcoming REST invocation. Following is an example of function arguments defined as string that contains an expression, returning a JSON object: Example function arguments defined as string \"functionRef\": { \"refName\": \"subtraction\", \"arguments\": \"{leftElement: .fahrenheit, rightElement : .subtractValue}\" } In the previous example, the result of the expression evaluation is the same JSON object than in the first case, which is passed as arguments of the OpenAPI request. The Serverless Workflow specification defines the following filtering mechanisms to select which information must be part of the workflow data model: Action data filters: Select the part of the action result that is merged into the data model, which overrides the properties that share the name with the selected action result. Event data filters: Similar to the action data filters, but apply to the events instead of actions. State data filters: Define the workflow model to the JSON object, which is returned by the expression and discards an existing property. State and Action data filter example You can see serverless-workflow-expression-quarkus example application, in which actions and state data filters are used. Following is an expression function in serverless-workflow-expression-quarkus example application: Example expression function in serverless-workflow-expression-quarkus \"functions\": [ { \"name\": \"max\", \"type\": \"expression\", \"operation\": \"{max: .numbers | max_by(.x), min: .numbers | min_by(.y)}\" } ] In the previous example, an array of complex numbers (x is real coordinate and y is imaginary coordinate) is accepted and an expression function is defined to calculate the maximum value of x and minimum value of y for the numbers array. Also, the serverless-workflow-expression-quarkus example application contains an action data filter defined inside squareState action and a state data filter defined inside finish state. The action data filter selects the maximum value of x to be merged to the workflow model, and the state data filter defines the maximum value as the entire workflow model that is returned as the workflow response. The previous example expression also contains a max function of type expression and an operation property containing a string of jq expression. This jq expression returns a JSON object, in which the max property is the maximum value of the x coordinate and the min property is the minimum value of the y coordinate. Following is an action data filter in serverless-workflow-expression-quarkus example application: Example action data filter in serverless-workflow-expression-quarkus \"actions\": [ { \"name\": \"maxAction\", \"functionRef\": { \"refName\": \"max\" }, \"actionDataFilter\": { \"results\" : \".max.x\", \"toStateData\" : \".number\" } } ] In case the previous example of action data filter is not added in the serverless-workflow-expression-quarkus, then the entire JSON object returned by the function is merged into the workflow model. The previous action data filter contains the following properties: results, selecting the attribute from the data returned by the action. toStateData, indicating the name of the target property inside the workflow model. If the target property does not exist, then a target property is added. Therefore, after executing the action, the workflow model consists of a number property, containing the maximum value of x and the original numbers array. After that, the workflow transitions to the finish state. Example state data filter in serverless-workflow-expression-quarkus \"name\": \"finish\", \"type\": \"operation\", \"stateDataFilter\": { \"input\": \"{result: .number}\" } The original numbers array should not be returned as a result of the workflow execution, therefore the final stage consists of a state data filter defining the content of the output model. The output model should contain a result property and the value of result property should be the maximum number that is stored by the previous state in the number property. In the previous example, the workflow model is changed by the input property of the filter, which means that the output model is updated before the state is executed. As a final result, the output model consists of a result property, containing the maximum value of x. Event data filter example You can find an example of event data filtering in the serverless-workflow-callback-quarkus example application. Example event filter \"eventRef\": \"waitEvent\", \"eventDataFilter\": { \"data\": \".result\", \"toStateData\": \".move\" } The previous example of the event filter copies the content of CloudEvent data result field into the workflow model move field. Configuring the OpenAPI services endpoints If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"jq Expressions","component":"serverlessworkflow","version":"1.43.0.Final","name":"understanding-jq-expressions","url":"/serverlessworkflow/latest/core/understanding-jq-expressions.html","titles":[{"text":"Example of jq expressions in switch conditions","hash":"ref-example-jq-expression-switch-conditions","id":1},{"text":"Example of jq expressions in function arguments","hash":"ref-example-jq-expression-function-arguments","id":2},{"text":"Example of jq expressions in data filtering","hash":"ref-example-jq-expression-data-filtering","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"11":{"id":11,"text":"This document describes how you can handle the errors that might occur in SonataFlow. The Serverless Workflow specification provides an error handling mechanism, enabling you to handle the errors that might happen during the interactions between the workflow and external systems. When an error occurs, it changes the regular workflow sequence. In such cases, a workflow state transitions to an alternative state that can potentially handle the error, instead of transitioning to the predefined state. Note that error definition for a workflow is optional. If error handling is not defined, then the workflow execution is aborted when an error occurs. As a developer, you can consider the error handling in SonataFlow as a try-catch or a goto construct. An error definition in a workflow is composed of a name and code parameters. The name is a short and natural language description of an error, such as wrong parameter. The code parameter helps the implementation to identify the error. The code parameter is mandatory and the engine uses different strategies to map the provided value to an exception encountered at runtime. The available strategies include fully qualified class name, error message, and status code. Fully Qualified Class Name (FQCN) You can define the mapping as the fully qualified Java class name of an exception type. To determine if an exception is handled by an error definition, a workflow first checks whether or not the type of the Java exception is an instance of the exception that is specified in the error definition. Otherwise, the workflow recursively applies the same check to any embedded exception within the original Java one, till the exception chain is exhausted. Table 1. Runtime exception examples: Runtime exception Error code definition java.lang.RuntimeException java.lang.RuntimeException java.lang.IllegalStateException java.lang.RuntimeException Error message You can define the mapping as a partial match of the error message using regex patterns. A workflow verifies whether the message of the Java exception matches the value provided in the error code. The validation is performed using a regex matcher. The validation is successful if a partial match is found. Note that the validation is performed in a case-sensitive manner. If case-insensitive pattern matching is desired, use the embedded flag expression (?i) within the regular expression. Table 2. Error message examples: Error message of runtime exception Error code definition Unknown error, status code 400 Unknown error Unknown error, status code 400 (?i)Error or error Unknown error, status code 400 (.*)status code 4[0-9]{2} or status code 4[0-9]{2} Status code You can define the mapping as a status code returned by the invoked service. The external services return status codes in the event of a failure. For example, HTTP status codes are returned by REST or OpenAPI service invocations. In this case, the workflow verifies the defined error code against the HTTP code from the underlying response object. You can define the error code either as an HTTP code or as a colon-separated string, in which the error definition contains the error code in the last part. Table 3. Status code examples: HTTP status code Error code definition 400 400 400 HTTP:400 The workflow in the serverless-workflow-error-quarkus example application illustrate the usage of the error handling mechanism. Figure 1. Example of error handling The workflow accepts an integer number as the input model. When the workflow starts, it invokes the isEven Java service, which accepts that integer number as a parameter. This service throws an IllegalArgumentException exception if the integer number is odd. This means that if the integer number is even, the workflow transitions to the even state, however, if the integer number is odd, the workflow transitions to the odd state, resulting in a different model output. Example checkEven state { \"name\": \"checkEven\", \"type\": \"operation\", \"actions\": [ { \"name\": \"checkEvenAction\", \"functionRef\": { \"refName\": \"isEven\", \"arguments\": { \"number\": \"$.number\" } } } ], \"transition\": \"even\", \"onErrors\": [ { \"errorRef\": \"odd number\", \"transition\": \"odd\" } ] } The workflow defines a function that invokes the isEven method of org.kie.kogito.examples.EvenService class. This function uses a custom function type, enabling SonataFlow to invoke Java methods. Example isEven function definition { \"name\": \"isEven\", \"type\": \"custom\", \"operation\": \"service:java:org.kie.kogito.examples.EvenService::isEven\" } To handle the error, the workflow defines an odd number error which handles any runtime exception. As the IllegalArgumentException is a child of RuntimeException, if isEven method throws the exception, it will be handled. Example error definition \"errors\": [ { \"name\": \"odd number\", \"code\": \"java.lang.RuntimeException\" } ] The Inject state is used to populate the model with specific JSON payload. Therefore, the even and odd state defines the message property as even and odd respectively. { \"name\": \"even\", \"type\": \"inject\", \"data\": { \"numberType\": \"even\" }, \"transition\": \"finish\" }, { \"name\": \"odd\", \"type\": \"inject\", \"data\": { \"numberType\": \"odd\" }, \"transition\": \"finish\" } The finish state in the serverless-workflow-error-quarkus example application displays the model content to the console, so you can verify that the expected message has been set. { \"name\": \"finish\", \"type\": \"operation\", \"actions\": [ { \"name\": \"printAction\", \"functionRef\": { \"refName\": \"printMessage\", \"arguments\": { \"message\": \"$.numberType\" } } } ], \"end\": { \"terminate\": \"true\" } } Creating your first workflow service If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Error handling in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"understanding-workflow-error-handling","url":"/serverlessworkflow/latest/core/understanding-workflow-error-handling.html","titles":[{"text":"Error definition","hash":"con-error-definition","id":1},{"text":"Example of error handling","hash":"ref-example-error-handling","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"12":{"id":12,"text":"This document describes the Callback state and related examples. The Callback state performs an action and waits for an event, to be produced as a result of the action, to resume the workflow. The action peformed by a Callback state is an asynchronous external service invocation. Therefore, the Callback state is suitable to perform fire&wait-for-result operations. From a workflow perspective, asynchronous service indicates that the control is returned to the caller immediately without waiting for the action to be completed. Once the action is completed, a CloudEvent is published to resume the workflow. For the workflow to identify the published CloudEvent it is waiting for, the external service developer includes the workflow instance ID in the CloudEvent header or uses the Event correlation. The following figure displays the process: The workflow correlation described in this document focuses on the former mechanism that is based on the fact that each workflow instance contains a unique identifier, which is generated automatically. To understand the Callback state, see the serverless-workflow-callback-quarkus example application in GitHub repository. The initial model of the serverless-workflow-callback-quarkus example application is empty. Once the workflow is started, it publishes a CloudEvent of the resume type and waits for a CloudEvent, which contains the type wait. A listener consumes the CloudEvent with the resume type and simulates the behavior of an external service. Consequently, on the external service side, when the actions associated with the resume type CloudEvent are completed, the listener publishes a wait type CloudEvent. Once the wait type CloudEvent is received, the workflow moves to the next state and ends successfully. To use the Callback state in a workflow, first CloudEvent types such as resume and wait are declared that the workflow uses. Following is an example of CloudEvents declaration in a workflow definition: Example of CloudEvents declaration in a workflow definition \"events\": [ { \"name\": \"resumeEvent\", \"source\": \"\", \"type\": \"resume\" }, { \"name\": \"waitEvent\", \"source\": \"\", \"type\": \"wait\" } ] After that, a Callback state is declared. The Callback state publishes a resume type CloudEvent and waits for a CloudEvent with wait type. The published CloudEvent contains a move data field, and the CloudEvent that is received is expected to contain a result data field. According to the eventDataFilter, the result data field is added to the workflow model as a move field. Following is an example of declaring a Callback state that handles the wait type CloudEvent: Example of a Callback State declaration handling the wait CloudEvent { \"name\": \"waitForEvent\", \"type\": \"callback\", \"action\": { \"name\": \"publishAction\", \"eventRef\": { \"triggerEventRef\": \"resumeEvent\", \"data\": \"{move: \\\"This is the initial data in the model\\\"}\" } }, \"eventRef\": \"waitEvent\", \"eventDataFilter\": { \"data\": \".result\", \"toStateData\": \".move\" }, \"transition\": \"finish\" } An event listener consumes the resume type CloudEvent and publishes a new wait type CloudEvent. Following is an example of a Java method that publishes the wait type CloudEvent: Example of a Java method that publishes the wait CloudEvent private String generateCloudEvent(String id, String input) { Map eventBody = new HashMap<>(); eventBody.put(\"result\", input + \" and has been modified by the event publisher\"); eventBody.put(\"dummyEventVariable\", \"This will be discarded by the process\"); try { return objectMapper.writeValueAsString(CloudEventBuilder.v1() .withId(UUID.randomUUID().toString()) .withSource(URI.create(\"\")) .withType(\"wait\") .withTime(OffsetDateTime.now()) .withExtension(CloudEventExtensionConstants.PROCESS_REFERENCE_ID, id) .withData(objectMapper.writeValueAsBytes(eventBody)) .build()); } catch (JsonProcessingException e) { throw new IllegalArgumentException(e); } } After that, the workflow application consumes the event published by the listener and sets the result field. The consumed CloudEvent contains an attribute named kogitoprocrefid, which holds the workflow instance ID of the workflow. The kogitoprocrefid attribute is crucial because when the correlation is not used, then this attribute is the only way for the Callback state to identify that the related CloudEvent needs to be used to resume the workflow. For more information about correlation, see Event correlation in SonataFlow. Note that each workflow is identified by a unique instance ID, which is automatically included in any published CloudEvent, as kogitoprocinstanceid CloudEvent extension. The following example shows that the event listener takes the workflow instance ID of a workflow from a CloudEvent attribute named kogitoprocinstanceid, which is associated with the CloudEvent that is consumed. Example of a Java method that consumes the resume CloudEvent @Incoming(\"in-resume\") @Outgoing(\"out-wait\") @Acknowledgment(Strategy.POST_PROCESSING) public String onEvent(Message message) { Optional ce = CloudEventUtils.decode(message.getPayload()); JsonCloudEventData cloudEventData = (JsonCloudEventData) ce.get().getData(); return generateCloudEvent(ce.get().getExtension(CloudEventExtensionConstants.PROCESS_INSTANCE_ID).toString(), cloudEventData.getNode().get(\"move\").asText()); } Apache Kafka configuration in serverless-workflow-callback-quarkus The serverless-workflow-callback-quarkus example application requires an external broker to manage the associated CloudEvents. The default setup in the serverless-workflow-callback-quarkus example application uses Apache Kafka. However, you can also use Knative Eventing. Apache Kafka uses topics to publish or consume messages. In the serverless-workflow-callback-quarkus example application, two topics are used, matching the name of the CloudEvent types that are defined in the workflow, such as resume and wait. The resume and wait CloudEvent types are configured in the application.properties file. For more information about using Apache Kafka with events, see Consuming and producing events using Apache Kafka. Creating your first workflow service Event correlation in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Callbacks in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"working-with-callbacks","url":"/serverlessworkflow/latest/core/working-with-callbacks.html","titles":[{"text":"Example of Callback state","hash":"ref-example-callback","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"13":{"id":13,"text":"This document describes how you can run parallel tasks in SonataFlow. The testing procedure described in this document is based on the serverless-workflow-service-calls-quarkus example application in GitHub repository. SonataFlow serializes the execution of parallel tasks. Therefore, the word \"parallel\" does not indicate simultaneous execution, but it means that there is no logical dependency between the execution of branches. An inactive branch can start or resume the execution of a task without waiting for an active branch to be completed, in case the latter suspends the execution (for example, wait for an event reception). The serverless-workflow-service-calls-quarkus example application is a workflow that concatenates three strings and returns a result. The concatenation in the example application is done in parallel, which includes one branch per three strings. You can create a workflow, which performs a series of parallel tasks. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Procedure Create a workflow file named as parallel.sw.json under the src/main/resources/ directory. Add the following content to the parallel.sw.json file: Example content for parallel.sw.json file { \"id\": \"parallel\", \"version\": \"1.0\", \"specVersion\": \"0.8\", \"name\": \"Welcome to the Parallel dimension\", \"description\": \"Testing parallelism\", \"start\": \"Parallel\", \"functions\": [ { \"name\": \"concatA\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"A\\\"\" (1) }, { \"name\": \"concatB\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"B\\\"\" (2) }, { \"name\": \"concatC\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"C\\\"\" (3) } ], \"states\": [ { \"name\": \"Parallel\", \"type\": \"parallel\", (4) \"branches\": [ (5) { \"name\": \"branchA\", \"actions\": [ { \"functionRef\": \"concatA\" (6) } ] }, { \"name\": \"branchB\", \"actions\": [ { \"functionRef\": \"concatB\" (7) } ] }, { \"name\": \"branchC\", \"actions\": [ { \"functionRef\": \"concatC\" (8) } ] } ], \"completionType\": \"allOf\", (9) \"end\": { \"terminate\": true } } ] } 1 Function that concatenates the string A. 2 Function that concatenates the string B. 3 Function that concatenates the string C. 4 Defines the type of the state as parallel. 5 Defines the branches that run in parallel. 6 Defines the function that runs in branchA. 7 Defines the function that runs in branchB. 8 Defines the function that runs in branchC. 9 Defines the completion type of the parallel state as allOf. This means that the parallel state is completed when all the branches are completed. After you create a workflow that performs a series of parallel tasks, you can run the workflow. Prerequisites A parallel workflow is created. For more information, see Creating a parallel workflow. The workflow application is up and running. You can start the workflow application in development mode by using the following command: mvn quarkus:dev Procedure To run the created parallel workflow, send a request to the /parallel endpoint as shown in the following example request: Example request curl -X 'POST' \\ 'http://localhost:8080/parallel' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{}' Example response {\"id\":\"358f97ba-f0f9-4f25-86cc-4b35e85c2406\",\"workflowdata\":{\"result\":\"ABC\"}} The \"result\":\"ABC\" in the previous example response might be different in each request since the branches are running in parallel and the execution order of the branches is unpredictable. Note that the parallel workflow data shows the concatenated string as result. You can define the \"completionType\": \"atLeast\" to run only some branches in parallel workflow, instead of defining \"completionType\": \"allOf\". When you define \"completionType\": \"atLeast\", you also need to define the minimum number of branches that you want to run by defining the \"numCompleted\": property. Prerequisites A parallel workflow is created. For more information, see Creating a parallel workflow. Procedure Change the completionType property to \"atLeast\" and add the \"numCompleted\": 2 property to the parallel state. Example parallel workflow { \"id\": \"parallel\", \"version\": \"1.0\", \"specVersion\": \"0.8\", \"name\": \"Welcome to the Parallel dimension\", \"description\": \"Testing parallelism\", \"start\": \"Parallel\", \"functions\": [ { \"name\": \"concatA\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"A\\\"\" }, { \"name\": \"concatB\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"B\\\"\" }, { \"name\": \"concatC\", \"type\": \"expression\", \"operation\": \".result|=.+\\\"C\\\"\" } ], \"states\": [ { \"name\": \"Parallel\", \"type\": \"parallel\", \"branches\": [ { \"name\": \"branchA\", \"actions\": [ { \"functionRef\": \"concatA\" } ] }, { \"name\": \"branchB\", \"actions\": [ { \"functionRef\": \"concatB\" } ] }, { \"name\": \"branchC\", \"actions\": [ { \"functionRef\": \"concatC\" } ] } ], \"completionType\": \"atLeast\", (1) \"numCompleted\": \"2\", (2) \"end\": { \"terminate\": true } } ] } 1 Defines the completion type of the parallel state as atLeast. 2 Defines the minimum number of branches that you want to run. This means that the parallel state is completed when at least two branches are completed. To run the created parallel workflow, send a request to the /parallel endpoint as shown in the following example: Example request curl -X 'POST' \\ 'http://localhost:8080/parallel' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{}' Example response {\"id\":\"3da62df1-c4e7-48c9-a3e4-7f63872c92f4\",\"workflowdata\":{\"result\":\"BC\"}} The \"result\":\"BC\" in the response might be different in each request. The parallel workflow data shows the concatenated string as result, but in this case, the workflow concatenates only two letters. Creating your first workflow service If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Parallelism in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"working-with-parallelism","url":"/serverlessworkflow/latest/core/working-with-parallelism.html","titles":[{"text":"Creating a parallel workflow","hash":"proc-parallel-creating-the-workflow","id":1},{"text":"Running a parallel workflow","hash":"proc-parallel-run-workflow","id":2},{"text":"Running some branches in parallel workflow","hash":"proc-parallel-run-branches","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"14":{"id":14,"text":"In SonataFlow platform there is a dedicated supporting service that stores the data related to the workflow instances and their associated jobs called Data Index service. This service also provides a GraphQL endpoint allowing users to query that data and perform operations, also known as mutations in GraphQL terms. The data processed by the Data Index service is usually received via events. The events consumed can be generated by any workflow or the Job service itself. This event communication can be configured in different ways as described in the Data Index communication configuration section. The Data Index service uses Apache Kafka or Knative eventing to consume CloudEvents messages from workflows. The event data is indexed and stored in the database for querying via GraphQL. These events contain information about units of work executed for a workflow. The Data Index service is at the core of all SonataFlow search, insight, and management capabilities. The SonataFlow Data Index Service has the following key attributes: Flexible data structure Distributable and cloud-ready format Message-based communication with workflows (Apache Kafka, Knative, CloudEvents) Powerful querying API using GraphQL Management capabilities using the Gateway API, to perform actions using GraphQL syntax on remote runtimes with a single entrypoint The SonataFlow Data Index Service is a Quarkus application, based on Vert.x with Reactive Messaging, that exposes a GraphQL endpoint that client applications use to access indexed data and perform management operations related to running workflow instances. The indexing functionality in the Data Index service is provided by choosing one of the following persistence providers: PostgreSQL Infinispan MongoDB The Data Index Service has been thought of as an application to store and query the existing workflow data. The data comes contained in events. The service allows multiple connection options as described in the Data Index service communication configuration section. Data Index is distributed in different ways to allow deployment in different topologies, and depending on how the data is indexed. The following sections describe the different options of Data Index deployments. It can be deployed explicitly referencing the image, starting a separated service inside a container. See Data Index standalone. This type of deployment requires to choose the right image depending on the persistence, specify the database connection properties, and the event consumption configuration. It also can be deployed, transparently as a Quarkus Development Service when the Quarkus Dev mode is used in the SonataFlow application. When you use the SonataFlow Process Quarkus extension, a temporary Data Index Service is automatically provisioned while the Quarkus application is running in development mode and the Dev Service is set up for immediate use. More details are provided in the Data Index as a Quarkus Development service section. The SonataFlow Process Quarkus extension sets up your Quarkus application to automatically replicate any SonataFlow messaging events related to workflow instances or jobs into the provisioned Data Index instance. For more information about Quarkus Dev Services, see Dev Services guide. It can be included as part of the same SonataFlow application using the Data Index extension, through the provided addons. This scenario is specific to add the Data Index data indexing features and the GraphQL endpoint exposure inside a workflow application. The communication with the workflow where the extension is added, is something internal to the application, allowing to simplify the communication between services and avoiding extra configuration for that purpose. In this case, the indexation has some limitations: it is only able to index data from the workflows deployed in the same application. More details are available in the Data Index Quarkus Extension section. In order to store the indexed data, Data Index needs some specific tables to be created. Data Index is ready to use Quarkus flyway for that purpose. It’s necessary to activate the migrate-at-start option to migrate the Data Index schema automatically. For more details about Flyway migrations, see PostgreSQL Database Migration section Data Index provides GraphQL endpoint that allows users to interact with the stored data. For more information about GraphQL see GraphQL This guide provides as examples, some GraphQL queries that allow to retrieve data about workflow instances and jobs. Retrieve data from workflow instances You can retrieve data about a specified instance from your workflow definition. Example query { ProcessInstances { id processId state parentProcessInstanceId rootProcessId rootProcessInstanceId variables nodes { id name type } } } Retrieve data from jobs You can retrieve data from a specified job instance. Example query { Jobs { id status priority processId processInstanceId executionCounter } } Filter query results using the where parameter You can use the where parameter with multiple combinations to filter query results based on workflow attributes. Example query { ProcessInstances(where: {state: {equal: ACTIVE}}) { id processId processName start state variables } } Example query { ProcessInstances(where: {id: {equal: \"d43a56b6-fb11-4066-b689-d70386b9a375\"}}) { id processId processName start state variables } } By default, all filtered attributes are executed as AND operations in queries. You can modify this behavior by combining filters with an AND or OR operator. Example query { ProcessInstances(where: {or: {state: {equal: ACTIVE}, rootProcessId: {isNull: false}}}) { id processId processName start end state } } Example query { ProcessInstances(where: {and: {processId: {equal: \"travels\"}, or: {state: {equal: ACTIVE}, rootProcessId: {isNull: false}}}}) { id processId processName start end state } } Depending on the attribute type, the following operators are also available: String array argument: contains : String containsAll: Array of strings containsAny: Array of strings isNull: Boolean (true or false) String argument: in: Array of strings like: String isNull: Boolean (true or false) equal: String ID argument: in: Array of strings equal: String isNull: Boolean (true or false) Boolean argument: isNull: Boolean (true or false) equal: Boolean (true or false) Numeric argument: in: Array of integers isNull: Boolean equal: Integer greaterThan: Integer greaterThanEqual: Integer lessThan: Integer lessThanEqual: Integer between: Numeric range from: Integer to: Integer Date argument: isNull: Boolean (true or false) equal: Date time greaterThan: Date time greaterThanEqual: Date time lessThan: Date time lessThanEqual: Date time between: Date range from: Date time to: Date time Sort query results using the orderBy parameter You can use the orderBy parameter to sort query results based on workflow attributes. You can also specify the direction of sorting in ascending ASC order or descending DESC order. Multiple attributes are applied to the database query in the order they are specified in the query filter. Example query { ProcessInstances(where: {state: {equal: ACTIVE}}, orderBy: {start: ASC}) { id processId processName start end state } } Limit and offset query results using the pagination parameter You can use the pagination parameter to specify a limit and offset for query results. Example query { ProcessInstances(where: {state: {equal: ACTIVE}}, orderBy: {start: ASC}, pagination: {limit: 10, offset: 0}) { id processId processName start end state } } Data Index incorporates a set of queries or mutations that allow firing operations on workflow endpoints using GraphQL notation. The Data Index Gateway API enables you to perform the following operations: Abort a workflow instance Retrieves a workflow instance with the ID passed as a parameter and launches the abort operation on related SonataFlow service. Example mutation for abort operation mutation { ProcessInstanceAbort (id:\"66e05e9c-eaab-47af-a83e-156498b7096d\") } Retry a workflow instance Retrieves a workflow instance with the id passed as a parameter and launches the retry operation on related SonataFlow service. Example mutation for retry operation mutation { ProcessInstanceRetry (id:\"66e05e9c-eaab-47af-a83e-156498b7096d\") } Skip a workflow instance Retrieves a workflow instance with the ID passed as a parameter and launches the skip operation on related SonataFlow service. Example mutation for skip operation mutation { ProcessInstanceSkip (id:\"66e05e9c-eaab-47af-a83e-156498b7096d\") } Retrieve workflow instance nodes Retrieves the nodes of a workflow instance that are coming from the process definition. When the nodeDefinitions field of a workflow instance is queried, a call to a specific SonataFlow service is generated to retrieve the requested list of available nodes. Example query to retrieve workflow instance nodes {ProcessInstances(where: { id: {equal: \"1017afb1-5749-440e-8b9b-6b876bb5894d\"}}){ diagram }} Update workflow instance variables Updates the variables of a workflow instance using the id passed as a parameter. Retrieves a workflow instance using the id passed as a parameter and launches the update operation on related SonataFlow service with the new values passed in variables parameter. Example mutation to update workflow instance variables mutation { ProcessInstanceUpdateVariables (id:\"23147fcc-da82-43a2-a577-7a36b26094bd\", variables:\"{\\\"it_approval\\\":true,\\\"candidate\\\":{\\\"name\\\":\\\"Joe\\\",\\\"email\\\":\\\"jdoe@ts.com\\\",\\\"salary\\\":30000,\\\"skills\\\":\\\"java\\\"},\\\"hr_approval\\\":true}\") } Trigger a node instance Triggers a node instance using the node definition nodeId. The nodeId is included in the nodeInstances of a workflow instance using the id passed as parameter. Example mutation to trigger a node instance mutation{ NodeInstanceTrigger( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\", nodeId:\"_B8C4F63C-81AD-4291-9C1B-84967277EEF6\") } Retrigger a node instance Retriggers a node instance using the id, which is similar to nodeInstanceId related to a workflow instance. The id of the workflow instance is passed as a parameter. Example mutation to retrigger a node instance mutation{ NodeInstanceRetrigger( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\", nodeInstanceId:\"01756ba2-ac16-4cf1-9d74-154ae8f2df21\") } Cancel a node instance Cancels a node instance with the id, which is similar to nodeInstanceId related to a workflow instance. The id of the workflow instance is passed as a parameter. Example mutation to cancel a node instance mutation{ NodeInstanceCancel( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\", nodeInstanceId:\"01756ba2-ac16-4cf1-9d74-154ae8f2df21\") } To enable described management operations on workflow instances, make sure your project is configured to have the kogito-addons-quarkus-process-management dependency on its pom.xml file to have this management operations enabled, like: org.kie.kogito kogito-addons-quarkus-process-management Retrieve the workflow instance source file content Retrieves the workflow instance source file. When the source field of a workflow instance is queried, a call to a specific SonataFlow service is generated to retrieve the requested workflow instance source file content. Example query to retrieve a workflow instance source file content {ProcessInstances(where: { id: {equal: \"1017afb1-5749-440e-8b9b-6b876bb5894d\"}}){ source }} The workflow instance source field only will be available when kogito-addons-quarkus-source-files dependency is added on SonataFlow runtime service pom.xml file. org.kie.kogito kogito-addons-quarkus-source-files Reschedule a job Reschedules a job using the id. The job id and other information are passed in the data parameter. Example mutation to reschedule a job mutation{ JobReschedule( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\", data:\"{\\\"expirationTime\\\": \\\"2033-06-27T04:35:54.631Z\\\",\\\"retries\\\": 2}\") } Cancel a job Cancels a job using the id passed as a parameter. Example mutation to cancel a job mutation{ JobCancel( id: \"9674e3ed-8c13-4c3f-870e-7465d9ca7ca7\") } Data Index GraphQL UI is provided to interact with GraphQL endpoint. When the Data Index is deployed as a standalone service, this UI will be available at /graphiql/ endpoint (i.e: at http://localhost:8180/graphiql/) To have the GraphQL UI available when the Data Index extension is deployed the property quarkus.kogito.data-index.graphql.ui.always-include needs to be enabled. It will be accessible at: /graphql-ui/ (i.e: http://localhost:8080/q/graphql-ui/) The quarkus.http.root-path' and `quarkus.http.non-application-root-path belong to the workflow application where the Data Index extension has been added. Here there are more details about those properties and their default values. In order to index the data, Data Index allows multiple connection options to be able to consume the information provided by the different workflows. The final goal is to receive the application-generated data related to the workflow instances and jobs. The information that comes inside events, is indexed and stored in the database allowing it to be consumed through the provided GraphQL endpoint. In order to interact with the Data Index separated service, use the Knative eventing system eventing: Add the Data Index service and deployment, defining the Database connection properties and setting the KOGITO_DATA_INDEX_QUARKUS_PROFILE to http-events-support. Specify the Knative Triggers to filter the Data Index events. Example DataIndex resource with triggers definition (requires Knative): apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: data-index-service-postgresql-processes-trigger spec: broker: default filter: attributes: type: ProcessInstanceEvent subscriber: ref: apiVersion: v1 kind: Service name: data-index-service-postgresql uri: /processes --- apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: data-index-service-postgresql-jobs-trigger spec: broker: default filter: attributes: type: JobEvent subscriber: ref: apiVersion: v1 kind: Service name: data-index-service-postgresql uri: /jobs Configure the workflow to use the K_SINK as outgoing connection url Example of configuration in SonataFlow application application.properties file to communicate with Knative mp.messaging.outgoing.kogito-processinstances-events.connector=quarkus-http mp.messaging.outgoing.kogito-processinstances-events.url=${K_SINK} mp.messaging.outgoing.kogito-processinstances-events.method=POST Job service needs also to be configured to send the events to the Knative K_SINK to have them available for Data Index related triggers. To configure the communication between the Data Index Service and the workflow through Kafka, you must provide a set of configurations. Add the Data Index service and deployment, defining the Database connection properties and setting the KOGITO_DATA_INDEX_QUARKUS_PROFILE to kafka-events-support (this value is set by default). Configure the SonataFlow application to use the smallrye-kafka connector and the expected topic. Example of configuration in SonataFlow application application.properties file to communicate with Kafka mp.messaging.outgoing.kogito-processinstances-events.connector=smallrye-kafka mp.messaging.outgoing.kogito-processinstances-events.topic=kogito-processinstances-events mp.messaging.outgoing.kogito-processinstances-events.value.serializer=org.apache.kafka.common.serialization.StringSerializer Job service is configured to send the JobEvents to the kafka topic kogito-jobs-events to have them available for Data Index consumption. When Data Index functionality is added as a Quarkus extension to the workflow, there is no event configuration. In this case, the data indexation is done internally, and all interactions are through the Data Index Gateway API. Consuming and producing events using Apache Kafka in Quarkus Consuming and producing events on Knative Eventing in Quarkus Timeouts Showcase in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Data Index Core Concepts","component":"serverlessworkflow","version":"1.43.0.Final","name":"data-index-core-concepts","url":"/serverlessworkflow/latest/data-index/data-index-core-concepts.html","titles":[{"text":"Data Index service in SonataFlow","hash":"_data_index_service_in_sonataflow","id":1},{"text":"Data Index scenarios","hash":"data-index-deployments","id":2},{"text":"Data Index as a standalone service","hash":"_data_index_as_a_standalone_service","id":3},{"text":"Data Index service as Quarkus Development service","hash":"data-index-dev-service","id":4},{"text":"Data Index service as Quarkus extension","hash":"_data_index_service_as_quarkus_extension","id":5},{"text":"Data Index storage","hash":"data-index-storage","id":6},{"text":"Data Index GraphQL endpoint","hash":"data-index-graphql","id":7},{"text":"GraphQL queries for workflow instances and jobs","hash":"data-index-ext-queries","id":8},{"text":"Data Index service Gateway API","hash":"data-index-gateway-api","id":9},{"text":"Data Index GraphQL UI","hash":"data-index-graphql-ui","id":10},{"text":"Data Index service communication configuration","hash":"data-index-service-communication","id":11},{"text":"Knative Eventing","hash":"_knative_eventing","id":12},{"text":"Kafka eventing","hash":"_kafka_eventing","id":13},{"text":"Data Index Quarkus extension and Jobs embedded addon","hash":"_data_index_quarkus_extension_and_jobs_embedded_addon","id":14},{"text":"Additional resources","hash":"_additional_resources","id":15},{"text":"Found an issue?","hash":"_found_an_issue","id":16}]},"15":{"id":15,"text":"This document describes how you add the Data Index features to your workflow. You simply need to add the Data Index extension to the workflow and the related data will be collected and stored in the database, enabling the GraphQL endpoint to execute queries and perform management operations over the process instances. The example described in this document is based on the serverless-workflow-timeouts_showcase_embedded example application. The Data Index service has been designed to store and manage data from different workflow instances. Communication with the service is through events that contain the workflows related data and the service is responsible for storing them and exposing a GraphQL endpoint to allow queries and maintenance operations on the different workflow instances. In specific use cases, to avoid deploying the service separately, it could be useful to have the indexing functionality and the query capabilities embedded in the same application. For this purpose, the Quarkus Data Index extension can be added to any workflow application and incorporates the Data Index functionality into the same application without needing an external Data Index service. These extensions are distributed as addons ready to work with different types of persistence: kogito-addons-quarkus-data-index-inmemory (inmemory PostgreSQL) kogito-addons-quarkus-data-index-postgresql kogito-addons-quarkus-data-index-infinispan kogito-addons-quarkus-data-index-mongodb The Data Index extensions are provided as addons for each kind of supported persistence relying on the Quarkus extensions mechanism. Once one of these kogito-addons-quarkus-data-index addons is added to a workflow, it incorporates the functionality to index and store the workflow data and also incorporates the GraphQL endpoint to perform queries and management operations. In the same way as the Data Index service, there is a specific addon for each type of persistence you want to work with. Currently, you can find Data Index addons for: PostgreSQL, Infinispan, and MongoDB The Data Index addon distribution added to the workflow must match the workflow’s persistence type regarding the indexed data, which can be stored in the same database. The addon will share the data source used by the workflow where it is added, and it will create separate tables for that purpose. When any of the Data Index addons is added: The communication with the workflow is direct, the workflow data is not transmitted or consumed through events, they are stored directly in the configured database. There is no need to configure the events connection for this purpose. A new GraphQL endpoint is added to perform queries and management operations You can add the Data Index quarkus extension as an addon: Prerequisites Your workflow is running and has persistence enabled. For more information about creating a workflow, see Creating your first workflow. You also can find more details about enabling persistence in Running a workflow using PostgreSQL Procedure Add the required Data Index addon dependencies to the pom.xml file of your workflow: Add Data Index Addon dependencies to pom.xml file org.kie.kogito kogito-addons-quarkus-data-index-postgresql Configure the Data Index Addon properties. Prepare the workflow to run in dev mode, avoid starting the Data Index Quarkus Dev service, and specify if the GraphQL UI needs to be available. Example adding Data Index addon properties in application.properties file quarkus.kogito.devservices.enabled=false (1) quarkus.kogito.data-index.graphql.ui.always-include=true (2) 1 By default, when a workflow is running in dev mode, automatically a Data Index Dev Service is started and a temporary dev service Database is created. When adding the addon to the workflow, you need to disable it by setting quarkus.kogito.devservices.enabled to false in the application.properties file. 2 The addon allows to expose a simple UI to interact with the GraphQL endpoint, it only will be available when this property is set to true, and it will be placed in '/graphql-ui/` For more information, see application.properties file of serverless-timeouts_showcase_embedded example application. Creating a Quarkus Workflow Project Running a Quarkus Workflow Application using PostgreSQL Data Index Core Concepts If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Data Index Quarkus extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"data-index-quarkus-extension","url":"/serverlessworkflow/latest/data-index/data-index-quarkus-extension.html","titles":[{"text":"Overview","hash":"data-index-ext-overview","id":1},{"text":"Adding Data Index extension to a workflow application","hash":"data-index-ext-use","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"16":{"id":16,"text":"Data Index service can be deployed referencing directly a distributed Data Index image. There are different images provided that take into account what persistence layer is required in each case. In each distribution, there are some properties to configure things like the connection with the database or the communication with other services. The goal is to configure the container to allow to process ProcessInstances and Jobs events that incorporate their related data, to index and store that in the database and finally, to provide the Data Index GraphQL endpoint to consume it. Data Index service can be deployed referencing directly a distributed Data Index image. Here there are the different Data Index image distributions that can be found in Quay.io/kiegroup: There are several ways to deploy the Data Index service. But there are some common points in all the deployments: Reference the right Data Index image to match with the type of Database that will store the indexed data. Provide the database connection properties, to allow data index store the indexed data. Data Index service does not initialize its database schema automatically. To initialize the database schema, you need to enable Flyway migration by setting QUARKUS_FLYWAY_MIGRATE_AT_START=true. Define the KOGITO_DATA_INDEX_QUARKUS_PROFILE to set the way that the events will be connected (by default: kafka-event-support). Here you can see in example, how the Data Index resource definition can be deployed as part of a docker-compose definition Example of DataIndex resource in a docker-compose deployment using Kafka eventing: data-index: container_name: data-index image: quay.io/kiegroup/kogito-data-index-postgresql:latest (1) ports: - \"8180:8080\" depends_on: postgres: condition: service_healthy volumes: - ./../target/classes/META-INF/resources/persistence/protobuf:/home/kogito/data/protobufs/ environment: QUARKUS_DATASOURCE_JDBC_URL: \"jdbc:postgresql://postgres:5432/kogito\" (2) QUARKUS_DATASOURCE_USERNAME: kogito-user QUARKUS_DATASOURCE_PASSWORD: kogito-pass QUARKUS_HTTP_CORS_ORIGINS: \"/.*/\" KOGITO_DATA_INDEX_QUARKUS_PROFILE: kafka-events-support (3) QUARKUS_FLYWAY_MIGRATE_AT_START: \"true\" (4) QUARKUS_HIBERNATE_ORM_DATABASE_GENERATION: update 1 Reference the right Data Index image to match with the type of Database, in this case quay.io/kiegroup/kogito-data-index-postgresql:latest 2 Provide the database connection properties. 3 When KOGITO_DATA_INDEX_QUARKUS_PROFILE is not present, the Data Index is configured to use Kafka eventing. 4 To initialize the database schema at start using flyway. When Kafka eventing is used, workflow applications need to be configured to send the events to the Kafka topic kogito-processinstances-events allowing Data Index service to consume the generated events. In this case Data Index is ready to consume the events sent to the topics: kogito-processinstances-events and kogito-jobs-events. It is important to configure the workflows application to send the events to the topic kogito-processinstances-events using the connector smallrye-kafka. More information about how to configure workflows Kafka eventing is available in Consuming and producing events using Apache Kafka in Quarkus guide. To explore the specific configuration to add to the workflow to connect with Data Index using Kafka eventing see Data Index Kafka eventing Example of configuration in SonataFlow application passed in application.properties to configure connection with Data Index using Kafka connector: mp.messaging.outgoing.kogito-processinstances-events.connector=smallrye-kafka mp.messaging.outgoing.kogito-processinstances-events.topic=kogito-processinstances-events mp.messaging.outgoing.kogito-processinstances-events.value.serializer=org.apache.kafka.common.serialization.StringSerializer Usually, when using docker-compose the workflow application generates the container image that is added to docker-compose. If the Kafka eventing configuration values weren’t there before the container image creation, they need to be passed as environment variables. More details about customizing Quarkus generated images can be found in Quarkus Container Images Customizing guide. This deployment definition resource shows how the Data Index service configured and deployed can connect with an existing PostgreSQL database and to consume Knative events. Example DataIndex resource with PostgreSQL persistence and Knative eventing in a kubernetes environment : apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT name: data-index-service-postgresql spec: ports: - name: http port: 80 targetPort: 8080 selector: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT type: ClusterIP --- apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT name: data-index-service-postgresql spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT template: metadata: labels: app.kubernetes.io/name: data-index-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT spec: containers: - name: data-index-service-postgresql image: quay.io/kiegroup/kogito-data-index-postgresql:latest (1) imagePullPolicy: Always ports: - containerPort: 8080 name: http protocol: TCP env: - name: KUBERNETES_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: QUARKUS_DATASOURCE_USERNAME (2) value: postgres - name: QUARKUS_DATASOURCE_PASSWORD value: pass - name: QUARKUS_DATASOURCE_JDBC_URL value: jdbc:postgresql://newsletter-postgres:5432/postgres?currentSchema=data-index-service - name: QUARKUS_DATASOURCE_DB_KIND value: postgresql - name: QUARKUS_HIBERNATE_ORM_DATABASE_GENERATION value: update - name: QUARKUS_KAFKA_HEALTH_ENABLE value: \"false\" - name: QUARKUS_HTTP_CORS value: \"true\" - name: QUARKUS_HTTP_CORS_ORIGINS value: /.*/ - name: QUARKUS_FLYWAY_MIGRATE_AT_START (4) value: \"true\" - name: KOGITO_DATA_INDEX_QUARKUS_PROFILE (3) value: \"http-events-support\" - name: QUARKUS_HTTP_PORT value: \"8080\" --- apiVersion: eventing.knative.dev/v1 kind: Trigger (5) metadata: name: data-index-service-postgresql-processes-trigger spec: broker: default filter: attributes: type: ProcessInstanceEvent (6) subscriber: ref: apiVersion: v1 kind: Service name: data-index-service-postgresql uri: /processes (7) --- apiVersion: eventing.knative.dev/v1 kind: Trigger (5) metadata: name: data-index-service-postgresql-jobs-trigger spec: broker: default filter: attributes: type: JobEvent (6) subscriber: ref: apiVersion: v1 kind: Service name: data-index-service-postgresql uri: /jobs (7) 1 Reference the right Data Index image to match with the type of Database, in this case quay.io/kiegroup/kogito-data-index-postgresql:latest 2 Provide the database connection properties 3 KOGITO_DATA_INDEX_QUARKUS_PROFILE: http-events-support to use the http-connector with Knative eventing. 4 To initialize the database schema at start using flyway 5 Trigger definition to filter the events that arrive to the Sink and pass them to Data Index 6 Type of event to filter 7 The URI where the Data Index service is expecting to consume those types of events. This deployment is using KOGITO_DATA_INDEX_QUARKUS_PROFILE: http-events-support. Workflow applications need to configure the connector to use quarkus-http and send the events to the Knative K_SINK. You can find more information about Knative eventing and K_SINK environment variable in Consuming and producing events on Knative Eventing in Quarkus To explore the specific configuration to add to the workflow to connect with Data Index using Knative eventing see Data Index Knative eventing Example of configuration in SonataFlow application application.properties file to send events to Data Index using Knative eventing mp.messaging.outgoing.kogito-processinstances-events.connector=quarkus-http mp.messaging.outgoing.kogito-processinstances-events.url=${K_SINK} mp.messaging.outgoing.kogito-processinstances-events.method=POST If that configuration values weren’t there before the container image creation, they need to be passed as environment variables. More details about customizing Quarkus generated images can be found in Quarkus Container Images Customizing guide. A full example where the Data Index service standalone is deployed using Knative eventing can be found as part of Quarkus Workflow Project with standalone services guide. When you use the SonataFlow Process Quarkus extension, a temporary Data Index service is automatically provisioned while the Quarkus application is running in development mode. When you use one of the following Quarkus extensions, the Dev Service is set up for immediate use: SonataFlow main Quarkus extension org.kie.kogito kogito-quarkus SonataFlow Quarkus extension org.kie.kogito kogito-quarkus-serverless-workflow When you start your Quarkus project in development mode, an in-memory instance of the Data Index service is automatically started in the background. This feature is enabled by Quarkus Dev Services, and leverages Testcontainers to start an image of the Data Index service. The SonataFlow Process Quarkus extension sets up your Quarkus application to automatically replicate any SonataFlow messaging events related to process instances or jobs into the provisioned Data Index instance. Once the service is up and running, you can query the GraphQL interface directly using http://localhost:8180/graphql or using the Quarkus Dev UI console http://localhost:8080/q/dev. The Data Index GraphQL endpoint can query for ProcessInstances and Jobs. For more information about operations and attributes to query, see GraphQL endpoint provided by Data Index section. You can share the same Data Index instance across multiple SonataFlow services during development. Sharing Data Index instances is enabled by default, therefore, only one Data Index instance is started. This behavior can be adjusted to start multiple instances using the quarkus.kogito.devservices.shared property. The Quarkus Dev Service also allows further configuration options including: To disable Data Index Dev Service, use the quarkus.kogito.devservices.enabled=false property. To change the port where the Data Index Dev Service runs, use the quarkus.kogito.devservices.port=8180 property. To adjust the provisioned image, use quarkus.kogito.devservices.imageName=quay.io/kiegroup/kogito-data-index-ephemeral property. To disable sharing the Data Index instance across multiple Quarkus applications, use quarkus.kogito.devservices.shared=false property. For more information about Quarkus Dev Services, see Dev Services guide. The following table serves as a quick reference for commonly Data Index configuration properties supported. Table 1. Common configuration properties Property Description Type Default value Override at runtime QUARKUS_DATASOURCE_JDBC_URL The datasource URL string Yes QUARKUS_DATASOURCE_USERNAME The datasource username string Yes QUARKUS_DATASOURCE_PASSWORD The datasource password string Yes QUARKUS_DATASOURCE_DB_KIND The kind of database to connect: postgresql,.. string Yes QUARKUS_FLYWAY_MIGRATE_AT_START true to execute Flyway automatically when the application starts, false otherwise. boolean false Yes KOGITO_DATA_INDEX_QUARKUS_PROFILE (Only when referencing an image distribution) Allows to change the event connection type. The possible values are: kafka-events-support http-events-support string kafka-events-support Yes kogito.persistence.query.timeout.millis Defines timeout for a query execution. long 10000 Yes quarkus.kogito.devservices.enabled Enables or disables the Dev Services for workflows. By default, the Dev Services are enabled, unless an existing configuration is present. boolean true No quarkus.kogito.devservices.port Defines the optional fixed port that the Dev Services listen to. int 8180 No quarkus.kogito.devservices.image-name Defines the Data Index image to use in Dev Service. string quay.io/kiegroup/kogito-data-index-ephemeral:1.43.0.Final No quarkus.kogito.devservices.shared Indicates if the Data Index instance, which is managed by Quarkus Dev Services, is shared. boolean true No quarkus.kogito.devservices.service-name Defines the value of the label that is attached to the started container. This property is used when shared is set to true. string kogito-data-index No Data Index Core Concepts Deploying your SonataFlow application on Minikube Consuming and producing events using Apache Kafka in Quarkus Consuming and producing events on Knative Eventing in Quarkus Timeout example in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Data Index standalone service","component":"serverlessworkflow","version":"1.43.0.Final","name":"data-index-service","url":"/serverlessworkflow/latest/data-index/data-index-service.html","titles":[{"text":"Data Index service deployment.","hash":"data-index-service","id":1},{"text":"Data Index distributions","hash":"data-index-service-distributions","id":2},{"text":"Data Index standalone service deployment","hash":"_data_index_standalone_service_deployment","id":3},{"text":"Data Index deployment resource example using Kafka eventing:","hash":"_data_index_deployment_resource_example_using_kafka_eventing","id":4},{"text":"Data Index deployment resource example using Knative eventing:","hash":"_data_index_deployment_resource_example_using_knative_eventing","id":5},{"text":"Data Index as a Quarkus Development service","hash":"data-index-dev-service-details","id":6},{"text":"Data Index service configuration properties","hash":"data-index-service-configuration-properties","id":7},{"text":"Additional resources","hash":"_additional_resources","id":8},{"text":"Found an issue?","hash":"_found_an_issue","id":9}]},"17":{"id":17,"text":"This document describes how you can configure a workflow to interact with Knative Eventing. Knative Eventing abstracts the events consumption through event source and sink components. An event source is a Kubernetes object that produces the event, and a sink is another Kubernetes object that receives the event. The workflow application can act as a source, a sink, or both in Knative Eventing platform. You need to add the Kogito Knative Eventing add-on dependency to indicate that you are using Knative Eventing. To enable a workflow to use Knative Eventing, add the following dependency to the pom.xml file of your project: Apache Maven Quarkus CLI Manually mvn quarkus:add-extension -Dextensions=\"kogito-addons-quarkus-knative-eventing\" quarkus extension add kogito-addons-quarkus-knative-eventing org.kie.kogito kogito-addons-quarkus-knative-eventing If you have used the Knative workflow CLI to create your project, then the Kogito Knative Eventing extension is already present. For more information about creating a project using Knative workflow CLI, see SonataFlow plug-in for Knative CLI. The Kogito Knative Eventing add-on takes care of the required dependencies and additional configuration that the workflow application needs, to interact with the Knative Eventing platform. Although the default configuration that the Quarkus Knative Eventing add-on provides ought to be enough for most of the use cases, sometimes you might need to do additional configuration to serve a specific scenario. The configuration described in this section is useful if your workflow consists of at least one produced type event definition. In this scenario, the workflow application produces events that act as a Knative source. HTTP transport configuration Knative injects the K_SINK environment variable in the workflow application when you deploy the application in the cluster. SonataFlow uses the K_SINK environment variable to address the produced events to the correct Knative sink. For more information, see SinkBinding in Knative Eventing documentation. The following table lists the HTTP transport configuration properties: Table 1. HTTP transport configuration properties Property Default value Description mp.messaging.outgoing.kogito_outgoing_stream.url ${K_SINK:http://localhost:9090} This property indicates where to POST the HTTP CloudEvent message. mp.messaging.outgoing.kogito_outgoing_stream.connector quarkus-http This property indicates the Quarkus Smallrye channel implementation. You might not need to change this property. If the K_SINK variable is not present, then the default value is http://localhost:9000. You can override the default value in development environments. Health check configuration By default, the workflow application generates a health check probe to verify if the Knative platform injected a valid K_SINK variable. If the K_SINK variable is not present, then the pod is not in the state of receiving requests. The following table lists the health check probe configuration property: Table 2. Health check probe configuration property Property Default value Description org.kie.kogito.addons.knative.eventing.health_enabled true This property indicates if the health check is enabled to verify that the K_SINK variable is injected into the environment. Knative target sink generation configuration The Kogito Knative Eventing add-on generates a few Knative objects during build time. By default, the add-on generates a Knative Broker named default if the workflow application is acting as an event source. The following table lists the configuration properties related to Knative sink generation: Table 3. Knative sink generation configuration properties Property Default value Description org.kie.kogito.addons.knative.eventing.auto_generate_broker true This property indicates if the Kogito Knative Eventing add-on generates a default Knative Broker in memory to sink and dispatch the messages. Set this property to false in case a broker is already installed in your namespace. Note that you can use org.kie.kogito.addons.knative.eventing.sink.* property to configure your custom sink. If this property is not set, then the auto-generated broker works as a sink. org.kie.kogito.addons.knative.eventing.sink.namespace This property indicates the namespace where the generated Knative sink is deployed. org.kie.kogito.addons.knative.eventing.sink.api_version eventing.knative.dev/v1 This property indicates the API group and version of the generated Knative sink. org.kie.kogito.addons.knative.eventing.sink.name default This property indicates the name of the generated Knative sink. org.kie.kogito.addons.knative.eventing.sink.kind Broker This property indicates the Kubernetes kind of the generated Knative sink. The configuration described in this section is useful if your workflow consists of at least one consumed type event definition. In this scenario, the workflow application consumes events, acting as a Knative sink. When the workflow application needs to consume events, the Knative Eventing add-on generates Knative triggers. The Knative triggers are configured to listen to a broker with the required event type, which is defined in your workflow definition. The following table lists the configuration property related to Knative sink generation: Table 4. Knative sink generation configuration property Property Default value Description org.kie.kogito.addons.knative.eventing.broker default This property indicates the name of the default Knative broker that is deployed in the Kubernetes namespace. This broker is used as the reference to create the Knative triggers, which are responsible to delegate the events that the workflow service consumes. mp.messaging.incoming.kogito_incoming_stream.path / (root path) This property indicates the HTTP path where the workflow application will listen for the CloudEvents in the default incoming channel. mp.messaging.incoming..path / (root path) This property indicates the HTTP path where the workflow application will listen for the CloudEvents in the specific given channel name. The channel name is the event type as defined in the Serverless Workflow events definition. You can send HTTP CloudEvents to the workflow application endpoint by using any tool that’s capable to produce HTTP requests. The only requirement is that the request conforms to the CloudEvents specification. For example, with the help of curl, you can send an event to the workflow using the following command: Sending a CloudEvent over HTTP using the structured format. curl -X POST \\ -H 'Content-Type: application/cloudevents+json' \\ -d '{\"datacontenttype\": \"application/json\", \"specversion\":\"1.0\",\"id\":\"41495513-a9ef-4a81-8479-21bb14db61f0\",\"source\":\"/local/curl\",\"type\":\"kogito.serverless.loanbroker.aggregated.quotes.response\",\"data\": { \"amount\": 300000, \"term\": 30, \"credit\": { \"score\": 700, \"history\": 15 }, \"quotes\": [{ \"bankId\": \"Bank1\", \"rate\": 12.2 }, {\"bankId\": \"Bank2\", \"rate\": 10}] } } ' \\ http://localhost:8080 In this example we are using the CloudEvents structured format, which includes every event information within the request payload. Note the header Content-Type being application/cloudevents+json. Alternatively, you can use the CloudEvents binary format, which includes the event metadata in the HTTP header. For example, using the same event as before: Sending a CloudEvent over HTTP using the binary format. curl -X POST -i \\ -H 'Content-Type: application/json' \\ -H 'ce-specversion: 1.0' \\ -H 'ce-id: 41495513-a9ef-4a81-8479-21bb14db61f0' \\ -H 'ce-source: /local/curl' \\ -H 'ce-type: kogito.serverless.loanbroker.aggregated.quotes.response' \\ -d '{ \"amount\": 300000, \"term\": 30, \"credit\": { \"score\": 700, \"history\": 15 }, \"quotes\": [{ \"bankId\": \"Bank1\", \"rate\": 12.2 }, {\"bankId\": \"Bank2\", \"rate\": 10}] }' \\ http://localhost:8080/ You can use this tool to test your SonataFlow application locally and verify if the events are being consumed correctly by the workflow. For more information about testing incoming and outgoing CloudEvents over HTTP, see Mocking HTTP CloudEvents sink using WireMock. SonataFlow can generate Knative objects during the workflow application build time to facilitate the deployment in a Kubernetes cluster. However, you do not need to use the generated objects if you plan to create and deploy the Knative objects by yourself. Prerequisites A workflow application with the Knative Eventing add-on is created. Procedure Add the following Quarkus Kubernetes extension dependency to the pom.xml file of your project: Apache Maven Quarkus CLI Manually mvn quarkus:add-extension -Dextensions=\"quarkus-kubernetes,quarkus-container-image-jib\" quarkus extension add quarkus-kubernetes quarkus-container-image-jib io.quarkus quarkus-kubernetes io.quarkus quarkus-container-image-jib Add the quarkus.kubernetes.deployment-target=knative property to your application.properties file. Build your workflow application using the following command: Apache Maven Quarkus CLI Knative CLI mvn clean install quarkus build kn workflow build --image= The target/kubernetes directory contains two files including knative.yml and kogito.yml. The knative.yml file contains the Knative service representing the workflow application. The kogito.yml file contains the required objects to connect the workflow application to the Knative Eventing platform. You can use the generated files to deploy the workflow application in the Kubernetes cluster using the following command: Kubernetes command line tool Knative CLI kubectl apply -f target/kogito.yml kubectl apply -f target/knative.yml kn workflow deploy For more information about building and deploying the workflow application, see Building workflow images using Quarkus CLI. A workflow must contain at least one event definition for the Knative Eventing add-on to generate the event binding objects. The following is an example of a workflow containing produced and consumed events: Example of a workflow with produced and consumed events { \"events\": [ { \"name\": \"requestQuote\", \"type\": \"kogito.sw.request.quote\", \"kind\": \"produced\" }, { \"name\": \"aggregatedQuotesResponse\", \"type\": \"kogito.loanbroker.aggregated.quotes.response\", \"kind\": \"consumed\", \"source\": \"/kogito/serverless/loanbroker/aggregator\" }] } A workflow application with events definition needs a Knative SinkBinding to configure the target sink. The target sink is where the produced events (kogito.sw.request.quote event in the previous example) are dispatched. In this case, the Knative Eventing add-on generates an object as shown in the following example: Example of a Knative SinkBinding generated by the add-on apiVersion: sources.knative.dev/v1 kind: SinkBinding metadata: name: sb-loanbroker-flow spec: sink: ref: apiVersion: eventing.knative.dev/v1 kind: Broker name: default namespace: \"\" subject: apiVersion: serving.knative.dev/v1 kind: Service name: loanbroker-flow Regardless of the number of produced events in the workflow definition, only one SinkBinding is generated. When you define multiple events, ensure that your sink is a Knative Broker. The listener services can configure the subscriptions or triggers to consume the events from the broker. For the kogito.loanbroker.aggregated.quotes.response event in a previous example, the Knative Eventing platform must be configured with a Knative trigger using an appropriate CloudEvent filter. The following example shows the Trigger generated by the Knative Eventing add-on: Example of a Knative Trigger generated by the add-on apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: kogito-serverless-loanbroker-aggregated-quotes-response-trigger spec: broker: default filter: attributes: type: kogito.loanbroker.aggregated.quotes.response subscriber: ref: apiVersion: serving.knative.dev/v1 kind: Service name: loanbroker-flow For each consumed event definition, the Knative Eventing add-on generates one Knative Trigger. Mocking HTTP CloudEvents sink using WireMock Consuming and producing events using Apache Kafka Event correlation in SonataFlow Callback state in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Consuming and producing events on Knative Eventing in Quarkus","component":"serverlessworkflow","version":"1.43.0.Final","name":"consume-produce-events-with-knative-eventing","url":"/serverlessworkflow/latest/eventing/consume-produce-events-with-knative-eventing.html","titles":[{"text":"Knative Eventing add-on source configuration","hash":"ref-knative-eventing-add-on-source-configuration","id":1},{"text":"Knative Eventing add-on sink configuration","hash":"ref-knative-eventing-add-on-sink-configuration","id":2},{"text":"Manually sending events to an HTTP endpoint","hash":"proc-manually-sending-events-to-an-http-endpoint","id":3},{"text":"Generating Knative objects during build time","hash":"proc-generating-kn-objects-build-time","id":4},{"text":"Example of workflow event definition in Knative","hash":"ref-example-sw-event-definition-knative","id":5},{"text":"Additional resources","hash":"_additional_resources","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"18":{"id":18,"text":"This document describes how you can configure a workflow to interact with Apache Kafka. Apache Kafka uses an abstraction called topic to classify events. Events are published to a topic, and events are consumed from a topic. SonataFlow uses Smallrye connectors to encapsulate access to several brokers, enabling SonataFlow to support different brokers by changing the configuration and classpath dependencies. However, Smallrye connectors also introduce an entity called channel. The Smallrye channels are unidirectional and need to be declared as input (incoming) or output (outgoing). When using Apache Kafka, the Smallrye channels must be mapped to Apache Kafka topics through configuration. You need to add the Kafka Quarkus Smallrye connector dependency to indicate that you are using Apache Kafka. To enable a workflow to use Apache Kafka Smallrye connector, add the following dependency to the pom.xml file of your project if using Apache Maven: Add dependency for Apache Kafka Smallrye connector in pom.xml io.quarkus quarkus-smallrye-reactive-messaging-kafka The messaging capabilities are included in the Quarkus Serverless Workflow extension, even though the messaging capabilities are optional. This means you do not need to explicitly add the messaging add-on dependency when using SonataFlow. You can configure Smallrye channels for a workflow using event definitions. The Smallrye channels are defined using Quarkus configuration. The format for Smallrye channel properties is mp.messaging.[incoming|outgoing]... SonataFlow allows the following channel mapping strategies: Define one default incoming channel to receive all the incoming messages and one default outgoing channel to store all the published messages. Define a channel for each CloudEvent type so that every message type has a dedicated channel. Define a channel for certain CloudEvent types. The non-mapped CloudEvent types uses the default incoming or outgoing channel. SonataFlow first searches for a channel name in the properties that is same as CloudEvent type. If the channel name is found, SonataFlow uses the channel for that CloudEvent type. However, if the channel name is not found, SonataFlow searches for the default channel definition. In case the default channel definition is not existing, then an error is reported. The default incoming channel is kogito_incoming_stream and the default outgoing channel is kogito_outgoing_stream. To change the default incoming and outgoing topic names, you can use the following properties: Properties to change default incoming and outgoing topic names kogito.addon.messaging.incoming.defaultName= kogito.addon.messaging.outgoing.defaultName= The following properties are mandatory for each channel: connector: This property needs to be set to smallrye-kafka. Depending on whether the channel is incoming or outgoing: value.deserializer: This property is used for incoming channels. Unless you have specific marshaling requirements, you must set this property to org.apache.kafka.common.serialization.ByteArrayDeserializer or org.apache.kafka.common.serialization.StringDeserializer. value.serializer: This property is used for outgoing channels. Unless you have specific marshaling requirements, you must set this property to org.apache.kafka.common.serialization.ByteArraySerializer or org.apache.kafka.common.serialization.StringSerializer. topic is another relevant but optional property that might be set for a channel. The topic property contains the Apache Kafka topic name to be used for a channel. If topic property is not set, then the channel name is used as topic name. For more information about the properties that you can use for a channel when using Apache Kafka connector, see the properties list. This section describes examples of channel mapping, using the properties mentioned in the previous section. One Smallrye channel per CloudEvent type The serverless-workflow-callback-quarkus example application uses two CloudEvent types, including wait (incoming) and resume (outgoing). Kafka topic names match the CloudEvent types. Therefore, it is suitable to select the mapping strategy of one channel per CloudEvent type. This suggests that two channels must be configured. Note that you do not need to set the optional topic property as the channel name matches the CloudEvent type. Example property configuration mp.messaging.incoming.wait.connector=smallrye-kafka mp.messaging.incoming.wait.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer mp.messaging.outgoing.resume.connector=smallrye-kafka mp.messaging.outgoing.resume.value.serializer=org.apache.kafka.common.serialization.StringSerializer Default channel mapping The serverless-workflow-events-quarkus example application uses two CloudEvent types, including applicants (incoming) and decisions (outgoing). As mentioned before, Kafka topic names match the CloudEvent types. However, to use the default channel functionality, kogito_incoming_stream and kogito_outgoing_stream are used as channel names. As explained before, since there is no specific channel name for the CloudEvent type, then the default channels are used. Also, the default channels need to be mapped to the desired topic name using the topic property. Example property configuration mp.messaging.incoming.kogito_incoming_stream.connector=smallrye-kafka mp.messaging.incoming.kogito_incoming_stream.topic=applicants mp.messaging.incoming.kogito_incoming_stream.value.deserializer=org.apache.kafka.common.serialization.StringDeserializer mp.messaging.outgoing.kogito_outgoing_stream.connector=smallrye-kafka mp.messaging.outgoing.kogito_outgoing_stream.topic=decisions mp.messaging.outgoing.kogito_outgoing_stream.value.serializer=org.apache.kafka.common.serialization.StringSerializer Smallrye provide means to manage emitter overflow through OnOverflow annotation Kogito will annotate generated smallrye emitters for a particular channel using the information provided by a property of the form kogito.addon.messaging.emitter..overflow-strategy. The possible values are BUFFER, NONE, UNBOUNDED, FAIL, and DROP. If the value of the strategy is BUFFER, then you must specify the buffer size by using the property of the form kogito.addon.messaging.emitter..buffer-size Therefore, for the wait channel, in the previous example, if we want to buffer as many as 100 events we will add these two properties Example overflow configuration kogito.addon.messaging.emitter.wait.overflow-strategy=BUFFER kogito.addon.messaging.emitter.wait.buffer-size=100 If all your channels use the same strategy and this strategy differs from the BUFFER one (you can change buffer size globally by using the mp.messaging.emitter.default-buffer-size smallrye property). You can set it up by using kogito.addon.messaging.emitter.overflow-strategy=NONE|UNBOUNDED|FAIL|DROP Consuming and producing events on Knative Eventing Event correlation in SonataFlow Callback state in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Consuming and producing events using Apache Kafka in Quarkus","component":"serverlessworkflow","version":"1.43.0.Final","name":"consume-producing-events-with-kafka","url":"/serverlessworkflow/latest/eventing/consume-producing-events-with-kafka.html","titles":[{"text":"Smallrye channels configuration for a workflow","hash":"con-sw-smallrye-channel-configuration","id":1},{"text":"Examples of Smallrye channel mapping","hash":"ref-example-smallrye-channel-mapping","id":2},{"text":"OnOverflow handling","hash":"_onoverflow_handling","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"19":{"id":19,"text":"Event correlation plays a significant role in large event-driven applications. It allows matching one or more events with a particular workflow instance. Correlation rules with domain information can be used when defining consumed events to match a workflow instance. Also, event correlation is a practical alternative to the internal identifier processInstanceId since you can use any external domain identifier as a correlation. A correlation definition consists of one or more attributes associated with an event and the respective workflow to which the event belongs. In Serverless Workflow specification, the correlation property defines the possible correlations for a given event. Each element must contain a contextAttributeName property, which is set for the value that matches an attribute from an event. You can optionally set the contextAttributeValue property, which matches the value for the respective attribute defined in contextAttributeName property for the consumed events in a workflow. The incoming events consumed by the engine must contain the correlation attributes, set in the definition as extension context attributes. The correlation attributes are compliant with the CloudEvent format, therefore, the attributes are not part of the event payload. A new workflow instance must be created using an event, which must be declared in the workflow definition file, containing correlation attributes in the event definition section. For more information about events, see Event state in SonataFlow. Once the event is consumed, the engine extracts the correlation attributes and associates the attributes with the created workflow instance. A start event does not trigger a correlation evaluation, but acts as a moment in which correlation attributes and values are set. The correlation attributes and values are evaluated against other incoming events that might trigger the given instance. Therefore, when a non-start event is consumed and correlation attributes are evaluated, then the engine continues the execution of the matched instances (if any). The following figure shows how engine processes the correlation: Figure 1. Event correlation evaluation process You can see the correlation configuration in the serverless-workflow-correlation-quarkus example application, describing the setup and usage of event correlation in a workflow. Figure 2. Event correlation evaluation process The workflow definition file contains the correlation information, in which the events section is defined as follows: Example event correlation in a workflow \"events\": [ { \"name\": \"newAccountEvent\", \"source\": \"\", \"type\": \"newAccountEventType\", \"correlation\": [ { \"contextAttributeName\": \"userid\" } ] }, { \"name\": \"validateAccountEmailEvent\", \"source\": \"workflow\", \"type\": \"validateAccountEmail\" }, { \"name\": \"validatedAccountEmailEvent\", \"source\": \"workflow\", \"type\": \"validatedAccountEmail\", \"correlation\": [ { \"contextAttributeName\": \"userid\" } ] }, { \"name\": \"activateAccountEvent\", \"source\": \"workflow\", \"type\": \"activateAccount\" }, { \"name\": \"activatedAccountEvent\", \"source\": \"workflow\", \"type\": \"activatedAccount\", \"correlation\": [ { \"contextAttributeName\": \"userid\" } ] } ] You can create a workflow by consuming events as defined in the New User Account Request event state. The New User Account Request event state contains a reference of the newAccountEvent event, containing a correlation definition for userid attribute. Example New User Account Request event state definition { \"name\": \"New User Account Request\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"newAccountEvent\" ] } ], \"transition\": \"Validate User Email\" } When the workflow consumes a new event of newAccountEventType type, a workflow instance is created. After that, the events consumed by the same workflow must contain the same correlation attribute and value, such as userid attribute and 12345 value. This correlation attribute and value is used to evaluate and match the workflow instance to continue the workflow execution. Example incoming start event newAccountEvent { \"specversion\": \"0.3\", \"id\": \"1d174d25-46ac-4785-bc76-457c2d37d2fe\", \"source\": \"\", \"type\": \"newAccountEventType\", \"time\": \"2022-07-25T16:30:35.461988261-03:00\", \"userid\": \"12345\", \"data\": { \"email\": \"test@test.com\", \"userId\": \"12345\" } } In SonataFlow, correlating multiple events together is not supported, therefore, the events are evaluated with correlations independently. Using the workflow definition in serverless-workflow-correlation-quarkus example application, you can define other events that are published and consumed by the workflow. The serverless-workflow-correlation-quarkus example application uses callback states, such as Validate User Email. This means that once the workflow execution reaches the callback state, the workflow publishes an event of validateAccountEmailEvent type and waits to receive an event of validatedAccountEmailEvent type. For more information about the callback state, see Callback state in SonataFlow. Example Callback state definition { \"name\": \"Validate User Email\", \"type\": \"callback\", \"action\": { \"name\": \"publish validate event\", \"eventRef\": { \"triggerEventRef\": \"validateAccountEmailEvent\" } }, \"eventRef\": \"validatedAccountEmailEvent\", \"transition\": \"Activate User Account\" } The produced events contain the same correlation attributes when the workflow is created. Example produced Callback state event validateAccountEmailEvent { \"id\": \"7640a0af-b7fb-4d94-9d9d-3aa1ace60e79\", \"source\": \"/process/correlation\", \"type\": \"validateAccountEmail\", \"time\": \"2022-07-25T16:22:53.735128049-03:00\", \"data\": { \"email\": \"test@test.com\", \"userId\": \"12345\" }, \"specversion\": \"1.0\", \"kogitoprocinstanceid\": \"69019826-daef-4fb4-880b-c1658c4e49bc\", \"kogitoprocid\": \"correlation\", \"kogitoprocversion\": \"1.0\", \"kogitousertaskist\": \"1\", \"kogitoproctype\": \"SW\", \"userid\": \"12345\" } All consumed events must contain the same correlation attributes since the consumed events are used to identify the workflow instance. The following example shows the consumed events containing same correlation attributes and values, such as userid and 12345: Consumed Callback state event validatedAccountEmailEvent { \"specversion\": \"1.0\", \"id\": \"953f07a7-aea8-4956-8775-85ab59366fe6\", \"source\": \"\", \"type\": \"validatedAccountEmail\", \"time\": \"2022-07-25T16:29:27.320408379-03:00\", \"userid\": \"12345\", \"data\": null } The engine stores the correlation information in the same persistence mechanism that is configured in the workflow application. If a persistence add-on is not configured, then the correlation information is stored in memory. This means that entire correlation information is lost when the workflow application restarts, therefore this process must be used for testing purposes. For more information about the persistence configuration, see Running a workflow service using PostgreSQL. Currently, only kogito-addons-quarkus-persistence-jdbc persistence add-on supports correlation. The kogito-addons-quarkus-persistence-jdbc add-on is configured for PostgreSQL. Other persistence add-ons will be supported in a future release. Event state in SonataFlow Callback state in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Event correlation in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"event-correlation-with-workflows","url":"/serverlessworkflow/latest/eventing/event-correlation-with-workflows.html","titles":[{"text":"Example of event correlation in a workflow","hash":"ref-example-event-correlation","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"20":{"id":20,"text":"This document describes how to trigger and publish events using an AsyncAPI specification file. Underneath, SonataFlow uses the AsyncAPI Quarkiverse extension. This extension automatically generates all the required Smallrye properties to make SonataFlow work with the servers declared in the AsyncAPI file. Therefore, you do not need to add any property specific to your event broker to make AsyncAPI work. This is a huge advantage over regular event states, where whether using Kafka or Knative, you have to provide additional configuration AsyncAPI Quarkiverse extension only supports kafka and http protocols at the moment. Let’s assume there is an AsyncAPI specification file called asyncAPI.yaml, located in the classpath of your project. This file contains a servers definition which protocol is Kafka: Example of an AsyncAPI kafka server definition servers: development: url: localhost:9092 description: Development server protocol: kafka protocolVersion: '1.0.0' and a subscription channel named wait: Example of an AsyncAPI subscribing channel definition channels: wait: description: A message channel subscribe: operationId: consumeWait summary: Get messages message: $ref: '#/components/messages/message' You can define a function in your workflow, of type asyncapi, that points to consumerWait operationId: Example of an AsyncAPI subscribing function definition { \"functions\": [ { \"name\": \"consumeEvent\", \"type\": \"asyncapi\", \"operation\": \"asyncAPI.yaml#consumeWait\" } ] } Remember that, as happens with REST and RPC types, the URI part of the operation property supports http, https, and file schemas. If no schema is present, it assumes the specification file is on the project classpath. Once the function is defined, you can invoke it within an operation state: Example of an AsyncAPI subscribing function invocation { \"name\": \"waitForEvent\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": \"consumeEvent\" } ] } When your flow reach the waitForEvent state, it will stop until it receives a CloudEvent published over the Kafka topic wait. Let’s assume there is an AsyncAPI specification file called asyncAPI.yaml, located in the classpath of your project. This file contains a servers definition which protocol is HTTP: Example of an AsyncAPI http server definition servers: development: url: localhost:8080 description: Development server protocol: http protocolVersion: '1.0.0' and a publishing channel named resume: Example of an AsyncAPI publishing channel definition channels: resume: description: A message channel publish: operationId: sendResume summary: Get messages message: $ref: '#/components/messages/message' You can define a function in your workflow, of type asyncapi, that point to sendResume operationId: Example of an AsyncAPI publishing function definition { \"functions\": [ { \"name\": \"sendResume\", \"type\": \"asyncapi\", \"operation\": \"asyncAPI.yaml#sendResume\" } ] } Once the function is defined, you can invoke it within an operation state: Example of an AsyncAPI publishing function invocation { \"name\": \"sendEvent\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": \"sendResume\", \"arguments\" : { \"name\" : \"Javierito\" } } ] } When your flow reach the sendEvent state, it will send an event to the endpoint http://localhost:8080/resume, with the payload {\"name\":\"Javierito\"} If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Orchestrating AsyncAPI Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestration-of-asyncapi-based-services","url":"/serverlessworkflow/latest/eventing/orchestration-of-asyncapi-based-services.html","titles":[{"text":"Consuming an event","hash":"_consuming_an_event","id":1},{"text":"Publishing an event","hash":"_publishing_an_event","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"21":{"id":21,"text":"As a developer, you can use SonataFlow and create a Hello World application, which includes the following procedures: Bootstrapping a project Creating a workflow Running your workflow application Testing your workflow application Also, you can directly access an example application by cloning serverless-workflow-examples/serverless-workflow-hello-world from the GitHub repository. This document describes how to create a workflow application that serves a hello_world endpoint. The workflow contains the following two states: Inject Hello World: Injects a Hello World message into the response Inject Mantra: Injects a Mantra message into the response Figure 1. Example Hello World workflow Prerequisites Java 11+ is installed with JAVA_HOME configured appropriately. Apache Maven 3.8.6 is installed. Quarkus CLI or Knative Workflow CLI 0.21.3 is installed. Visual Studio Code with Red Hat Java Extension and Red Hat Serverless Workflow Editor is installed to edit your workflows. For more information about the tooling and the required dependencies, see Getting familiar with SonataFlow tooling. To create your workflow service, first you need to bootstrap a project. Procedure In a command terminal, use one of the following commands to create a project: Quarkus CLI Apache Maven Knative workflow CLI Create a project using Quarkus CLI quarkus create app \\ -x=kogito-quarkus-serverless-workflow \\ -x=quarkus-resteasy-jackson \\ -x=quarkus-smallrye-openapi \\ --no-code \\ org.acme:serverless-workflow-hello-world:1.0.0-SNAPSHOT The previous command creates a Maven Quarkus project in the serverless-workflow-hello-world directory containing the required dependencies, including: kogito-quarkus-serverless-workflow: Adds support for workflows. quarkus-resteasy-jackson: Adds support for RESTEasy, which is required by the generated REST resources that are used to start the flow process using an HTTP request. quarkus-smallrye-openapi: Adds support for Swagger documentation when you run the application in development mode. --no-code: Prevents workflow example code from being generated. The SwaggerUI is available at http://localhost:8080/q/swagger-ui/ when you run the application. Create a project using Apache Maven mvn io.quarkus.platform:quarkus-maven-plugin:2.16.9.Final:create \\ -DprojectGroupId=org.acme \\ -DprojectArtifactId=serverless-workflow-hello-world \\ -Dextensions=\"kogito-quarkus-serverless-workflow,quarkus-resteasy-jackson,quarkus-smallrye-openapi\" \\ -DnoCode cd serverless-workflow-hello-world In the previous command, org.acme, serverless-workflow-hello-world, and 1.0.0-SNAPSHOT is group ID, artifact ID, and version of your project respectively. -DnoCode prevents the generation of workflow example code. Create a project using Knative workflow CLI kn workflow create \\ --name serverless-workflow-hello-world \\ --extension quarkus-jsonp,quarkus-smallrye-openapi \\ --quarkus-platform-group-id=io.quarkus.platform \\ --quarkus-version=2.16.9.Final For more information about Knative workflow CLI, see SonataFlow plug-in for Knative CLI. After bootstrapping a project, you need to create a workflow. In the following procedure, a workflow named Hello World Workflow is created. Procedure Create a file named hello.sw.json in the src/main/resources directory with the following content: Example content for hello.sw.json file { \"id\": \"hello_world\", (1) \"version\": \"1.0\", \"specVersion\": \"0.8\", \"name\": \"Hello World Workflow\", \"description\": \"JSON based hello world workflow\", \"start\": \"Inject Hello World\", (3) \"states\": [ (2) { \"name\": \"Inject Hello World\", \"type\": \"inject\", (4) \"data\": { (5) \"greeting\": \"Hello World\" }, \"transition\": \"Inject Mantra\" (6) }, { \"name\": \"Inject Mantra\", \"type\": \"inject\", \"data\": { \"mantra\": \"Serverless Workflow is awesome!\" (7) }, \"end\": true (8) } ] } In the previous example: 1 id field is the unique identifier of the workflow. SonataFlow generates the REST endpoints based on this unique identifier. 2 states defines the states of the workflow. In the Hello World example, the workflow contains two states, such as Inject Hello World and Inject Mantra. 3 start field defines the state in which the workflow starts. 4 type defines the type of the state. In the previous example, the state is inject. The inject state can be used to inject static data into state data input. 5 data defines the data that is injected into the state. In the previous example, greeting is injected with the Hello World value. 6 transition field defines the next state that is reached after the current state is completed. 7 Injects a mantra with the value Serverless Workflow is awesome! into the workflow data. 8 end field defines that the current state is the end of the workflow. When the workflow reaches the end state, the workflow stops and the REST endpoint returns the workflow data, such as: Example workflow data { \"greeting\": \"Hello World\", \"mantra\": \"Serverless Workflow is awesome!\" } The workflow definition follows the CNCF Serverless Workflow specification. For more information, see CNCF Serverless Workflow specification. To verify that project is created, compile the project using the following command: Quarkus CLI Apache Maven Knative workflow CLI Compile your project using Quarkus CLI quarkus build Compile your project using Apache Maven mvn clean package Build your project and generate a local image called dev.local/serverless-workflow-hello-world:latest kn workflow build --image dev.local/serverless-workflow-hello-world --verbose The --verbose flag is used to display the output of the build command. This flag is optional. For more information about Knative workflow CLI, see SonataFlow plug-in for Knative CLI. After creating a workflow, you can run your workflow application. Procedure Enter the following command to run your workflow application: Quarkus CLI Apache Maven Run your workflow application using Quarkus CLI quarkus dev Run your workflow application using Apache Maven mvn clean quarkus:dev Knative workflow CLI: Currently, Knative workflow CLI doesn’t support yet running workflows locally. You can either: Run your workflow application using Apache Maven mvn clean quarkus:dev Run your workflow application using Quarkus CLI quarkus dev For more information about Knative workflow CLI, see SonataFlow plug-in for Knative CLI. Also, to deploy and run your workflow application, see Deploying workflow application on Minikube Example response [INFO] ------------- [INFO] Building serverless-workflow-hello-world 1.0.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- quarkus-maven-plugin:2.16.9.Final:dev (default-cli) @ serverless-workflow-hello-world --- [INFO] Invoking org.apache.maven.plugins:maven-resources-plugin:2.6:resources) @ serverless-workflow-hello-world [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 3 resources ...more output... __ ____ __ _____ ___ __ ____ ______ --/ __ \\/ / / / _ | / _ \\/ //_/ / / / __/ -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\\ \\ --\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/ 2022-05-25 14:38:09,741 INFO [org.kie.kog.add.qua.mes.com.QuarkusKogitoExtensionInitializer] (Quarkus Main Thread) Registered Kogito CloudEvent extension 2022-05-25 14:38:09,840 INFO [io.quarkus] (Quarkus Main Thread) serverless-workflow-hello-world 1.0.0-SNAPSHOT on JVM (powered by Quarkus 2.16.9.Final) started in 6.470s. Listening on: http://localhost:8080 2022-05-25 14:38:09,843 INFO [io.quarkus] (Quarkus Main Thread) Profile dev activated. Live Coding activated. 2022-05-25 14:38:09,843 INFO [io.quarkus] (Quarkus Main Thread) Installed features: [cache, cdi, jackson-jq, kogito-addon-messaging-extension, kogito-processes, kogito-serverless-workflow, reactive-routes, rest-client, rest-client-jackson, resteasy, resteasy-jackson, smallrye-context-propagation, smallrye-openapi, smallrye-reactive-messaging, smallrye-reactive-messaging-http, swagger-ui, vertx] 2022-05-25 14:38:12,877 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: __ ____ __ _____ ___ __ ____ ______ 2022-05-25 14:38:12,878 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: --/ __ \\/ / / / _ | / _ \\/ //_/ / / / __/ 2022-05-25 14:38:12,879 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\\ \\ 2022-05-25 14:38:12,879 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: --\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/ 2022-05-25 14:38:12,879 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:09,692 INFO [io.zon.tes.db.pos.emb.EmbeddedPostgres] (main) Detected a Linux x86_64 system 2022-05-25 14:38:12,880 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:09,705 INFO [io.zon.tes.db.pos.emb.DefaultPostgresBinaryResolver] (main) Detected distribution: 'Red Hat Enterprise Linux' ...more output... 2022-05-25 14:38:12,889 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:12,332 INFO [io.zon.tes.db.pos.emb.EmbeddedPostgres] (postgres:pid(90)) 2022-05-25 17:38:12.332 UTC [99] LOG: incomplete startup packet 2022-05-25 14:38:12,890 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:12,405 INFO [io.zon.tes.db.pos.emb.EmbeddedPostgres] (main) 5df1ed6e-7a15-4091-bcfb-e293aa293bfe postmaster startup finished in 00:00:00.180 2022-05-25 14:38:12,890 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:12,405 INFO [org.kie.kog.per.inm.pos.run.InmemoryPostgreSQLRecorder] (main) Embedded Postgres started at port \"44729\" with database \"postgres\", user \"postgres\" and password \"postgres\" 2022-05-25 14:38:12,890 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:12,636 WARN [io.qua.run.con.ConfigRecorder] (main) Build time property cannot be changed at runtime: 2022-05-25 14:38:13,375 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,105 INFO [org.kie.kog.per.pro.ProtobufService] (main) Registering Kogito ProtoBuffer file: kogito-index.proto 2022-05-25 14:38:13,377 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,132 INFO [org.kie.kog.per.pro.ProtobufService] (main) Registering Kogito ProtoBuffer file: kogito-types.proto 2022-05-25 14:38:13,378 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,181 INFO [io.quarkus] (main) data-index-service-inmemory 1.22.0.Final on JVM (powered by Quarkus 2.9.0.Final) started in 4.691s. Listening on: http://0.0.0.0:8080 2022-05-25 14:38:13,379 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,182 INFO [io.quarkus] (main) Profile prod activated. 2022-05-25 14:38:13,380 INFO [org.kie.kog.qua.pro.dev.DataIndexInMemoryContainer] (docker-java-stream--938264210) STDOUT: 2022-05-25 17:38:13,182 INFO [io.quarkus] (main) Installed features: [agroal, cdi, hibernate-orm, hibernate-orm-panache, inmemory-postgres, jdbc-postgresql, narayana-jta, oidc, reactive-routes, rest-client-reactive, rest-client-reactive-jackson, security, smallrye-context-propagation, smallrye-graphql-client, smallrye-health, smallrye-metrics, smallrye-reactive-messaging, smallrye-reactive-messaging-http, vertx, vertx-graphql] Once your workflow application is started, you can send a request for the provided endpoint: Example request curl -X POST -H 'Content-Type:application/json' http://localhost:8080/hello_world Example response {\"id\":\"efb59bfa-ad9c-4062-a6d2-2d9184dd4b3d\",\"workflowdata\":{\"greeting\":\"Hello World\",\"mantra\":\"Serverless Workflow is awesome!\"}} When running in development mode (using Quarkus CLI or Apache Maven), you can update your workflow with a new mantra value without restarting the application. Update your workflow { \"name\": \"Inject Mantra\", \"type\": \"inject\", \"data\": { \"mantra\": \"Serverless Workflow is amazing!\" (1) }, \"end\": true } 1 New mantra value Example request curl -X POST -H 'Content-Type:application/json' http://localhost:8080/hello_world Example response {\"id\":\"efb59bfa-ad9c-4062-a6d2-2d9184dd4b3d\",\"workflowdata\":{\"greeting\":\"Hello World\",\"mantra\":\"Serverless Workflow is amazing!\"}} Note that the mantra value is updated without restarting the application, because SonataFlow leverages the Quarkus live coding feature. To stop the application, press CTRL+C. To test your workflow application, you can follow the instructions in the Testing your workflow application using REST Assured. Getting familiar with SonataFlow tooling Orchestrating the OpenAPI services If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Creating a Quarkus Workflow Project","component":"serverlessworkflow","version":"1.43.0.Final","name":"create-your-first-workflow-service","url":"/serverlessworkflow/latest/getting-started/create-your-first-workflow-service.html","titles":[{"text":"Bootstrapping a project","hash":"proc-boostrapping-the-project","id":1},{"text":"Creating a workflow","hash":"proc-creating-workflow","id":2},{"text":"Building your workflow application","hash":"proc-building-application","id":3},{"text":"Running your workflow application","hash":"proc-running-application","id":4},{"text":"Testing your workflow application","hash":"proc-testing-application","id":5},{"text":"Additional resources","hash":"_additional_resources","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"22":{"id":22,"text":"The tooling in SonataFlow provides the best developer experience for the workflow ecosystem. The following tools are provided that you can use to author your workflow assets: VS Code extension: Use the Serverless Workflow editor and edit the CNCF Serverless Workflow specification files in Visual Studio Code. Chrome GitHub extension: View and edit the CNCF Serverless Workflow specification files in GitHub. Kogito Serverless Workflow Tools extension in Quarkus Dev UI: View, manage, and start the workflow instances. SonataFlow plug-in for Knative CLI: Set up a local workflow project using the command line. Serverless Logic online tooling: Try and run the Serverless Workflow example applications in a web environment. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Getting familiar with SonataFlow tooling","component":"serverlessworkflow","version":"1.43.0.Final","name":"getting-familiar-with-our-tooling","url":"/serverlessworkflow/latest/getting-started/getting-familiar-with-our-tooling.html","titles":[{"text":"Found an issue?","hash":"_found_an_issue","id":1}]},"23":{"id":23,"text":"SonataFlow can integrate with Apache Camel Routes by adding the Kogito Quarkus Camel Add-on to your project. It enables the workflow engine to identify and call Camel routes declared in YAML or XML in the same workflow project context. You can enable Quarkus Camel in your project. Prerequisites A workflow application is created. For more information about creating a workflow, see Creating your first workflow service. Procedure To add the Quarkus Camel to your workflow application, add the org.kie.kogito:kogito-addons-quarkus-camel dependency to the pom.xml file of your project as follows: Dependency to be added to the pom.xml file to enable metrics org.kie.kogito kogito-addons-quarkus-camel You can add YAML or XML Camel routes to your workflow project. Procedure Create a YAML or XML Camel Routes using your IDE or the Kaoto VSCode Editor and place them in the src/main/resources/routes directory. The route from endpoint must be a direct component. That’s the endpoint producer expected by the workflow engine. The route response must be in a valid format that the workflow context can understand: A string that contains a valid JSON object A valid Java bean that can be serialized to JSON A Jackson’s JsonNode object Any primitive type (Integer, Float, Decimal, String, etc) The response will be merged into the workflow state context. If it is an array or a complex object, the response will be added to the special attribute response. Example of a Camel route with the direct endpoint returning a valid JSON string representation - from: uri: direct:logRouteReplaceHeader (1) steps: (2) - setBody: simple: '{ \"id\": \"${header.WorkflowID}\", \"arg1\": { \"arg2\": \"value1\" } }' (3) - log: message: We received the ${body} (4) 1 Camel route producer definition using the direct component 2 Definition of the Camel route steps 3 Replace the Camel message body with a valid JSON object containing the header WorkflowID from the workflow context 4 Log the Camel message body in the console for debugging purposes. You can define and reference your Camel functions in the workflow definition. Prerequisites You have created Camel routes in the workflow Maven project. Procedure In the functions definition section of your workflow DSL, declare the Camel route as exemplified below: Example of a Camel Route function definition { \"functions\": [ { \"name\": \"logRoute\", \"type\": \"custom\", \"operation\": \"camel:direct:logRouteReplaceHeader\" } ] } The operation description must have the prefix camel:direct:, indicating that you want to produce a message to this route via the Camel Direct Component. Direct is the only component supported by SonataFlow at the moment. The operation suffix contains the name of the route endpoint. In the case of this example, logRouteReplaceHeader. The Camel route defined in the workflow must be available in your project during runtime, otherwise, an IllegalArgumentException will be thrown. To use the Camel function definition in a workflow action, you can simply reference it as you normally would with any other SonataFlow function definitions. For example: Example of a workflow state action referencing { \"states\": [ { \"name\": \"sendToLog\", \"type\": \"operation\", \"actions\": [ { \"functionRef\": { \"refName\": \"logRoute\", (1) \"arguments\": { \"body\": \"${ . }\", (2) \"headers\": { \"WorkflowID\": \"$WORKFLOW.instanceId\" (3) } } } } ], \"end\": true } ] } 1 The function reference name, as defined in the function attribute. 2 The body definition. A jq expression to be evaluated in runtime resulting in the body payload. 3 The headers definition that must be a key/value pair or a valid jq expression evaluated in runtime. Once a message is received back from the Camel route, the data is merged into the workflow payload: Message payload example returned by the Camel route { \"id\": \"777adb97-d297-45fd-9969-efafe4dfb3e7\", \"arg1\": { \"arg2\": \"value1\" } } There is an example project available on GitHub using this new feature. You can use it as a reference to have a better understanding of the Camel integration with SonataFlow. Custom functions for your SonataFlow service jq expressions in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Integrating with Camel routes","component":"serverlessworkflow","version":"1.43.0.Final","name":"camel-routes-integration","url":"/serverlessworkflow/latest/integrations/camel-routes-integration.html","titles":[{"text":"Enabling Quarkus Camel in SonataFlow","hash":"proc-enable-quarkus-camel","id":1},{"text":"Creating Camel routes in SonataFlow","hash":"con-creating-camel-routes","id":2},{"text":"Defining and referencing Camel functions in the Workflow DSL","hash":"con-importing-camel-routes","id":3},{"text":"Example project","hash":"_example_project","id":4},{"text":"Additional resources","hash":"_additional_resources","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"24":{"id":24,"text":"This document describes how to call Knative services using SonataFlow custom functions. The procedure described in this document is based on the serverless-workflow-custom-function-knative example application. For more details about the Knative custom function, see Custom functions for your SonataFlow service. Prerequisites Your SonataFlow application is ready to use. For more information about building the application container, see Building workflow images using Quarkus CLI. Minikube is installed kubectl command-line tool is installed. Otherwise, Minikube handles it. Knative CLI is installed. For more information, see Install the Knative CLI. Knative workflow CLI is installed. For more information see Serverless Workflow plug-in for Knative CLI. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). You have the custom-function-knative-service project deployed on Knative. For more information on how to deploy a Quarkus project to Knative, see the Quarkus Kubernetes extension documentation. Procedure Add the knative-serving add-on dependency to your workflow project. org.kie.kogito kogito-addons-quarkus-knative-serving Enable the Service Discovery feature. Discover the name of the Knative service that your workflow will invoke. In a terminal window, run the following command: kn service list You should see an output like: NAME URL LATEST AGE CONDITIONS READY REASON custom-function-knative-service http://custom-function-knative-service.default.10.109.169.193.sslip.io custom-function-knative-service-00001 3h16m 3 OK / 3 True Save the Knative service name (custom-function-knative-service) to use it in the next step. Declare the Knative SonataFlow custom function. In the functions section of your workflow, add the following: { \"name\": \"greet\", (1) \"type\": \"custom\", (2) \"operation\": \"knative:services.v1.serving.knative.dev/custom-function-knative-service?path=/function\", (3) } 1 The name of the SonataFlow function 2 Indicates that this function is a custom one 3 The coordinates of the service you want to invoke Invoke the declared function. In an operation state, add an action that references the function you declared in the previous step like the following: \"actions\": [ { \"functionRef\": { \"refName\": \"greet\", (1) \"arguments\": { (2) \"name\": \".name\" } } } ] 1 Function’s name 2 The payload that should be sent in the request Deploy your workflow service to Knative. For more information on how to deploy a SonataFlow SonataFlow project to Knative, see the Deploying on Kubernetes. Submit a request to the workflow service curl -X 'POST' \\ '/plainJsonKnativeFunction' \\ (1) -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"name\": \"Kogito\" }' 1 Replace with the URL of your deployed workflow service You should see an output like (id will change): {\"id\":\"87cf8275-782d-4e0b-a9be-a95f95c9c190\",\"workflowdata\":{\"name\":\"Kogito\",\"greeting\":\"Greetings from Serverless Workflow, Kogito\"}} Knative functions support CloudEvent as the message protocol. SonataFlow can create and post CloudEvent messages in functionRef. For more information see core/custom-functions-support.adoc#sending-cloudevents Custom functions for your SonataFlow service Deploying your Serverless Workflow application on Minikube Deploying your Serverless Workflow application on Kubernetes If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Invoking Knative services from SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"custom-functions-knative","url":"/serverlessworkflow/latest/integrations/custom-functions-knative.html","titles":[{"text":"Sending as CloudEvent","hash":"_sending_as_cloudevent","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"25":{"id":25,"text":"SonataFlow generates metrics that can be consumed by Prometheus and visualized by dashboard tools, such as OpenShift, Dashbuilder, and Grafana. This document describes how you can enable and expose the generated metrics to Prometheus. You can enable the metrics in your workflow application. Prerequisites A workflow application is created. For more information about creating a workflow, see Creating your first workflow service. Procedure To add the metrics to your workflow application, add the org.kie.kogito:kogito-addons-quarkus-monitoring-prometheus dependency to the pom.xml file of your project: Dependency to be added to the pom.xml file to enable metrics org.kie.kogito kogito-addons-quarkus-monitoring-prometheus Rebuild your workflow application. The metrics is available at /q/metrics endpoint. After enabling the metrics in SonataFlow, the generated metrics can be consumed from OpenShift, Kubernetes, and Prometheus to visualize on different dashboard tools. If your workflow server is running on OpenShift, then you can use the server to monitor your workflow application. Also, you can perform the task of consuming metrics from OpenShift. Prerequisites Metrics is enabled in SonataFlow. For more information, see Enabling metrics in SonataFlow. Procedure To consume metrics from OpenShift, enable monitoring for user-defined projects. For more information, see Enabling monitoring for user-defined projects in OpenShift documentation. When you enable monitoring for user-defined projects, the Prometheus Operator is installed automatically. Create a service monitor as shown in the following configuration: Example configuration in service-monitor.yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: k8s-app: prometheus-app-monitor name: prometheus-app-monitor namespace: my-project spec: endpoints: - interval: 30s targetPort: 8080 path: /q/metrics scheme: http selector: matchLabels: app-with-metrics: 'serverless-workflow-app' Run the following command to apply the service monitor: Apply service monitor oc apply -f service-monitor.yaml In the previous procedure, a service monitor named prometheus-app-monitor is created, which selects applications containing the label as app-with-metrics: serverless-workflow-app. Ensure that your workflow application contains the same label. After that, Prometheus sends request to the /q/metrics endpoint for all the services that are labeled with app-with-metrics: serverless-workflow-app every 30 seconds. For more information about monitoring Quarkus application using Micrometer and Prometheus into OpenShift, see Quarkus - Micrometer Metrics. Consuming metrics from Kubernetes is similar to OpenShift. However, you need to install the Prometheus Operator project manually. For more information about installing Prometheus Operator, see Prometheus Operator website. If your workflow server is running on Prometheus, then you can perform the task of consuming metrics from Prometheus and visualize the workflow on different dashboard tools. Prerequisites Metrics is enabled in SonataFlow. For more information, see Enabling metrics in SonataFlow. Procedure Use the following configuration to enable Prometheus to remove metrics directly from the workflow application: Example Prometheus configuration - job_name: 'Serverless Workflow App' scrape_interval: 2s metrics_path: /q/metrics static_configs: - targets: ['localhost:8080'] Replace the values of job_name and scrap_interval in the previous configuration with your own values. Ensure that target under static_configs parameter in Prometheus configuration matches with your workflow application location. For more information about configuring Prometheus, see Configure Prometheus to monitor the sample targets in Prometheus Getting Started document. In SonataFlow, you can check the following example metrics: kogito_process_instance_completed_total: Completed workflows kogito_process_instance_started_total: Started workflows kogito_process_instance_running_total: Running workflows kogito_process_instance_duration_seconds_sum: Workflows total duration Internally, workflows are referred as processes. Therefore, the processId and processName is workflow ID and name respectively. Each of the metrics mentioned previously contains a label for a specific workflow ID. For example, the kogito_process_instance_completed_total metric contains labels for jsongreet, yamlgreet, and foreach workflows: Example kogito_process_instance_completed_total metric # HELP kogito_process_instance_completed_total Completed Process Instances # TYPE kogito_process_instance_completed_total counter kogito_process_instance_completed_total{app_id=\"default-process-monitoring-listener\",artifactId=\"kogito-serverless-workflow-demo\",node_name=\"2\",process_id=\"jsongreet\",version=\"1.0.0-SNAPSHOT\",} 154.0 kogito_process_instance_completed_total{app_id=\"default-process-monitoring-listener\",artifactId=\"kogito-serverless-workflow-demo\",node_name=\"2\",process_id=\"yamlgreet\",version=\"1.0.0-SNAPSHOT\",} 218.0 kogito_process_instance_completed_total{app_id=\"default-process-monitoring-listener\",artifactId=\"kogito-serverless-workflow-demo\",node_name=\"2\",process_id=\"foreach\",version=\"1.0.0-SNAPSHOT\",} 162.0 Internally, SonataFlow uses Quarkus Micrometer extension, which also exposes built-in metrics. You can disable the Micrometer metrics in SonataFlow. For more information, see Quarkus - Micrometer Metrics. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Exposing Workflow base metrics to Prometheus","component":"serverlessworkflow","version":"1.43.0.Final","name":"expose-metrics-to-prometheus","url":"/serverlessworkflow/latest/integrations/expose-metrics-to-prometheus.html","titles":[{"text":"Enabling metrics in SonataFlow","hash":"proc-enable-metrics-sw","id":1},{"text":"Metrics consumption in SonataFlow","hash":"con-consume-metrics-sw","id":2},{"text":"Consuming metrics from OpenShift","hash":"proc-consume-metrics-openshift","id":3},{"text":"Consuming metrics from Prometheus","hash":"proc-consume-metrics-prometheus","id":4},{"text":"Example metrics in SonataFlow","hash":"ref-sw-example-metrics","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"26":{"id":26,"text":"This document describes how you can build dashboards to monitor your workflows data. To build the dashboards, you need data, which you can acquire from your workflows using one of the following methods: Enable metrics Integrate with Data Index to consume data using the REST API Use custom mechanisms, such as ProcessInstanceListener The following sections describes the process of creating dashboards using metrics and Data Index GraphQL REST API. The dashboards for workflows are visualization of data that run on the client side. The dashboards are created using Dashbuilder, which consumes data from any JSON source. You can define a dashboard in YAML format. To use the Dashbuilder, download and uncompress the dashbuilder-client NPM package. Also, edit the setup.js file to link your YAML files. For more information about using Dashbuilder, see Dashbuilder documentation. Figure 1. Dashbuilder You can build dashboards to monitor the data of your workflows using metrics. Prerequisites A workflow application is created. For more information about creating a workflow, see Creating your first workflow service. Procedure To enable metrics for your workflows application add org.kie.kogito:kogito-addons-quarkus-monitoring-prometheus dependency in pom.xml file of your application: Add metrics dependency to pom.xml file org.kie.kogito kogito-addons-quarkus-monitoring-prometheus You can find the metrics in /q/metrics path. The dashbuilder can consume the data of your workflow directly from the metrics endpoints. Therefore, you can use a JSONAta expression to format the metrics and display the metrics in a table using the following example of YAML code: Example YAML to show metrics in a table datasets: - uuid: swf_metrics url: http://localhost:8080/q/metrics expression: >- $map($, function($l) { [ $l[0], $contains($l[1], \"process_id\") ? $replace($match($l[1], /process_id=\".*?\"/).match, \"process_id\", \"workflow\") : $l[1], $l[2] = \"NaN\" ? -1 : $l[2] ] } ) pages: - components: - settings: lookup: uuid: swf_metrics Figure 2. Example metrics in a table To extract a specific information from your workflow, use specific metrics. Metrics related to workflows include: kogito_process_instance_completed_total: Completed workflows kogito_process_instance_started_total: Started workflows kogito_process_instance_running_total: Running workflows kogito_process_instance_duration_seconds_sum: Workflows total duration When you display the metrics, you can filter the data to include the specific metrics. You can use the metrics and bar chart components in dashbuilder to display the specific metrics and after filtering the metrics, you can put the information in bar charts as shown in the following example YAML code: Example YAML to display bar charts datasets: - uuid: metrics url: http://localhost:8080/q/metrics expression: >- $map($, function($l) { [ $l[0], $contains($l[1], \"process_id\") ? $replace($match($l[1], /process_id=\".*?\"/).match, \"process_id\", \"workflow\") : $l[1], $l[2] = \"NaN\" ? -1 : $l[2] ] } ) columns: - id: metric type: label - id: labels type: label - id: value type: number pages: - rows: - columns: - span: \"6\" components: - html: >- Started - settings: type: BARCHART chart: resizable: 'true' width: '2000' lookup: uuid: metrics sort: - column: value sortOrder: DESCENDING filter: - column: metric function: EQUALS_TO args: - \"kogito_process_instance_started_total\" group: - columnGroup: source: labels groupFunctions: - source: labels - source: value - span: \"6\" components: - html: >- Running - settings: type: BARCHART chart: resizable: 'true' width: '2000' lookup: uuid: metrics sort: - column: value sortOrder: DESCENDING filter: - column: metric function: EQUALS_TO args: - \"kogito_process_instance_running_total\" group: - columnGroup: source: labels groupFunctions: - source: labels - source: value - columns: - span: \"6\" components: - html: >- Completed - settings: type: BARCHART chart: resizable: 'true' width: '2000' dataSetLookup: uuid: metrics sort: - column: value sortOrder: DESCENDING filter: - column: metric function: EQUALS_TO args: - \"kogito_process_instance_completed_total\" group: - columnGroup: source: labels groupFunctions: - source: labels - source: value - span: \"6\" components: - html: >- Total Duration - settings: type: BARCHART chart: resizable: 'true' width: '2000' lookup: uuid: metrics sort: - column: value sortOrder: DESCENDING filter: - column: metric function: EQUALS_TO args: - \"kogito_process_instance_duration_seconds_sum\" group: - columnGroup: source: labels groupFunctions: - source: labels - source: value Figure 3. Example workflow metrics dashboard If you are using Prometheus, you can use PROMQL with Prometheus REST API and transform the result to JSON format that is supported by dashbuilder to build the dashoards. For more information about dashbuilder and Prometheus, see Creating Prometheus Dashboards using Dashbuilder. Data Index is a service that contains all the data related to the execution of your workflow. The Data Index service is available during the development mode. By default, you can access the Data Index at http://localhost:8180. The Data Index service uses GraphQL, so that dashbuilder can connect with the service using its REST API and transform the result to the supported format. Prerequisites A workflow application is created. For more information about creating a workflow, see Creating your first workflow service. Procedure Go to the Data Index GraphQL interface (default to http://localhost:8180/graphiql) and test your query. The following is an example of GraphQL query that lists all the workflows: Example GraphQL query to retrieve all workflows { ProcessInstances { processId processName state start end businessKey error {message} } } Run the GraphQL query. When you run the query, note that the URL is modified to includes the query. Copy the URL and modify graphiql to graphql. When you access the URL with graphql, it returns the result in a JSON format as shown in the following example: GraphQL JSON result when using the query { \"data\": { \"ProcessInstances\": [ { \"processId\": \"yamlgreet\", \"processName\": \"Greeting workflow\", \"state\": \"COMPLETED\", \"start\": \"2022-07-01T16:08:12.038Z\", \"end\": \"2022-07-01T16:08:12.061Z\", \"businessKey\": null, \"error\": null }, ] } } Internally, workflows are referenced as processes, therefore the processId is the workflow ID and processName is the workflow name. Transform the response to the transform expression. When you transform the response, note that the response includes the columns metdata for the data set. Example transform expression to retrieve fields from JSON response { \"columns\" :[ {\"id\": \"Workflow Id\", \"type\": \"label\"}, {\"id\": \"Workflow Name\", \"type\": \"label\"}, {\"id\": \"State\", \"type\": \"label\"}, {\"id\": \"Start\", \"type\": \"label\"}, {\"id\": \"End\", \"type\": \"label\"}, {\"id\": \"Business Key\", \"type\": \"label\"}, {\"id\": \"Error\", \"type\": \"label\"} ], \"values\" : $.data.ProcessInstances.[ processId, processName, state, start, end, businessKey ? businessKey : \"\", error ? error.message : \"\"] } Create your dashboard using the transform expression and the URL mentioned in the previous step. Example dashboard created using Data Index datasets: - uuid: workflows url: http://localhost:8180/graphql/?query=%7BProcessInstances%7BprocessId%20processName%20state%20start%20end%20businessKey%20error%7Bmessage%7D%7D%7D%0A expression: >- { \"columns\" :[ {\"id\": \"Workflow Id\", \"type\": \"label\"}, {\"id\": \"Workflow Name\", \"type\": \"label\"}, {\"id\": \"State\", \"type\": \"label\"}, {\"id\": \"Start\", \"type\": \"label\"}, {\"id\": \"End\", \"type\": \"label\"}, {\"id\": \"Business Key\", \"type\": \"label\"}, {\"id\": \"Error\", \"type\": \"label\"} ], \"values\" : $.data.ProcessInstances.[ processId, processName, state, start, end, businessKey ? businessKey : \"\", error ? error.message : \"\"] } pages: - components: - settings: type: BARCHART lookup: uuid: workflows group: - columnGroup: source: State functions: - source: State - source: State function: COUNT - settings: lookup: uuid: workflows The previous example of dashboard contains bar chart that counts the workflow instances by State and lists all the dashboards in a table. Following is the graphical dashboard resulted from the previous example: Figure 4. Example dashboard created using Data Index For more examples of dashboards, see Dashbuilder website. Creating your first workflow service If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Displaying Workflow Data in Dashboards","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-dashboard-with-runtime-data","url":"/serverlessworkflow/latest/integrations/serverless-dashboard-with-runtime-data.html","titles":[{"text":"Dashboards for workflows","hash":"con-sw-dashboard","id":1},{"text":"Building dashboards using metrics","hash":"proc-sw-dashboard-metrics","id":2},{"text":"Building dashboards using Data Index","hash":"proc-sw-dashboard-data-index","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"27":{"id":27,"text":"The Job Service facilitates the scheduled execution of tasks in a cloud environment. These tasks are implemented by independent services, and can be started by using any of the Job Service supported interaction modes, based on Http calls or Knative Events delivery. To schedule the execution of a task you must create a Job, that is configured with the following information: Schedule: the job triggering periodicity. Recipient: the entity that is called on the job execution for the given interaction mode, and receives the execution parameters. In the context of the SonataFlows, the Job Service is responsible for controlling the execution of the time-triggered actions. And thus, all the time-base states that you can use in a workflow, are handled by the interaction between the workflow and the Job Service. For example, every time the workflow execution reaches a state with a configured timeout, a corresponding job is created in the Job Service, and when the timeout is met, a http callback is executed to notify the workflow. To set up this integration you can use different communication alternatives, that must be configured by combining the Job Service and the Quarkus Workflow Project configurations. If the project is not configured to use the Job Service, all time-based actions will use an in-memory implementation of that service. However, this setup must not be used in production, since every time the application is restarted, all the timers are lost. This last is not suited for serverless architectures, where the applications might scale to zero at any time, etc. Since the main goal of the Job Service is to work with the active jobs, such as the scheduled jobs that needs to be executed, when a job reaches a final state, it is removed from the Job Service. However, in some cases where you want to keep the information about the jobs in a permanent repository, you can configure the Job Service to produce status change events, that can be collected by the Data Index Service, where they can be indexed and made available by GraphQL queries. To execute the Job Service in your docker or kubernetes environment, you must use the following image: kogito-jobs-service-allinone In the next topics you can see the different configuration parameters that you must use, for example, to configure the persistence mechanism, the eventing system, etc. More information on this image can be found here. We recommend that you follow this procedure: Identify the persistence mechanism to use and see the required configuration parameters. Identify if the Eventing API is required for your needs and see the required configuration parameters. Identify if the project containing your workflows is configured with the appropriate Job Service Quarkus Extension. Finally, to run the image, you must use the environment variables exposed by the image, and other configurations that you can set using additional environment variables or using system properties with java like names. Variable Description SCRIPT_DEBUG Enable debug level of the image and its operations. JOBS_SERVICE_PERSISTENCE Any of the following values: postgresql, ephemeral, or infinispan to select the persistence mechanism to use, see. If used, these values must always be passed as environment variables. To configure the image by using environment variables you must pass one environment variable per each parameter. Job Service image configuration for docker execution example docker run -it -e JOBS_SERVICE_PERSISTENCE=postgresql -e VARIABLE_NAME=value quay.io/kiegroup/kogito-jobs-service-allinone:latest Job Service image configuration for Kubernetes execution example spec: containers: - name: jobs-service-postgresql image: quay.io/kiegroup/kogito-jobs-service-allinone-nightly:latest imagePullPolicy: Always ports: - containerPort: 8080 name: http protocol: TCP env: # Set the image parameters as environment variables in the container definition. - name: KUBERNETES_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: JOBS_SERVICE_PERSISTENCE value: \"postgresql\" - name: QUARKUS_DATASOURCE_USERNAME value: postgres - name: QUARKUS_DATASOURCE_PASSWORD value: pass - name: QUARKUS_DATASOURCE_JDBC_URL value: jdbc:postgresql://timeouts-showcase-database:5432/postgres?currentSchema=jobs-service - name: QUARKUS_DATASOURCE_REACTIVE_URL value: postgresql://timeouts-showcase-database:5432/postgres?search_path=jobs-service This is the recommended approach when you execute the Job Service in kubernetes. The timeouts showcase example Quarkus Workflow Project with standalone services contains an example of this configuration, see. To configure the image by using system properties you must pass one property per parameter, however, in this case, all these properties are passed as part of a single environment with the name JAVA_OPTIONS. Job Service image configuration for docker execution example docker run -it -e JOBS_SERVICE_PERSISTENCE=postgresql -e JAVA_OPTIONS='-Dmy.sys.prop1=value1 -Dmy.sys.prop2=value2' \\ quay.io/kiegroup/kogito-jobs-service-allinone:latest I case that you need to convert a java like property name, to the corresponding environment variable name, to use the environment variables configuration alternative, you must apply the naming convention defined in the Quarkus Configuration Reference. For example, the name quarkus.datasource.jdbc.url must be converted to QUARKUS_DATASOURCE_JDBC_URL. Global configurations that affects the job execution retries, startup procedure, etc. Using environment variables Using system properties with java like names Name Description Default KOGITO_JOBS_SERVICE_BACKOFFRETRYMILLIS A long value that defines the retry back-off time in milliseconds between job execution attempts, in case the execution fails. 1000 KOGITO_JOBS_SERVICE_MAXINTERVALLIMITTORETRYMILLIS A long value that defines the maximum interval in milliseconds when retrying to execute jobs, in case the execution fails. 60000 Name Description Default kogito.jobs-service.backoffRetryMillis A long value that defines the retry back-off time in milliseconds between job execution attempts, in case the execution fails. 1000 kogito.jobs-service.maxIntervalLimitToRetryMillis A long value that defines the maximum interval in milliseconds when retrying to execute jobs, in case the execution fails. 60000 An important configuration aspect of the Job Service is the persistence mechanism, it is where all the jobs information is stored, and guarantees no information is lost upon service restarts. The Job Service image is shipped with the PostgreSQL, Ephemeral, and Infinispan persistence mechanisms, that can be switched by setting the JOBS_SERVICE_PERSISTENCE environment variable to any of these values postgresql, ephemeral, or infinispan. If not set, it defaults to the ephemeral option. The kogito-jobs-service-allinone image is a composite packaging that include one different image per each persistence mechanism, making it clearly bigger sized than the individual ones. If that size represents an issue in your installation you can use the individual ones instead. Finally, if you use this alternative, the JOBS_SERVICE_PERSISTENCE must not be used, since the persistence mechanism is auto-determined. These are the individual images: kogito-jobs-service-postgresql, kogito-jobs-service-ephemeral, or kogito-jobs-service-infinispan PostgreSQL is the recommended database to use with the Job Service. Additionally, it provides an initialization procedure that integrates Flyway for the database initialization. Which automatically controls the database schema, in this way, the tables are created or updated by the service when required. In case you need to externally control the database schema, you can check and apply the DDL scripts for the Job Service in the same way as described in Manually executing scripts guide. To configure the PostgreSQL persistence you must provide these configurations: Using environment variables Using system properties with java like names Variable Description Example value JOBS_SERVICE_PERSISTENCE Configure the persistence mechanism that must be used. postgresql QUARKUS_DATASOURCE_USERNAME Username to connect to the database. postgres QUARKUS_DATASOURCE_PASSWORD Password to connect to the database pass QUARKUS_DATASOURCE_JDBC_URL JDBC datasource url used by Flyway to connect to the database. jdbc:postgresql://timeouts-showcase-database:5432/postgres?currentSchema=jobs-service QUARKUS_DATASOURCE_REACTIVE_URL Reactive datasource url used by the Job Service to connect to the database. postgresql://timeouts-showcase-database:5432/postgres?search_path=jobs-service Variable Description Example value JOBS_SERVICE_PERSISTENCE Always an environment variable postgresql quarkus.datasource.username Username to connect to the database. postgres quarkus.datasource.password Password to connect to the database pass quarkus.datasource.jdbc.url JDBC datasource url used by Flyway to connect to the database. jdbc:postgresql://timeouts-showcase-database:5432/postgres?currentSchema=jobs-service quarkus.datasource.reactive.url Reactive datasource url used by the Job Service to connect to the database. postgresql://timeouts-showcase-database:5432/postgres?search_path=jobs-service The timeouts showcase example Quarkus Workflow Project with standalone services, shows how to run a PostgreSQL based Job Service as a Kubernetes deployment. In your local environment you might have to change some of these values to point to your own PostgreSQL database. The Ephemeral persistence mechanism is based on an embedded PostgresSQL database and does not require any external configuration. However, the database is recreated on each service restart, and thus, it must be used only for testing purposes. Variable Description Example value JOBS_SERVICE_PERSISTENCE Configure the persistence mechanism that must be used. ephemeral If the image is started by not configuring any persistence mechanism, the Ephemeral will be defaulted. To configure the Infinispan persistence you must provide these configurations: Using environment variables Using system properties with java like names Variable Description Example value JOBS_SERVICE_PERSISTENCE Configure the persistence mechanism that must be used. infinispan QUARKUS_INFINISPAN_CLIENT_HOSTS Sets the host name/port to connect to. Each one is separated by a semicolon. host1:11222;host2:11222 QUARKUS_INFINISPAN_CLIENT_USE_AUTH Enables or disables authentication. Set it to false when connecting to an Infinispan Server without authentication. The enablement of this parameter depends on your local infinispan installation. If not set, the default value is true. QUARKUS_INFINISPAN_CLIENT_SASL_MECHANISM Sets SASL mechanism used by authentication. For more information about this parameter, see Quarkus Infinispan Client Reference. When the authentication is enabled the default value is DIGEST-MD5. QUARKUS_INFINISPAN_CLIENT_AUTH_REALM Sets realm used by authentication. When the authentication is enabled the default value is default. QUARKUS_INFINISPAN_CLIENT_USERNAME Sets username used by authentication. Use this property if the authentication is enabled. QUARKUS_INFINISPAN_CLIENT_PASSWORD Sets password used by authentication. Use this property if the authentication is enabled. Variable Description Example value JOBS_SERVICE_PERSISTENCE Always an environment variable infinispan quarkus.infinispan-client.hosts Sets the host name/port to connect to. Each one is separated by a semicolon. host1:11222;host2:11222 quarkus.infinispan-client.use-auth Enables or disables authentication. Set it to false when connecting to an Infinispan Server without authentication. The enablement of this parameter depends on your local infinispan installation. If not set, the default value is true. quarkus.infinispan-client.sasl-mechanism Sets SASL mechanism used by authentication. For more information about this parameter, see Quarkus Infinispan Client Reference. When the authentication is enabled the default value is DIGEST-MD5. quarkus.infinispan-client.auth-realm Sets realm used by authentication. When the authentication is enabled the default value is default. quarkus.infinispan-client.username Sets username used by authentication. Use this property if the authentication is enabled. quarkus.infinispan-client.password Sets password used by authentication. Use this property if the authentication is enabled. The Infinispan client configuration parameters that you must configure depends on your local Infinispan service. And thus, the table above shows only a sub-set of all the available options. To see the list of all the options supported by the quarkus infinispan client you must read the Quarkus Infinispan Client Reference. The Job Service provides a Cloud Event based API that can be used to create and delete jobs. This API is useful in deployment scenarios where you want to use an event based communication from the workflow runtime to the Job Service. For the transport of these events you can use the knative eventing system or the kafka messaging system. By default, the Job Service Eventing API is prepared to work in a knative eventing system. This means that by adding no additional configurations parameters, it’ll be able to receive cloud events via the knative eventing system to manage the jobs. However, you must still prepare your knative eventing environment to ensure these events are properly delivered to the Job Service, see knative eventing supporting resources. Finally, the only configuration parameter that you must set, when needed, is to enable the propagation of the Job Status Change events, for example, if you want to register these events in the Data Index Service Using environment variables Using system properties with java like names Variable Description Default value KOGITO_JOBS_SERVICE_HTTP_JOB_STATUS_CHANGE_EVENTS true to establish if the Job Status Change events must be propagated. If you set this value to true you must be sure that the sink binding was created. false Variable Description Default value kogito.jobs-service.http.job-status-change-events true to establish if the Job Status Change events must be propagated. If you set this value to true you must be sure that the sink binding was created. false To ensure the Job Service receives the knative events to manage the jobs, you must create the create job events and delete job events triggers shown in the diagram below. Additionally, if you have enabled the Job Status Change events propagation you must create the sink binding. Figure 1. Knative eventing supporting resources The following snippets shows an example on how you can configure these resources. Consider that these configurations might need to be adjusted to your local kubernetes cluster. We recommend that you visit this example Quarkus Workflow Project with standalone services to see a full setup of all these configurations. Create Job event trigger configuration example apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: jobs-service-postgresql-create-job-trigger spec: broker: default filter: attributes: type: job.create subscriber: ref: apiVersion: v1 kind: Service name: jobs-service-postgresql uri: /v2/jobs/events Delete Job event trigger configuration example apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: jobs-service-postgresql-delete-job-trigger spec: broker: default filter: attributes: type: job.delete subscriber: ref: apiVersion: v1 kind: Service name: jobs-service-postgresql uri: /v2/jobs/events For more information about triggers, see Knative Triggers. Job Service sink binding configuration example apiVersion: sources.knative.dev/v1 kind: SinkBinding metadata: name: jobs-service-postgresql-sb spec: sink: ref: apiVersion: eventing.knative.dev/v1 kind: Broker name: default subject: apiVersion: apps/v1 kind: Deployment selector: matchLabels: app.kubernetes.io/name: jobs-service-postgresql app.kubernetes.io/version: 2.0.0-SNAPSHOT For more information about sink bindings, see Knative Sink Bindings. To enable the Job Service Eventing API via the Kafka messaging system you must provide these configurations: Using environment variables Using system properties with java like names Variable Description Default value QUARKUS_PROFILE Set the quarkus profile with the value kafka-events_support to enable the kafka messaging based Job Service Eventing API. By default the kafka eventing api is disabled. KOGITO_JOBS_SERVICE_KAFKA_JOB_STATUS_CHANGE_EVENTS true to establish if the Job Status Change events must be propagated. true when the kafka-events-support profile is set. KAFKA_BOOTSTRAP_SERVERS A comma-separated list of host:port to use for establishing the initial connection to the Kafka cluster. localhost:9092 when the kafka-events-support profile is set. MP_MESSAGING_INCOMING_KOGITO_JOB_SERVICE_JOB_REQUEST_EVENTS_V2_TOPIC Kafka topic for events API incoming events. I general you don’t need to change this value. kogito-job-service-job-request-events-v2 when the kafka-events_support profile is set. MP_MESSAGING_OUTGOING_KOGITO_JOB_SERVICE_JOB_STATUS_EVENTS_TOPIC Kafka topic for job status change outgoing events. I general you don’t need to change this value. kogito-jobs-events when the kafka-events_support profile is set. Variable Description Default value quarkus.profile Set the quarkus profile with the value kafka-events_support to enable the kafka messaging based Job Service Eventing API. By default the kafka eventing api is disabled. kogito.jobs-service.kafka.job-status-change-events true to establish if the Job Status Change events must be propagated. true when the kafka-events-support profile is set. kafka.bootstrap.servers A comma-separated list of host:port to use for establishing the initial connection to the Kafka cluster. localhost:9092 when the kafka-events-support profile is set. mp.messaging.incoming.kogito-job-service-job-request-events-v2.topic Kafka topic for events API incoming events. I general you don’t need to change this value. kogito-job-service-job-request-events-v2 when the kafka-events_support profile is set. mp.messaging.outgoing.kogito-job-service-job-status-events.topic Kafka topic for job status change outgoing events. I general you don’t need to change this value. kogito-jobs-events when the kafka-events_support profile is set. Depending on your Kafka messaging system configuration you might need to apply additional Kafka configurations to connect to the Kafka broker, etc. To see the list of all the supported configurations you must read the Quarkus Apache Kafka Reference Guide. Currently, the Job Service is a singleton service, and thus, just one active instance of the service can be scheduling and executing the jobs. To avoid issues when it is deployed in the cloud, where it is common to eventually have more than one instance deployed, the Job Service supports a leader instance election process. Only the instance that becomes the leader activates the external communication to receive and schedule jobs. All the instances that are not leaders, stay inactive in a wait state and try to become the leader continuously. When a new instance of the service is started, it is not set as a leader at startup time but instead, it starts the process to become one. When an instance that is the leader for any issue stays unresponsive or is shut down, one of the other running instances becomes the leader. Figure 2. Job Service leader election This leader election mechanism uses the underlying persistence backend, which currently is only supported in the PostgreSQL implementation. There is no need for any configuration to support this feature, the only requirement is to have the supported database with the data schema up-to-date as described in the PostgreSQL section. In case the underlying persistence does not support this feature, you must guarantee that just one single instance of the Job Service is running at the same time. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Introduction","component":"serverlessworkflow","version":"1.43.0.Final","name":"core-concepts","url":"/serverlessworkflow/latest/job-services/core-concepts.html","titles":[{"text":"Integration with the Workflows","hash":"integration-with-the-workflows","id":1},{"text":"Jobs life-span","hash":"_jobs_life_span","id":2},{"text":"Executing","hash":"executing","id":3},{"text":"Exposed environment variables","hash":"exposed-environment-variables","id":4},{"text":"Using environment variables","hash":"using-environent-variables","id":5},{"text":"Using system properties with java like names","hash":"using-java-like-system-properties","id":6},{"text":"Global configurations","hash":"job-service-global-configurations","id":7},{"text":"Persistence","hash":"job-service-persistence","id":8},{"text":"PostgreSQL","hash":"job-service-postgresql","id":9},{"text":"Ephemeral","hash":"job-service-ephemeral","id":10},{"text":"Infinispan","hash":"job-service-infinispan","id":11},{"text":"Eventing API","hash":"job-service-eventing-api","id":12},{"text":"Knative eventing","hash":"knative-eventing","id":13},{"text":"Knative eventing supporting resources","hash":"knative-eventing-supporting-resources","id":14},{"text":"Kafka messaging","hash":"kafka-messaging","id":15},{"text":"Leader election","hash":"_leader_election","id":16},{"text":"Found an issue?","hash":"_found_an_issue","id":17}]},"28":{"id":28,"text":"The interaction between the workflows and the Job Service is handled by the different Job Service Quarkus Extensions. Each extension is designed to work with a different communication alternative. For example, you can select if your workflows must interact with the Job Service by sending cloud events over the knative eventing system or the kafka messaging system, or simply by executing direct REST calls. Finally, for the interaction work, you must configure your Quarkus Workflow Project with the extension of your choice. We recommend that you follow this procedure: Identify the communication alternative that best fits your scenario. Be sure that the Job Service is properly configured to support that alternative. This is very important if you want to use knative events or kafka messages to communicate with it. Configure your Quarkus Workflow Project with the corresponding extension. If your workflows are not using timer-based actions, like timeouts, there is no need to add such an extension. To interact with the Job Service by sending cloud events over the knative eventing system you must follow these steps: Be sure that you have read the Consuming and producing events on Knative Eventing guide, and that you have configured the project accordingly. Add the kogito-addons-quarkus-jobs-knative-eventing extension to your Quarkus Workflow Project using any of the following alternatives: Manually Apache Maven Quarkus CLI org.kie.kogito kogito-addons-quarkus-jobs-knative-eventing mvn quarkus:add-extension -Dextensions=\"kogito-addons-quarkus-jobs-knative-eventing\" quarkus extension add kogito-addons-quarkus-jobs-knative-eventing Add the following configurations to the application.properties file of your project. mp.messaging.outgoing.kogito-job-service-job-request-events.connector=quarkus-http mp.messaging.outgoing.kogito-job-service-job-request-events.url=${K_SINK:http://localhost:8280/v2/jobs/events} mp.messaging.outgoing.kogito-job-service-job-request-events.method=POST The K_SINK environment variable is automatically generated by the combination of the knative ecosystem and the SinkBinding definition that will be automatically generated in the kogito.yml file. If this variable is not present, the default value http://localhost:8280/v2/jobs/events is used instead, this can be useful in development environments if you are executing the Job Service as a standalone service. Build your project and locate the automatically generated kogito.yml and knative.yml files in the /target/kubernetes directory of your project, see. mvn clean install Use the generated files to deploy your workflow application in the Kubernetes cluster using the following commands: kubectl apply -f target/kogito.yml kubectl apply -f target/knative.yml You can see a full example of this interaction mode configuration in the Quarkus Workflow Project with standalone services example project. To interact with the Job Service by sending cloud events over the kafka messaging system you must follow these steps: Be sure that you have read the Consuming and producing events with Kafka guide, and you have configured the project accordingly. Add the quarkus-smallrye-reactive-messaging-kafka and kogito-addons-quarkus-jobs-messaging extensions to your Quarkus Workflow Project using any of the following alternatives. Manually Apache Maven Quarkus CLI io.quarkus quarkus-smallrye-reactive-messaging-kafka org.kie.kogito kogito-addons-quarkus-jobs-messaging mvn quarkus:add-extension -Dextensions=\"quarkus-smallrye-reactive-messaging-kafka,kogito-addons-quarkus-jobs-messaging\" quarkus extension add quarkus-smallrye-reactive-messaging-kafka kogito-addons-quarkus-jobs-messaging Add the following configurations to the application.properties file of your project. mp.messaging.outgoing.kogito-job-service-job-request-events.connector=smallrye-kafka mp.messaging.outgoing.kogito-job-service-job-request-events.topic=kogito-job-service-job-request-events-v2 mp.messaging.outgoing.kogito-job-service-job-request-events.value.serializer=org.apache.kafka.common.serialization.StringSerializer Build and deploy your workflow application using any of the available procedures. To interact with the Job Service by executing direct REST calls you must follow these steps: Add the kogito-addons-quarkus-jobs-management extension to your Quarkus Workflow Project using any of the following alternatives. Manually Apache Maven Quarkus CLI org.kie.kogito kogito-addons-quarkus-jobs-management mvn quarkus:add-extension -Dextensions=\"kogito-addons-quarkus-jobs-management\" quarkus extension add kogito-addons-quarkus-jobs-management Add the following configuration to the application.properties file of your project. kogito.jobs-service.url=http://localhost:8280 When you deploy your project in a Kubernetes cluster, you must configure the kogito.jobs-service-url with the cloud URL of the Job Service. In this case, you can also use an environment variable with the name KOGITO_JOBS_SERVICE_URL and pass it to the corresponding container, etc. Build and deploy your workflow application using any of the available procedures. To facilitate the development and testing stage of your workflows, this extension provides an embedded Job Service instance that executes in the same runtime as your workflows, and thus, requires no additional configurations. The only consideration is that it must not be used for production installations. To use this extension you must: Add the kogito-addons-quarkus-jobs-service-embedded extension to your Quarkus Workflow Project using any of the following alternatives. Manually Apache Maven Quarkus CLI org.kie.kogito kogito-addons-quarkus-jobs-service-embedded mvn quarkus:add-extension -Dextensions=\"kogito-addons-quarkus-jobs-management\" quarkus extension add kogito-addons-quarkus-jobs-management Build and deploy your workflow application using any of the available procedures. You can see a full example of Job Service embedded usage in the Quarkus Workflow Project with embedded services example project. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Job Service Quarkus Extensions","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-extensions","url":"/serverlessworkflow/latest/job-services/quarkus-extensions.html","titles":[{"text":"Knative eventing interaction","hash":"kogito-addons-quarkus-jobs-knative-eventing","id":1},{"text":"Kafka messaging interaction","hash":"kogito-addons-quarkus-jobs-messaging","id":2},{"text":"REST call interaction","hash":"kogito-addons-quarkus-jobs-management","id":3},{"text":"Job Service Embedded","hash":"_job_service_embedded","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"29":{"id":29,"text":"This document describes how you can test your integrated workflow application using PostgreSQL persistence. The example described in this document is based on the serverless-workflow-callback-quarkus example application. This document describes the process of launching and testing the artifact that is produced by the Quarkus builds, and verifying the interaction of the artifact with a PostgreSQL database instance. To perform this scenario and verify the service behavior, the following Quarkus annotations and tools are used: @QuarkusIntegrationTest: This annotation is used to launch and test the artifact produced by the Serverless Workflow Quarkus build. For more information, see Testing Quarkus application - Using @QuarkusIntegrationTest in Quarkus documentation. Quarkus Dev Services: This facilitates writing integration tests that need launching services to support the workflow application. For more information, see Testing Quarkus application - launching containers in Quarkus documentation. @QuarkusIntegrationTest works immediately with the additional containers that are launched using Quarkus Dev Services. You can test your workflow application using PostgreSQL persistence. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Workflow application persistence is enabled using PostgreSQL. For more information, see Running workflow service using PostgreSQL. Docker is installed. Procedure Add the required test dependencies to the pom.xml file of your workflow application: Dependencies required for HTTP-based testing in JVM mode io.quarkus quarkus-junit5 test io.rest-assured rest-assured test Add awaitility dependency in pom.xml org.awaitility awaitility test The awaitility dependency allows the test to express the time expectations of an asynchronous system. For more information, see Awaitility website. Check the dependencies of PostgreSQL resources. The Quarkus Dev Services for Databases is enabled when a reactive or JDBC data source extension is present in the workflow application. Ensure that the pom.xml file of your workflow application contains the required dependency for PostgreSQL resources. JDBC persistence add-on dependency org.kie.kogito kogito-addons-quarkus-persistence-jdbc Quarkus JDBC PostgreSQL dependency io.quarkus quarkus-jdbc-postgresql Quarkus Agroal data source dependency io.quarkus quarkus-agroal To run the integration tests, add Apache Maven Failsafe plug-in in the pom.xml file of your workflow application. maven-failsafe-plugin in pom.xml plug-in section maven-failsafe-plugin ${version.failsafe.plugin} org.jboss.logmanager.LogManager ${maven.home} integration-test verify For more information about maven-failsafe-plugin, see Maven Failsafe Plugin documentation. Enable Quarkus Database Dev Services. The additional containers contain a full set of default configurations, including PostgreSQL Docker image name, default user, and default password. The required configuration to link the workflow application with the Quarkus Dev PostgreSQL container is automatically added to the integration test. Quarkus provides the properties such as quarkus.datasource.reactive.url, quarkus.datasource.jdbc.url, quarkus.datasource.username, or quarkus.datasource.password, when you start the container. For more information, see Quarkus Dev Services for Databases in Quarkus documentation. Create a test class and add the test annotations in the test class as shown in the following example: Example integration test annotations in a test class @QuarkusIntegrationTest (1) class CallbackRestIT { (2) static { RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();(3) } @Test void testCallbackRest() { String id = given() (3) .contentType(ContentType.JSON) .accept(ContentType.JSON) .post(\"/callback\") .then() .statusCode(201) .extract() .path(\"id\"); await() (4) .atLeast(1, SECONDS) .atMost(30, SECONDS) .with().pollInterval(1, SECONDS) .untilAsserted(() -> given() .contentType(ContentType.JSON) .accept(ContentType.JSON) .get(\"/callback/{id}\", id) .then() .statusCode(404)); } } 1 Allows launching and testing the artifact that is produced by the Quarkus build. Also, supports testing of a JAR file, a native image, or a container image. 2 Test name ends with 'IT' to identify which test needs to be executed as an integration test. 3 Testing application interactions using REST Assured. 4 await() allows the test to retry the validations until the verifications are declared or until the specified time expectation is expired. Once you specify the required resources and annotations, you can start testing the different interactions with the workflow application as described in Testing your workflow application using REST Assured document. To run the tests, execute the following command: Run the tests mvn clean verify Creating your first workflow service Running a workflow service using PostgreSQL Testing your workflow application using REST Assured Testing a Quarkus application If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"SonataFlow integration test using PostgreSQL","component":"serverlessworkflow","version":"1.43.0.Final","name":"integration-tests-with-postgresql","url":"/serverlessworkflow/latest/persistence/integration-tests-with-postgresql.html","titles":[{"text":"Overview","hash":"con-integration-test-overview","id":1},{"text":"Testing a workflow application using PostgreSQL persistence","hash":"proc-test-sw-application-postgresql","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"30":{"id":30,"text":"This document describes how you can run your workflow application using PostgreSQL persistence. When your workflow execution requires wait states, then running your workflow application with persistence enabled is a recommended approach. For example, when a process reaches a callback or needs to wait for an event, then the execution of the process is paused and the engine takes a snapshot of the workflow data. The snapshot is persisted in the database as a binary format along with process metadata information. The process metadata information includes process ID, process instance ID, and process version. Runtime persistence is used for storing data, which is required to resume the workflow execution of a process instance. Once a process is completed, the related data is removed from the database. This means that only required data to resume the execution is persisted. In SonataFlow, you can enable persistence using add-ons. This document describes the use of the kogito-addons-quarkus-persistence-jdbc add-on, which is based on Java Database Connectivity (JDBC) along with PostgreSQL. The kogito-addons-quarkus-persistence-jdbc add-on also extends on the Quarkus capabilities and you can use the available features directly from Quarkus JDBC support. For more information about Quarkus and JDBC, see Quarkus Datasources. You can also see the serverless-workflow-callback-quarkus example application in GitHub repository. To execute the serverless-workflow-callback-quarkus example application, you can follow the instructions mentioned in the README file. To clone the kogito-example repository, use the following command: Clone kogito-examples repository git clone git@github.com:kiegroup/kogito-examples.git Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Docker is installed. PostgreSQL is installed. For information about PostgreSQL installation and configuration, see PostgreSQL documentation. This document relies on running PostgreSQL as a Docker service, even though PostgreSQL installation is mentioned as a prerequisite. Procedure Add required dependencies to the pom.xml file of your project to use the persistence add-on: JDBC persistence add-on org.kie.kogito kogito-addons-quarkus-persistence-jdbc Quarkus JDBC PostgreSQL io.quarkus quarkus-jdbc-postgresql Quarkus Agroal data source io.quarkus quarkus-agroal Add the following properties to the application.properties file of your project: Persistence property kogito.persistence.type=jdbc Quarkus properties quarkus.datasource.db-kind=postgresql quarkus.datasource.username=postgres quarkus.datasource.password=pass quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/postgres Create PostgreSQL database schema. The persistence add-on uses Flyway to create the database schema. To enable the database schema creation during the runtime startup, you must set the following properties in the application.properties file. quarkus.flyway.migrate-at-start=true quarkus.datasource.db-kind=postgresql You can find more details regarding the PostgreSQL database schema migration in the Flyway migration guide. Optional: To handle the concurrent requests to shared workflow instances, enable the persistence-enabled optimistic locking for concurrency control using the version field in the database. Add kogito.persistence.optimistic.lock=true property in the application.properties file of your project to enable the optimistic locking. Change the version in the workflow file. Example workflow file { \"id\": \"applicantworkflow\", \"name\": \"Applicant Workflow\", \"version\": \"1.0\" } The versioning strategy is used to allow different workflow applications to run different versions of a process at the same time. The different versions of a process share the same database. This is useful when you migrate a process from one version to another. When allowing workflow instances to finish executing, a new version can be deployed using a new workflow application setup. By default, the engine considers the version specified in the workflow file as the current version of the asset. Therefore, you need to manually change the version in the workflow file, making the engine consider the specified version as a new version. As an alternative, you can set the kogito.workflow.version-strategy=project property in the application.properties file of your project. This enables the engine to consider the Maven or Gradle project version as the version of all workflows in the project. For instance, when you release a new version of your Maven project, the version in the workflow file is automatically updated. The following table serves as a quick reference of commonly used persistence configuration properties supported in SonataFlow. You can define these properties in the application.properties file of your project. Table 1. Persistence properties Configuration property Type Default value kogito.persistence.type string kogito.persistence.query.timeout.millis long 10000 kogito.persistence.optimistic.lock boolean false kogito.workflow.version-strategy string workflow SonataFlow integration test using PostgreSQL Migrating Your PostgreSQL Database with a Kogito upgrade If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Running a Quarkus Workflow Application using PostgreSQL","component":"serverlessworkflow","version":"1.43.0.Final","name":"persistence-with-postgresql","url":"/serverlessworkflow/latest/persistence/persistence-with-postgresql.html","titles":[{"text":"Persistence configuration quick reference","hash":"ref-postgresql-persistence-configuration","id":1},{"text":"Additional resources","hash":"postgresql-persistence-additional-resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"31":{"id":31,"text":"When working with SonataFlow PostgreSQL database, you can either opt to use Flyway or manually upgrade your database via DDL scripts. When you upgrade your SonataFlow version, by default it won’t pick up the latest changes available. Kogito provides a mechanism for migrating your database while updating the Kogito version using the following Flyway properties (default value is false, not upgrade): quarkus.flyway.migrate-at-start=true quarkus.datasource.db-kind=postgresql This will create a schema history table flyway_schema_history in your database to track the version of each database, recording in it every versioned migration file applied to build that version. When using kogito-addons-persistence-jdbc, it is mandatory to set the quarkus.datasource.db-kind property, so that Flyway can locate the appropriate scripts for the database. If you want to migrate manually you can use the Flyway migration CLI tool. Download Flyway migration command-line tool from the Download Flyway Community Edition website. Add the following properties in the /conf/flyway.conf file: flyway.url=jdbc:postgresql://localhost:5432/foobardb flyway.user=foo flyway.password=bar You can specify these options with commands as well. The Flyway CLI will prompt for the username and password if they are missing in the configuration. $ flyway migrate -url=jdbc:postgresql://localhost:5432/foobardb -user=foo -password=bar Download the Kogito DDL zip from this link, choose the correct version, extract the files and use the scripts from the postgresql folder. You can specify the location of the SQL files that need to be migrated using the flyway.locations option. For example, flyway.locations=classpath:com.mycomp.migration,database/migrations,filesystem:/sql-migrations,s3:migrationsBucket,gcs:migrationsBucket You can use the provided SQL scripts in the zip file to migrate the database by executing them one by one. You can find the Kogito DDL scripts by visiting this link. Download the zip file of the scripts from the needed version for the Kogito upgrade. Extract the files. Execute the sql files from postgresql folder. > psql -H host -U username -d database_name -a -f create_table.sql In order to apply migrations to an existing schema. It is necessary to establish the baseline from where Flyway should start executing new migrations. That means, in case your schema already contains a structure and from now on, new changes provided by Kogito should be applied via Flyway integration. In Flyway terms, only migrations above baselineVersion will then be applied. Using below properties you can initialize flyway schema table. quarkus.flyway.baseline-on-migrate=true quarkus.flyway.baseline-version=1.32.0 $ flyway -baselineOnMigrate=\"true\" -baselineVersion=\"1.32.0\" migrate Be careful when enabling this feature as it removes the safety net which ensures that Flyway does not migrate the wrong database in case of a configuration mistake. Baseline Migrations Documentation. Existing Database Setup Documentation. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"PostgreSQL Database Migration","component":"serverlessworkflow","version":"1.43.0.Final","name":"postgresql-flyway-migration","url":"/serverlessworkflow/latest/persistence/postgresql-flyway-migration.html","titles":[{"text":"How to migrate","hash":"_how_to_migrate","id":1},{"text":"Migrate using Flyway Config","hash":"_migrate_using_flyway_config","id":2},{"text":"Migrate using Flyway CLI","hash":"_migrate_using_flyway_cli","id":3},{"text":"Manually executing scripts","hash":"manually-executing-scripts","id":4},{"text":"Baseline migration","hash":"_baseline_migration","id":5},{"text":"Baseline using Quarkus Configuration:","hash":"_baseline_using_quarkus_configuration","id":6},{"text":"Baseline using Flyway CLI:","hash":"_baseline_using_flyway_cli","id":7},{"text":"More details on Flyway migrations","hash":"_more_details_on_flyway_migrations","id":8},{"text":"Found an issue?","hash":"_found_an_issue","id":9}]},"32":{"id":32,"text":"This document describes the supported authentication types and how to configure them to access the OpenAPI service operations that are used in workflows. For information about orchestrating and configuring the OpenAPI based services, you must see the following documents: Orchestrating the OpenAPI services Configuring the OpenAPI services endpoints The OpenAPI support for a workflow is based on the Quarkus OpenAPI generator extension. For more information about Quarkus OpenAPI generator, see Quarkus - OpenAPI Generator. According to the OpenAPI specification, you can secure an OpenAPI service operation by using a security scheme. These security schemes are defined in the Security Scheme Object definitions of the OpenAPI specification file. The security scheme type defined for an OpenAPI service operation is used to identify the required configuration, when a workflow invokes the same operation. The following shows the example of security scheme definitions: Example security-example.json file \"securitySchemes\": { \"http-basic-example\": { \"type\": \"http\", \"scheme\": \"basic\" } \"api-key-example\": { \"type\": \"apiKey\", \"name\": \"my-example-key\", \"in\": \"header\" } } If the OpenAPI specification file contains securitySchemes definitions, but not the Security Requirement Object definitions, the generator is configured to create the security requirement objects by default. In this case, for all the operations without a security requirement, the default one is created. Note that the property value must match the name of a security scheme object definition, such as http-basic-example or api-key-example in the previous securitySchemes list. Description Property key Example Create security for the referenced security scheme quarkus.openapi-generator.codegen.default.security.scheme quarkus.openapi-generator.codegen.default.security.scheme=http-basic-example To configure the credentials that are used to access the secured OpenAPI service operations and related parameters, you must use the application properties that are related to the security schemes. To compose the configuration keys, use the following format: Format for configuration keys quarkus.openapi-generator.[filename].auth.[security_scheme_name].[auth_property_name] The previous format includes the following parameters: filename is the sanitized name of the file containing the OpenAPI specification, such as security_example_json. security_scheme_name is the sanitized name of the security scheme object definition in the OpenAPI specification file, such as http_basic_example or api_key_example. auth_property_name is the name of the property to configure, such as username. This property depends on the defined security scheme type. To sanitize the previous parameters, you can follow the Environment Variables Mapping Rules from Microprofile Configuration. In the mapping rules, any non-alphabetic character is replaced by an underscore (_). The security schemes defined in an OpenAPI specification file are global to all the operations that are available in the same file. This means that the configurations set for a particular security scheme also apply to the other secured operations. You can use the alternatives defined in the Quarkus configuration reference guide to configure the required properties. A common usage is to define environment variables to set the authentication secrets. For a complete example, see Orchestration of third-party services using OAuth 2.0 authentication. The following example shows security-example.json file, defining a sayHelloBasic operation, which is secured using the http-basic-example security scheme and supported configurations: Example security-example.json file for HTTP authentication { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Http Basic Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-http-basic\": { \"get\": { \"operationId\": \"sayHelloBasic\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"http-basic-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"http-basic-example\": { \"type\": \"http\", \"scheme\": \"basic\" } } } } The following table shows the supported configurations that are used to secure the sayHelloBasic operation in the previous example: Table 1. Supported configuration examples for HTTP authentication Description Property key Example Username credentials quarkus.openapi-generator.[filename].auth.[security_scheme_name].username quarkus.openapi-generator.security_example_json.auth.http_basic_example.username=MY_USER Password credentials quarkus.openapi-generator.[filename].auth.[security_scheme_name].password quarkus.openapi-generator.security_example_json.auth.http_basic_example.password=MY_PASSWD The following example shows security-example.json file, defining a sayHelloBearer operation, which is secured using the http-bearer-example security scheme and supported configurations: Example security-example.json file for Bearer Token authentication { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Http Bearer Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-http-bearer\": { \"get\": { \"operationId\": \"sayHelloBearer\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"http-bearer-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"http-bearer-example\": { \"type\": \"http\", \"scheme\": \"bearer\" } } } } The following table shows the supported configurations that are used to secure the sayHelloBearer operation in the previous example: Table 2. Supported configuration examples for Bearer Token authentication Description Property key Example Bearer Token quarkus.openapi-generator.[filename].auth.[security_scheme_name].bearer-token quarkus.openapi-generator.security_example_json.auth.http_bearer_example.bearer-token=MY_TOKEN The following example shows security-example.json file, defining a sayHelloApiKey operation, which is secured using the api-key-example security scheme and supported configurations: Example security-example.json file for API key authentication { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Api Key Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-api-key\": { \"get\": { \"operationId\": \"sayHelloApiKey\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"api-key-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"api-key-example\": { \"type\": \"apiKey\", \"name\": \"api-key-name\", \"in\": \"header\" } } } } The following table shows the supported configurations that are used to secure the sayHelloApiKey operation in the previous example: Table 3. Supported configuration examples for API key authentication Description Property key Example API Key quarkus.openapi-generator.[filename].auth.[security_scheme_name].api-key quarkus.openapi-generator.security_example_json.auth.api_key_example.api-key=MY_KEY The API key scheme type contains an additional name property that configures the key name to use when the Open API service is invoked. Also, the format to pass the key depends on the value of the in property. When the value is header, the key is passed as an HTTP request parameter. When the value is cookie, the key is passed as an HTTP cookie. When the value is query, the key is passed as an HTTP query parameter. However, this is automatically managed without additional configurations. Following the previous example, the API key is passed as an http request parameter, such as api-key-name with the value MY_KEY. The following example shows security-example.json file, defining a sayHelloOauth2 operation, which is secured using the oauth-example security scheme and supported configurations: Example security-example.json file for OAuth 2.0 authentication { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Oauth2 Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-oauth2\": { \"get\": { \"operationId\": \"sayHelloOauth2\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"oauth-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"oauth-example\": { \"type\": \"oauth2\", \"flows\": { \"clientCredentials\": { \"authorizationUrl\": \"https://example.com/oauth\", \"tokenUrl\": \"https://example.com/oauth/token\", \"scopes\": { } } } } } } } Unlike the http basic, http bearer, and apiKey security schemes, the OAuth 2.0 authentication relies on the Quarkus OpenId Connect (OIDC) and OAuth 2.0 Clients and Filters. Therefore, you must add the Quarkus OIDC Client Filter Extension to your project as shown in the following example: Example of adding Quarkus OIDC client filter extension io.quarkus quarkus-oidc-client-filter You can also add the Quarkus OIDC client filter extension using the Quarkus CLI as shown in the following example: Add Quarkus OIDC client filter extension $ quarkus extension add quarkus-oidc-client-filter The token management operations are delegated to a Quarkus OidcClient using a simple naming convention. In the previous example, the token management operations that are used to access the sayHelloOauth2 operation are delegated to the OidcClient that is oauth_example. You can configure the OidcClient as shown in the following example: Example of configuring an OidcClient quarkus.oidc-client.oauth_example.auth-server-url=https://example.com/oauth quarkus.oidc-client.oauth_example.token-path=/tokens quarkus.oidc-client.oauth_example.discovery-enabled=false quarkus.oidc-client.oauth_example.client-id=kogito-app quarkus.oidc-client.oauth_example.grant.type=client quarkus.oidc-client.oauth_example.credentials.client-secret.method=basic quarkus.oidc-client.oauth_example.credentials.client-secret.value=secret The suffix (quarkus.oidc-client.oauth_example) used in the previous configuration example is exclusive for the security scheme defined in the OpenAPI service specification file and the scheme name is sanitized using the mapping rules. You can use the authorization token propagation with OpenAPI operations that are secured using the oauth2 or http bearer security scheme type. When the configuration is set, you can propagate the authorization tokens that are passed to your workflow during the workflow creation. The propagations must be configured individually for each security scheme, which enables you to configure the invocations that must propagate the token. Similar to other security scheme configurations, the token propagation applies to all the OpenAPI operations that are secured using the same security scheme. The following example shows security-example.json file, defining a sayHelloOauth2 operation, which is secured using the oauth-example security scheme and supported configurations: Example security-example.json file for authorization token propagation { \"openapi\": \"3.1.0\", \"info\": { \"title\": \"Oauth2 Scheme Example\", \"version\": \"1.0\" }, \"paths\": { \"/hello-with-oauth2\": { \"get\": { \"operationId\": \"sayHelloOauth2\", \"responses\": { \"200\": { \"description\": \"OK\", \"content\": { \"text/plain\": { \"schema\": { \"type\": \"string\" } } } } }, \"security\": [{\"oauth-example\" : []}] } } }, \"components\": { \"securitySchemes\": { \"oauth-example\": { \"type\": \"oauth2\", \"flows\": { \"clientCredentials\": { \"authorizationUrl\": \"https://example.com/oauth\", \"tokenUrl\": \"https://example.com/oauth/token\", \"scopes\": { } } } } } } } The following table shows the supported configurations that are used to secure the sayHelloOauth2 operation in the previous example: Table 4. Supported configuration examples for token propagation Property key Example quarkus.openapi-generator.[filename].auth.[security_scheme_name].token-propagation=[true,false] quarkus.openapi-generator.security_example_json.auth.oauth_example.token-propagation=true Enables the token propagation for all the operations that are secured using the oauth-example scheme in the security-example.json file. By default, the standard HTTP authorization header is propagated. quarkus.openapi-generator.[filename].auth.[security_scheme_name].header-name=[http_header_name] quarkus.openapi-generator.security_example_json.auth.oauth_example.header-name=MyHeaderName States that the authorization token is read from the MyHeaderName header instead of the standard HTTP authorization header. The authorization tokens are propagated till the workflow does not reach its waiting state. When the same workflow is resumed, the tokens will not be propagated. Orchestration of third-party services using OAuth 2.0 authentication in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Authentication for OpenAPI services in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"authention-support-for-openapi-services","url":"/serverlessworkflow/latest/security/authention-support-for-openapi-services.html","titles":[{"text":"Overview of OpenAPI services authentication","hash":"con-openapi-services-authentication","id":1},{"text":"Example of basic HTTP authentication","hash":"ref-example-http-authentication","id":2},{"text":"Example of Bearer Token authentication","hash":"ref-example-bearer-authentication","id":3},{"text":"Example of API key authentication","hash":"ref-example-api-key-authentication","id":4},{"text":"Example of OAuth 2.0 authentication","hash":"ref-example-oauth-authentication","id":5},{"text":"Example of authorization token propagation","hash":"ref-authorization-token-propagation","id":6},{"text":"Additional resources","hash":"_additional_resources","id":7},{"text":"Found an issue?","hash":"_found_an_issue","id":8}]},"33":{"id":33,"text":"This document describes the example of how you can implement and configure a workflow that orchestrates the interaction with an OAuth 2.0 secured REST service. For more information about orchestrating and configuring OpenAPI services, see Orchestrating the OpenAPI services, Configuring the OpenAPI services endpoints, and Authentication for OpenAPI services in SonataFlow. To understand the example of OAuth 2.0 orchestration in a workflow, you can use the serverless-workflow-oauth2-orchestration-quarkus example application. This example application implements a workflow related to currency exchange calculations, which orchestrates an OAuth 2.0 secured REST service provided by Acme Financial Services. Suppose you have a set of applications that must resolve the currency exchange calculations as their regular operations, and to resolve the currency exchange calculations, you need to get the accurate exchange rates. For this purpose, you can use the Acme Financial Services. When you use the Acme Financial Services, you can query the exchange rates using their OAuth 2.0 secured services, which you can access using the granted credentials. However, you do not want to expose the services provided by Acme to the applications. In this case, you can implement a workflow that resolves the following aspects: Orchestration with services provided by Acme and currency exchange calculations. Authentication requirements to access the services provided by Acme. Potential vendor lock-in problems, in case you want to change the provider in future. Domain-specific validations and optimizations. The further sections describes how an end-to-end solution is created in the serverless-workflow-oauth2-orchestration-quarkus example application. To see the source code of serverless-workflow-oauth2-orchestration-quarkus example application, you can clone the kogito-examples repository in GitHub and select the serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus directory. The serverless-workflow-oauth2-orchestration-quarkus example application contains the following services to compose the solution: currency-exchange-workflow: Workflow that implements the currency exchange calculations. acme-financial-service: REST service that provides the exchange rates. acme-oauth2-server: Keycloak server that secures the REST services from Acme Financial Services. The following figure describes the architecture of the solution in serverless-workflow-oauth2-orchestration-quarkus example application: Figure 1. Example architecture diagram of the solution The application creates a workflow instance to calculate the currency exchange. The workflow executes an OpenAPI operation to get the exchange rates information. Authorizations are produced to validate the access. The workflow receives the exchange rates information and executes the calculations. The execution of workflow is finalized by sending the result to the application. The workflow automatically manages the interactions with the OAuth 2.0 server. Also, you must configure a Quarkus OpenId Connect Client (OIDC). For more information, see Configuration in serverless-workflow-oauth2-orchestration-quarkus example application. currency-exchange-workflow The currency-exchange-workflow in serverless-workflow-oauth2-orchestration-quarkus example application is a workflow that implements the currency exchange calculations. The following figure describes the workflow in currency-exchange-workflow: Figure 2. Example currency-exchange-workflow First, validate the input data. Check the validation results: If validation is successful, then transition to (3). If validation is unsuccessful, then no transition and finalize the workflow with the error execution status. Send REST request to acme-financial-service to retrieve the exchange rates: If the request is successful, then transition to (4). If the request is unsuccessful, then transition to (6). Calculate the currency exchange and transition to (5). Set the successful execution status and finalize the currency-exchange-workflow execution. Set the error execution status and finalize the currency-exchange-workflow execution. The following currency-exchange-workflow.sw.json file shows the specification of the currency-exchange-workflow: currency-exchange-workflow.sw.json file { \"id\": \"currency_exchange_workflow\", \"version\": \"1.0\", \"name\": \"Currency Exchange SW\", \"dataInputSchema\": \"currency-exchange-workflow-schema.json\", \"start\": \"ValidateInputs\", \"functions\": [ { \"name\": \"validateInputs\", \"type\": \"custom\", \"operation\": \"service:org.kie.kogito.examples.ExchangeWorkflowHelper::validateInputs\" }, { \"name\": \"getExchangeRate\", \"type\": \"rest\", \"operation\": \"specs/acme-financial-service.yml#exchangeRate\" }, { \"name\": \"calculateExchange\", \"type\": \"expression\", \"operation\": \"${ { calculateExchangeResult: .amount * .exchangeRate } }\" } ], \"errors\": [ { \"name\": \"service_error\", \"code\": \"java.lang.Exception\" } ], \"states\": [ { \"name\": \"ValidateInputs\", (1) \"type\": \"operation\", \"actions\": [ { \"name\": \"validateInputsAction\", \"functionRef\": { \"refName\": \"validateInputs\", \"arguments\": { \"currencyFrom\": \"${ .currencyFrom }\", \"currencyTo\": \"${ .currencyTo }\", \"amount\": \"${ .amount }\", \"exchangeDate\": \"${ .exchangeDate }\" } } } ], \"transition\": \"CheckValidation\" }, { \"name\": \"CheckValidation\", (2) \"type\": \"switch\", \"dataConditions\": [ { \"condition\": \"${ .executionStatus == \\\"ERROR\\\" }\", \"end\": true } ], \"defaultCondition\": { \"transition\": \"GetExchangeRate\" } }, { \"name\": \"GetExchangeRate\", (3) \"type\": \"operation\", \"actions\": [ { \"name\": \"getExchangeRateAction\", \"functionRef\": { \"refName\": \"getExchangeRate\", \"arguments\": { \"currencyFrom\": \"${ .currencyFrom }\", \"currencyTo\": \"${ .currencyTo }\", \"exchangeDate\": \"${ .exchangeDate }\" } }, \"actionDataFilter\": { \"results\": \"${ {exchangeRate: .rate} }\" } } ], \"transition\": \"CalculateExchange\", \"onErrors\": [ { \"errorRef\": \"service_error\", \"transition\": \"EndWithError\" } ] }, { \"name\": \"CalculateExchange\", (4) \"type\": \"operation\", \"actions\": [ { \"name\": \"calculateExchangeAction\", \"functionRef\": { \"refName\": \"calculateExchange\" }, \"actionDataFilter\": { \"results\": \"${ {result: .calculateExchangeResult} }\" } } ], \"transition\": \"EndSuccessful\" }, { \"name\": \"EndWithError\", (5) \"type\": \"inject\", \"data\": { \"executionStatus\": \"ERROR\", \"executionStatusMessage\": \"Execution failed: The acme-financial-service invocation has failed, check that the service is running and that you have configured the OAuth2 client properly\" }, \"end\": true }, { \"name\": \"EndSuccessful\", (6) \"type\": \"inject\", \"data\": { \"executionStatus\": \"OK\", \"executionStatusMessage\": \"Execution successful\" }, \"end\": true } ] } 1 ValidateInputs state executes the validateInputs function to validate the input data. 2 CheckValidation state determines the next state to go by evaluating the validation results. 3 GetExchangeRate state executes the getExchangeRate function to retrieve the exchange rate from the remote server. 4 CalculateExchange state executes the calculateExchange function to calculate the currency exchange. 5 EndWithError state finalizes the workflow with an ERROR. 6 EndSuccessful state finalizes the workflow with successful OK status. The validateInputs function is used to execute the custom Java processing as part of the workflow. For more information about custom functions, see Serverless Workflow specification. The following is an example of validateInputs function definition: Example validateInputs function definition { \"name\": \"validateInputs\", (1) \"type\": \"custom\", (2) \"operation\": \"service:org.kie.kogito.examples.ExchangeWorkflowHelper::validateInputs\" (3) } 1 validateInputs function declaration. 2 custom type that enables you to use your own Java class to implement a function. 3 Specifies that the function is implemented by the method validateIntpus in the org.kie.kogito.examples.ExchangeWorkflowHelper Java class. To implement a custom function, you must create a Java class such as ExchangeWorkflowHelper in your project: Example ExchangeWorkflowHelper.java file package org.kie.kogito.examples; import javax.enterprise.context.ApplicationScoped; @ApplicationScoped public class ExchangeWorkflowHelper { public ValidationResult validateInputs(String currencyFrom, String currencyTo, double amount, String exchangeDate) { // Implement your custom Java processing here and return // a Java POJO to the Serverless Workflow. if (!good) { return new ValidationResult(\"ERROR\", \"Not good!\"); } return new ValidationResult(); } public static class ValidationResult { private String executionStatus; private String executionStatusMessage; // getters, setters, etc. } } To access the acme-financial-service REST service in currency-exchange-workflow, a workflow function such as getExchangeRate is used. For more information about using functions for REST services, see Serverless Workflow specification. Following is the function definition of getExchangeRate: Example getExchangeRate function definition { \"name\": \"getExchangeRate\", (1) \"type\": \"rest\", \"operation\": \"specs/acme-financial-service.yml#exchangeRate\" (2) } 1 getExchangeRate function declaration. 2 Specifies that the function is implemented by the exchangeRate operation in the acme-financial-service.yml file. For the previous configuration, the acme-financial-service.yml file must be located in the src/main/resources/specs directory of the project. In order to filter the information, which must be returned to the currency-exchange-workflow, an actionDataFilter is used: Example actionDataFilter to pass the getExchangeRate results \"actionDataFilter\": { \"results\": \"${ {exchangeRate: .rate} }\" (1) } 1 Merge the value of the rate property to the exchangeRate workflow data property. The value of the rate property is retrieved from the acme-financial-service invocation result. For more information about action data filters, see Action data filters in Serverless Workflow specification. To calculate the currency exchange rates in currency-exchange-workflow, a function named calculateExchange is used: Example calculateExchange function definition { \"name\": \"calculateExchange\", (1) \"type\": \"expression\", (2) \"operation\": \"${ { calculateExchangeResult: .amount * .exchangeRate } }\" (3) } 1 calculateExchange function declaration. 2 expression type that enables you to use an expression to implement a function. 3 Specifies that the function returns a JSON object with a calculateExchangeResult property, containing the calculation. For more information about using functions for expression evaluation, see Serverless Workflow specification. Similar to getExchangeRate to filter the information, which must be returned to the currency-exchange-workflow, an actionDataFilter is used: Example actionDataFilter to pass the calculateExchange results: \"actionDataFilter\": { \"results\": \"${ {result: .calculateExchangeResult} }\" (1) } 1 Merge the value of the calculateExchangeResult property to the result workflow data property. The value of the calculateExchangeResult property is retrieved from the expression result. acme-financial-service The acme-financial-service in serverless-workflow-oauth2-orchestration-quarkus example application is a REST service that provides the exchange rates. Following is the OpenAPI specification that defines the acme-financial-service: Example acme-financial-service.yml OpenAPI specification --- openapi: 3.0.3 info: title: Acme Financial Service API version: 1.0.1 paths: /financial-service/exchange-rate: (1) get: tags: - Acme Financial Resource operationId: exchangeRate parameters: (2) - name: currencyFrom in: query schema: type: string - name: currencyTo in: query schema: type: string - name: exchangeDate in: query schema: type: string responses: (3) \"200\": description: OK content: (4) application/json: schema: $ref: '#/components/schemas/ExchangeRateResult' security: - acme-financial-oauth: [ ] (5) components: schemas: ExchangeRateResult: (6) type: object properties: rate: format: double type: number securitySchemes: acme-financial-oauth: (7) type: oauth2 (8) flows: clientCredentials: (9) authorizationUrl: http://localhost:8281/auth/realms/kogito/protocol/openid-connect/auth tokenUrl: http://localhost:8281/auth/realms/kogito/protocol/openid-connect/token scopes: { } 1 REST path to access the exchangeRate operation in the remote server. 2 Parameter of the exchangeRate operation. 3 Responses of the exchangeRate operation. 4 Response type and data exchange format. 5 Specifies that the exchangeRate operation is secured using the acme-financial-oauth security scheme. 6 Response type specification. 7 Specification of the acme-financial-oauth security scheme. 8 Security scheme type. The security scheme type indicates that you must configure a Quarkus OpenId Connect Client (OIDC) using acme_financial_oauth name to execute the operation. 9 Authentication flow and related information. For more information about the acme-financial-service implementation, see acme-financial-service in serverless-workflow-oauth2-orchestration-quarkus example application. The configuration for the workflow used in serverless-workflow-oauth2-orchestration-quarkus example application includes defining required properties in application.properties file as shown in the following example: Example application.properties file configuration quarkus.openapi-generator.codegen.spec.acme_financial_service_yml.base-package=com.acme (1) quarkus.rest-client.acme_financial_service_yml.url=http://localhost:8483 (2) quarkus.oidc-client.acme_financial_oauth.discovery-enabled=false (3) quarkus.oidc-client.acme_financial_oauth.auth-server-url=http://localhost:8281/auth/realms/kogito/protocol/openid-connect/auth (4) quarkus.oidc-client.acme_financial_oauth.token-path=http://localhost:8281/auth/realms/kogito/protocol/openid-connect/token (5) quarkus.oidc-client.acme_financial_oauth.client-id=kogito-app (6) quarkus.oidc-client.acme_financial_oauth.grant.type=client quarkus.oidc-client.acme_financial_oauth.credentials.client-secret.method=basic (7) quarkus.oidc-client.acme_financial_oauth.credentials.client-secret.value=secret (8) 1 Package name for automatically generated classes that implement the access to all operations defined in the acme-financial-service.yml file. 2 Root URL to access all operations defined in the acme-financial-service.yml file. For the exchangeRate operation, a URL such as http://localhost:8483/financial-service/exchange-rate is automatically generated. 3 Disables the OAuth 2.0 server endpoints discovery as the endpoints provided in the acme-financial-service-yml file are used instead. 4 Authentication URL of the OAuth 2.0 server. 5 Relative path or URL of the OAuth 2.0 token endpoint, which allocates access and refreshes tokens. 6 Client ID to identify the workflow against the authorization service, such as kogito-app. This identifier must be provided by Acme. 7 Method that is used at the time of sending the client-secret for the authentications when the client grant type is used. 8 client-secret to authenticate the workflow against the authorization service when the client grant type is used. This secret must be provided by Acme. To configure the Quarkus OpenId Connect Client (OIDC) for acme_financial_service_oauth service, you must follow the rules described in Example of OAuth 2.0 authentication. Also, the particular attributes depend on the OAuth 2.0 server and authorization flow to use. You can get the information about the OAuth 2.0 server and authorization flow from the acme-financial-service.yml file. Also, you can use the alternatives defined in the Quarkus configuration reference guide to configure the properties in application.properties file. You can define environment variables to set the authentication secrets, and you can use the Quarkus Credentials Provider framework. Once you clone the serverless-workflow-oauth2-orchestration-quarkus example application from GitHub repository, you can run the example application. Prerequisites Java 11+ is installed. Maven 3.8.6 or later is installed. Docker 20.10.7 or later is installed. (Optional) Docker compose 1.27.2 or later is installed. Procedure In a command terminal, clone the kogito-examples repository and navigate to the cloned directory: Clone kogito-examples repository and navigate to the directory git clone https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus Run the following command to build the example application using Apache Maven: Build the example application mvn clean install In a separate command terminal window, start the Keycloak server: Start the Keycloak server cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/scripts ./startKeycloak.sh Alternatively, you can start the Docker Compose using the following command: Start Docker Compose cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/docker-compose docker-compose up In a separate command terminal window, navigate to the acme-financial-service directory and start the Quarkus application of Acme Financial Service: Start Acme Financial Service cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/acme-financial-service java -jar target/quarkus-app/quarkus-run.jar In a separate command terminal window, navigate to the currency-exchange-workflow directory and start the Quarkus application of currency exchange workflow: Start currency exchange workflow cd kogito-examples/serverless-workflow-examples/serverless-workflow-oauth2-orchestration-quarkus/currency-exchange-workflow java -jar target/quarkus-app/quarkus-run.jar When all the services are running, use the following curl commands to run the currency-exchange-workflow: The following is an example of successful execution when calculating the currency exchange from EUR to USD: Example request Example response curl -X 'POST' \\ 'http://localhost:8080/currency_exchange_workflow' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"currencyFrom\": \"EUR\", \"currencyTo\": \"USD\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0 }' { \"id\": \"399ce304-037c-486d-b4bf-1564baf907a1\", \"workflowdata\": { \"currencyFrom\": \"EUR\", \"currencyTo\": \"USD\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0, \"executionStatus\": \"OK\", \"executionStatusMessage\": \"Execution successful\", \"exchangeRate\": 1.0578, \"result\": 2.1156 } } The following is an example of an unsupported currency error when calculating the currency exchange from EUR to MXN: Example request Example response curl -X 'POST' \\ 'http://localhost:8080/currency_exchange_workflow' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"currencyFrom\": \"EUR\", \"currencyTo\": \"MXN\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0 }' { \"id\": \"e0e7708d-c82c-47d7-9354-09ccd1e972bb\", \"workflowdata\": { \"currencyFrom\": \"EUR\", \"currencyTo\": \"MXN\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2, \"executionStatus\": \"ERROR\", \"executionStatusMessage\": \"Invalid currencyTo: MXN, only the following currencies are supported [EUR, USD, JPY, GBP, CAD, BRL, AUD]\", \"exchangeRate\": null } } In the previous examples, the currencies supported by the currency-exchange-workflow include EUR, USD, JPY, GBP, CAD, BRL, and AUD. However, the acme-financial-service REST service can resolve any type of currency exchange. This is an example of a workflow implementing the intermediate data filtering, transforming, and validations. The following is an example of the occurrence of unexpected errors when accessing acme-financial-service: Before you launch the command, you must go to the terminal window where you started the acme-financial-service and stop the service using CTRL+C. Example request Example response curl -X 'POST' \\ 'http://localhost:8080/currency_exchange_workflow' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"currencyFrom\": \"EUR\", \"currencyTo\": \"USD\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0 }' { \"id\": \"0044ffa0-7b2b-4fdc-af60-cd98c6bd3ade\", \"workflowdata\": { \"currencyFrom\": \"EUR\", \"currencyTo\": \"USD\", \"exchangeDate\": \"2022-06-10\", \"amount\": 2.0, \"executionStatus\": \"ERROR\", \"executionStatusMessage\": \"Execution failed: The acme-financial-service invocation has failed, check that the service is running and that you have configured the OAuth2 client properly\", \"exchangeRate\": null } } In this example the error indicates that it was not possible to contact the acme-financial-service. Orchestrating the OpenAPI services If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Orchestration of third-party services using OAuth 2.0 authentication","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestrating-third-party-services-with-oauth2","url":"/serverlessworkflow/latest/security/orchestrating-third-party-services-with-oauth2.html","titles":[{"text":"Example of OAuth 2.0 orchestration in a workflow","hash":"ref-example-oauth2-orchestration","id":1},{"text":"Configuration in serverless-workflow-oauth2-orchestration-quarkus example application","hash":"con-example-sw-configuration","id":2},{"text":"Running the example application","hash":"proc-run-example-application","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"34":{"id":34,"text":"This document describes how you can configure OpenAPI service endpoints in SonataFlow. SonataFlow leverages MicroProfile REST Client to invoke OpenAPI services. Therefore, you can configure the OpenAPI services by following the MicroProfile Config specification. For the list of properties to configure in the MicroProfile REST Client specification, see Support for MicroProfile Config in MicroProfile REST Client documentation. SonataFlow follows the strategy defined in the kogito.sw.operationIdStrategy property to generate the REST Client. The possible values of the kogito.sw.operationIdStrategy property include: FILE_NAME(Default value): SonataFlow uses the configuration key based on the OpenAPI document file name as shown in the following example: Example property quarkus.rest-client.stock_portfolio_svc_yaml.url=http://localhost:8282/ In the previous example, SonataFlow uses stock_portfolio_svc_yaml as configuration key as the OpenAPI document is available at src/main/resources/openapi/stock-portfolio-svc.yaml. FULL_URI: SonataFlow uses the full URI path as configuration key as shown in the following example: Example Serverless Workflow { \"id\": \"myworkflow\", \"functions\": [ { \"name\": \"myfunction\", \"operation\": \"https://my.remote.host/apicatalog/apis/123/document\" (1) } ] ... } 1 URI path of the OpenAPI document Example property quarkus.rest-client.apicatalog_apis_123_document.url=http://localhost:8282/ In the previous example, SonataFlow uses apicatalog_apis_123_document as configuration key. FUNCTION_NAME: SonataFlow uses the workflow ID and the function name that references the OpenAPI document as shown in the following examples: Example Serverless Workflow { \"id\": \"myworkflow\", \"functions\": [ { \"name\": \"myfunction\", \"operation\": \"https://my.remote.host/apicatalog/apis/123/document\" } ] ... } Example property quarkus.rest-client.myworkflow_myfunction.url=http://localhost:8282/ In the previous example, SonataFlow uses \"myworkflow_myfunction\" as configuration key. SPEC_TITLE: SonataFlow uses the value of info.title in the OpenAPI document as shown in the following examples: Example OpenAPI document --- openapi: 3.0.3 info: title: stock-service API version: 2.0.0-SNAPSHOT paths: /stock-price/{symbol}: ... Example property quarkus.rest-client.stock-service_API.url=http://localhost:8282/ In the previous example, SonataFlow uses stock-service_API as configuration key. A Kubernetes service endpoint can be used as a service URL if the target service is within the same cluster, such as http://myservice.mynamespace.cluster.svc.local. As an alternative to kogito.sw.operationIdStrategy, you can assign an alias name to an URI by using workflow-uri-definitions custom extension. Then you can use that alias as configuration key and in function definitions. Example workflow \"extensions\" : [ { \"extensionid\": \"workflow-uri-definitions\", \"definitions\": { \"remoteCatalog\": \"https://my.remote.host/apicatalog/apis/123/document\", } } ], \"functions\": [ { \"name\": \"operation1\", \"operation\": \"remoteCatalog#operation1\" }, { \"name\": \"operation2\", \"operation\": \"remoteCatalog#operation2\" } ] Example property quarkus.rest-client.remoteCatalog.url=http://localhost:8282/ In the previous example, SonataFlow uses remoteCatalog as configuration key. You can use different MicroProfile ConfigSources, such as environment variables and Kubernetes ConfigMaps, and MicroProfile Config profiles to configure the OpenAPI services in different environments. For more information about MicoProfile ConfigSources, see ConfigSources. Some operating systems allow only alphabetic characters or an underscore (_), in environment variables. Other characters such as . and / are not allowed. You must use the Environment Variables Mapping Rules, to set the value of a configuration property that contains a name with such characters. The testing procedure described in this document is based on the serverless-workflow-stock-profit example application in GitHub repository. The serverless-workflow-stock-profit example application is a workflow that computes the profit for a given stock based on an existing stock portfolio. The serverless-workflow-stock-profit example application sends request to the following services: stock-portfolio-service: Calculates the stock portfolio profit for a given stock based on the current stock price. stock-service: Retrieves the current stock price. Developing an application using a service that returns different results every time can be difficult, therefore the stock-service uses the following implementations depending on the environment. real-stock-service (default implementation): Returns the real stock price. This service returns a random price every time to simulate a real stock service. This implementation is used in normal or production environment. fake-stock-service: Returns the same price every time. This implementation is used in the development environment. The stock-profit service contains the following workflow definition: Workflow definition in stock-profit service { \"id\": \"stockprofit\", \"specVersion\": \"0.8\", \"version\": \"2.0.0-SNAPSHOT\", \"name\": \"Stock profit Workflow\", \"start\": \"GetStockPrice\", \"functions\": [ { \"name\": \"getStockPriceFunction\", \"operation\": \"openapi/stock-svc.yaml#getStockPrice\" (1) }, { \"name\": \"getProfitFunction\", \"operation\": \"openapi/stock-portfolio-svc.yaml#getStockProfit\" (2) } ], \"states\": [ { \"name\": \"GetStockPrice\", \"type\": \"operation\", \"actionMode\": \"sequential\", \"actions\": [ { \"name\": \"getStockPrice\", \"functionRef\": { \"refName\": \"getStockPriceFunction\", \"arguments\": { \"symbol\": \".symbol\" } } } ], \"transition\": \"ComputeProfit\" }, { \"name\": \"ComputeProfit\", \"type\": \"operation\", \"actionMode\": \"sequential\", \"actions\": [ { \"name\": \"getStockProfit\", \"functionRef\": { \"refName\": \"getProfitFunction\", \"arguments\": { \"symbol\": \".symbol\", \"currentPrice\": \".currentPrice\" } } } ], \"end\": true } ] } 1 Defines the stock-service service operation 2 Defines the stock-portfolio-service service operation SonataFlow leverages Quarkus profiles to configure the workflow application depending on the target environment. To set properties for different profiles, each property needs to be prefixed with a percentage (%) followed by the profile name and a period (.) in the syntax as %.config.name. By default, Quarkus provides the following profiles that activate automatically in certain conditions: dev: Activates in development mode, such as quarkus:dev test: Activates when tests are running prod (default profile): Activates when not running in development or test mode You can also create additional profiles and activate them using the quarkus.profile configuration property. For more information about Quarkus profiles, see Profiles in the Quarkus Configuration reference guide. You can define the URLs of the services in different environments by using profiles. Procedure Create a file named application.properties in the src/main/resources directory of the workflow project, if the file does not exist. In the application.properties file, add the OpenAPI configuration for the default environment: Example properties in application.properties file quarkus.rest-client.stock_svc_yaml.url=http://localhost:8383/ (1) quarkus.rest-client.stock_portfolio_svc_yaml.url=http://localhost:8282/ 1 URL of the real-stock-service service In the application.properties file, add the OpenAPI configuration for the dev environment: Example properties for development environment %dev.quarkus.rest-client.stock_svc_yaml.url=http://localhost:8181/ (1) 1 URL of the fake-stock-service service The %dev. prefix indicates the dev profile configuration, which is used when you run mvn quarkus:dev or quarkus dev. After defining the URLs of the services, you can run the services that the workflow sends request to. Prerequisites URLs of the services in the different environments are defined. For more information, see Defining the URLs of the services in different environments. Procedure In a separate command terminal window, run the stock-portfolio-service service: Run the stock-portfolio-service service cd stock-portfolio-service mvn quarkus:dev -Ddebug=false You can access the stock-portfolio-service service at http://localhost:8282/. In a separate command terminal window, run the real-stock-service service: Run real-stock-service service cd real-stock-service mvn quarkus:dev -Ddebug=false You can access the real-stock-service service at http://localhost:8383/. In a separate command terminal window, run the fake-stock-service service: Run fake-stock-service service cd fake-stock-service mvn quarkus:dev -Ddebug=false You can access the fake-stock-service service at http://localhost:8181/. When you define %dev.quarkus.rest-client.stock_svc_yaml.url=http://localhost:8181/, the fake-stock-service service is used in the development mode and you get the same result every time you run the workflow. Using this example, you can run the workflow application in development mode. Prerequisites Services that the workflow application sends requests to are started. For more information, see Running the services. Procedure In a separate command terminal window, run the workflow application in development mode: Run workflow application in development mode cd stock-profit mvn quarkus:dev -Ddebug=false In a separate command terminal window, send a request to the workflow application: Example request curl -X 'POST' \\ 'http://localhost:8080/stockprofit' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"symbol\": \"KGTO\" }' Example response {\"id\":\"5ab5dcb8-5952-4730-b526-cace363774bb\",\"workflowdata\":{\"symbol\":\"KGTO\",\"currentPrice\":75,\"profit\":\"50%\"}} Note that, in the previous example fake-stock-service is used, therefore, the computed profit property is same no matter how many times you run the workflow. When you define quarkus.rest-client.stock_svc_yaml.url=http://localhost:8383/, the real-stock-service service is used in the normal or production mode and you get different results every time you run the workflow. Using this example, you can run the workflow application in normal or production mode. Prerequisites Services that the workflow application sends requests to are started. For more information, see Running the services. Procedure In a separate command terminal window, package the workflow application to be run as fat JAR: Package workflow application cd stock-profit mvn package In a separate command terminal window, run the workflow application in normal or production mode: Run workflow application in normal or production mode java -jar target/quarkus-app/quarkus-run.jar In a separate command terminal window, send a request to the workflow application: Example request curl -X 'POST' \\ 'http://localhost:8080/stockprofit' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"symbol\": \"KGTO\" }' Example response {\"id\":\"a80c95d6-51fd-4ca9-b689-f779929c9937\",\"workflowdata\":{\"symbol\":\"KGTO\",\"currentPrice\":59.36,\"profit\":\"19%\"}} Note that, in the previous example, the real-stock-service is used, therefore, the computed profit property is different every time you run the workflow. You can define the URLs of the services in different environments using profiles and environment variables. Prerequisites Services that the workflow application sends requests to are started. For more information, see Running the services. Procedure In a separate command terminal window, run the workflow application in development mode, overwriting the property defined in the application.properties file using an environment variable: Run the workflow application in development mode cd stock-profit export _DEV_QUARKUS_REST_CLIENT_STOCK_SVC_YAML_URL=http://localhost:8383/ (1) mvn quarkus:dev -Ddebug=false 1 Overwrite the %dev.quarkus.rest-client.stock_svc_yaml.url=http://localhost:8181/ defined in the application.properties file using an environment variable, which is pointing to real-stock-service. In a separate command terminal window, send a request to the workflow application: Example request curl -X 'POST' \\ 'http://localhost:8080/stockprofit' \\ -H 'accept: */*' \\ -H 'Content-Type: application/json' \\ -d '{ \"symbol\": \"KGTO\" }' Example response {\"id\":\"5ab5dcb8-5952-4730-b526-cace363774bb\",\"workflowdata\":{\"symbol\":\"KGTO\",\"currentPrice\":56.35,\"profit\":\"13%\"}} Note that, in the previous example, you overwrote the property defined in the application.properties file to point to real-stock-service, therefore, the computed profit property is different every time you run the workflow. Orchestrating the OpenAPI services Quarkus configuration guide If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Configuring OpenAPI Services Endpoints","component":"serverlessworkflow","version":"1.43.0.Final","name":"configuring-openapi-services-endpoints","url":"/serverlessworkflow/latest/service-orchestration/configuring-openapi-services-endpoints.html","titles":[{"text":"Overview","hash":"con-config-openapi-services-endpoints","id":1},{"text":"Using URI alias","hash":"_using_uri_alias","id":2},{"text":"Configuring the OpenAPI services endpoints in different environments","hash":"proc-configure-openapi-services-endpoints-different-environments","id":3},{"text":"Defining URLs of the services in different environments","hash":"proc-config-openapi-services-defining-urls","id":4},{"text":"Running the services","hash":"proc-config-openapi-services-running-the-services","id":5},{"text":"Running workflow application in development mode","hash":"proc-config-openapi-services-running-sw-application-in-development-mode","id":6},{"text":"Running workflow application in production mode","hash":"proc-config-openapi-services-running-sw-application-in-production-mode","id":7},{"text":"Defining URLs of services in different environments using environment variables","hash":"proc-define-urls-using-environment-variables","id":8},{"text":"Additional resources","hash":"_additional_resources","id":9},{"text":"Found an issue?","hash":"_found_an_issue","id":10}]},"35":{"id":35,"text":"As a developer, you can invoke a gRPC service using a workflow application that runs with Quarkus. This document describes how to create a workflow that invokes a running gRPC service and how to configure properties to locate that running gRPC service. For information about gRPC concepts, see gRPC. In order to illustrate how gRPC integration works, this Serverless Workflow application is used. This example greets a user in their preferred language by invoking a gRPC service. Relevant files of the workflow application include: gRPC proto file: This file defines a greeter service, which consists of sayHello methods, each covering a different gRPC scenario: The sayHello method accepts two parameters, including name of the user and an optional language to use in the greeting message (English by default). The sayHello method returns the greeting message in the appropriate language. The SayHelloAllLanguages accepts just the name parameter and streams greetings in all languages supported by the service. This represents the server-side streaming scenario. The SayHelloMultipleLanguagesAtOnce accepts a stream of name-language pairs as parameters and returns corresponding greetings as one block of text after the streaming is finished. This is the client-side streaming scenario. The SayHelloMultipleLanguages accepts a stream of name-language pairs and streams back greetings with a respective name and in a respective language. // The greeter service definition. service Greeter { // Sends a greeting rpc SayHello (HelloRequest) returns (HelloReply) {} rpc SayHelloAllLanguages (HelloRequest) returns (stream HelloReply) {} rpc SayHelloMultipleLanguagesAtOnce (stream HelloRequest) returns (HelloReply) {} rpc SayHelloMultipleLanguages (stream HelloRequest) returns (stream HelloReply) {} ... } // The request message containing the user's name. message HelloRequest { string name = 1; string language=2; } // The response message containing the greetings message HelloReply { string message = 1; } Workflow definition file: This file defines an RPC function. \"functions\": [ { \"name\": \"sayHello\", \"type\": \"rpc\", \"operation\": \"greeting.proto#Greeter#SayHello\" } ] In this rpc function, the operation property is composed of three tokens separated by #. The three tokens include: URI of the proto file (greeting.proto) Name of the service (Greeter) Name of the method (SayHello) SonataFlow supports three URI schemes, including http, file, and classpath (default). Therefore, in the previous example, the greeting.proto is expected to be found in the project classpath. The execution of the workflow consists of a single operation state, which is composed of one action. { \"name\": \"sayHello\", \"functionRef\" : { \"refName\": \"sayHello\", \"arguments\": { \"name\": \".name\", \"language\": \".language\" } } } In the previous example, the action invokes the sayHello RPC method using two model variables: name and language. These parameters are provided as part of the REST call that starts the workflow. The response of the method execution is mapped to a JSON object and merged with the workflow model. For the remaining scenarios, see the following workflow definition files: Server streaming Client streaming Bidirectional streaming The only difference to the basic scenario is that workflows with client streaming expect an array of requests as arguments of the gRPC function: { \"name\": \"SayHelloMultipleLanguagesAtOnce\", \"functionRef\" : { \"refName\": \"SayHelloMultipleLanguagesAtOnce\", \"arguments\": \".helloRequests\" } } The function expects an array of requests which is mapped under the helloRequests key in the workflow model. In case of server streaming, the response is returned as an array as well and merged with the workflow model. In these examples, because no stateDataFilter is defined, the response is merged under the default response key in the workflow model. Maven POM: The gRPC functionality is included within workflow dependencies, which means you do not need to add specific dependencies for gRPC to work with SonataFlow. This pom.xml file contains the following resource node: ${project.basedir}/../serverless-workflow-greeting-server-rpc-quarkus/src/main/proto greeting.proto The reason for this snippet to exist is to guarantee that the proto file is included in the classpath. Remember that in the workflow file, the URI for the proto file does not contain any scheme, therefore the proto file is expected to be accessible in the classpath. The previous, Maven based, approach can be used when the source code of the workflow and the gRPC server are stored in the same repository, but normally this will not be the case. If the proto file can be downloaded from a remote server, you might use the http scheme. If the proto file is not remotely accessible, you will need to manually obtain a copy of it and store in a directory that is included in the classpath (for example src/main/resources). Another possibility is to copy the proto file in a well known absolute path (that might be a shared network file system) and use the file scheme. Application properties: In the application.properties file, you can add the information for the workflow application to locate the gRPC server. Internally, the workflow implementation uses the same set of properties as Quarkus gRPC client. The client-name used by SonataFlow is the service name declared in the proto file. Therefore, since in this example a service called Greeter is invoked, the following code is added to the properties. quarkus.grpc.clients.Greeter.host=localhost quarkus.grpc.clients.Greeter.port=50051 In the same GitHub repository as the example application, there is a Maven project which provides a simple implementation of the Greeter service. By default, this gRPC server runs on port 50051. Therefore, the same port is used in the application.properties file. gRPC specification requires enumeration types to have a default value. The default value is not included in the server response payload. Therefore, use an empty value such as UNKNOWN as default. If, for any reason, your default value is semantically valid and you want the value to be included in the workflow model, you must set kogito.grpc.enum.includeDefault property to true. This way enumeration fields are always filled by the workflow if the server response does not include them. Before running the workflow application, you need to start the gRPC server the workflow invokes. To run the gRPC server, navigate to the serverless-workflow-greeting-server-rpc-quarkus directory in a command terminal and enter the command: mvn compile exec:java -Dexec.mainClass=\"org.kie.kogito.examples.sw.greeting.GreeterService\" Once the server is running, you must navigate to the serverless-workflow-greeting-client-rpc-quarkus directory in a separate command terminal and run the workflow application by entering the following command: mvn clean quarkus:dev Once the workflow application is started, you can invoke the workflow instance using any HTTP client, such as curl, from a separate command terminal. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://localhost:8080/jsongreet Example response {\"id\":\"4376cc50-42d4-45ef-8a5e-6e403a654a30\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"message\":\"Hello from gRPC service John\"}} You can also try greeting in a different language. curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"Javi\", \"language\": \"Spanish\"}' http://localhost:8080/jsongreet In response, you will see the greeting in Spanish language. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\"}' http://localhost:8080/jsongreetserverstream Example response {\"id\":\"665911c5-36ee-40b7-93dd-a2328f969c73\",\"workflowdata\":{\"name\":\"John\",\"response\":[{\"message\":\"Hello from gRPC service John\"},{\"message\":\"Saludos desde gRPC service John\"}]}} Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"helloRequests\" : [{\"name\" : \"Javierito\", \"language\":\"Spanish\"}, {\"name\" : \"John\", \"language\":\"English\"}, {\"name\" : \"Jan\", \"language\":\"Czech\"}]}' http://localhost:8080/jsongreetclientstream Example response {\"workflowdata\" : { \"helloRequests\" : [ {\"name\" : \"Javierito\", \"language\":\"Spanish\"}, {\"name\" : \"John\", \"language\":\"English\"}, {\"name\" : \"Jan\", \"language\":\"Czech\"}], \"message\":\"Saludos desde gRPC service Javierito\\nHello from gRPC service John\\nHello from gRPC service Jan\" } } Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"helloRequests\" : [{\"name\" : \"Javierito\", \"language\":\"Spanish\"},{\"name\" : \"John\", \"language\":\"English\"},{\"name\" : \"Jan\", \"language\":\"Czech\"}]}' http://localhost:8080/jsongreetbidistream Example response {\"workflowdata\" : { \"helloRequests\" : [ {\"name\" : \"Javierito\", \"language\":\"Spanish\"}, {\"name\" : \"John\", \"language\":\"English\"}, {\"name\" : \"Jan\", \"language\":\"Czech\"}], \"response\":[ {\"message\":\"Saludos desde gRPC service Javierito\"}, {\"message\":\"Hello from gRPC service John\"}, {\"message\":\"Hello from gRPC service Jan\"} ] } } If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Orchestrating gRPC based Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestration-of-grpc-services","url":"/serverlessworkflow/latest/service-orchestration/orchestration-of-grpc-services.html","titles":[{"text":"Default enum values","hash":"_default_enum_values","id":1},{"text":"Running the workflow application","hash":"running-serverless-workflow-application","id":2},{"text":"Simple gRPC","hash":"_simple_grpc","id":3},{"text":"Server-side streaming gRPC","hash":"_server_side_streaming_grpc","id":4},{"text":"Client-side streaming gRPC","hash":"_client_side_streaming_grpc","id":5},{"text":"Bidirectional streaming gRPC","hash":"_bidirectional_streaming_grpc","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"36":{"id":36,"text":"This document describes how to call REST services using an OpenAPI specification file. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. You have installed the tooling. For more information about the tooling, see Getting familiar with SonataFlow tooling. SonataFlow follows the CNCF Serverless Workflow specification function definition to send requests to remote REST services using an OpenAPI specification reference as shown in the following example: Example of an OpenAPI function definition { \"functions\":[ { \"name\":\"myFunction1\", \"operation\":\"classpath:/myopenapi-file.yaml#myFunction1\" } ] } In the previous example function definition, the type attribute can be omitted as the default value is rest. In the previous example, the operation attribute is a string, which is composed using the following parameters: URI that the engine uses to locate the specification file, such as classpath. Operation identifier. You can find the operation identifier in the OpenAPI specification file. SonataFlow supports the following URI schemes: classpath: This URI scheme is supported for the files that are located in the src/main/resources folder of the application project. The classpath is the default URI scheme. If you do not define a URI scheme as shown in the following examples, the file location is defined as src/main/resources/myopenapifile.yaml: /myopenapifile.yaml file: This URI scheme is supported for the files that are located in the file system. http or https: This URI scheme is supported for remotely located files. The OpenAPI specification files must be available during the build time, because SonataFlow leverages the internal code generation feature to send requests on runtime. Therefore, once you have built the application image, SonataFlow will not have access to the files. For more information about building workflow images, see Building workflow images using Quarkus CLI. To get started with orchestrating the OpenAPI based services, you must locate the REST services OpenAPI specification files. Usually, REST services expose their interface using the OpenAPI specification. For example, see the Petstore API. In case, the OpenAPI service that you want to add to the workflow does not contain a specification file, you can either create a specification file or update the OpenAPI service to generate and expose the file. There are various REST frameworks that support the OpenAPI specification generation, including: Java Quarkus - Using OpenAPI and Swagger UI Spring Boot Documentation Go Go Swagger Documentation Python Flasgger .NET ASP.NET Core web API documentation with Swagger/OpenAPI TypeScript Swagger UI Express PHP swagger-php If you do not have access to the REST service, which is used to add the OpenAPI specification generator, you can use Swagger Inspector. The Swagger Inspector generates the specification file based on HTTP traffic. To send REST requests that are based on the OpenAPI specification files, you need to perform the following procedures: Define the function references Access the defined functions in the workflow states To send requests with the REST calls, first you need to define the OpenAPI functions. Prerequisites You have access to the OpenAPI specification files. Once you have access to the OpenAPI specification files, you can define the functions in the workflow. You can also use the serverless-workflow-temperature-conversion example application as a reference. Procedure Copy the OpenAPI specification files of the service(s) you want to invoke into your workflow service directory, which can be src/main/resources/specs. In the serverless-workflow-temperature-conversion example application, the services that are invoked include multiplication and subtraction services. The OpenAPI specification files in serverless-workflow-temperature-conversion example application are extracted from the running multiplication and subtraction services. The REST Quarkus applications expose the related OpenAPI specification files using the Quarkus Swagger extension. Following is an example OpenAPI specification of the multiplication REST service: Example multiplication REST service OpenAPI specification openapi: 3.0.3 info: title: Generated API version: \"1.0\" paths: /: post: operationId: doOperation (1) parameters: - in: header name: notUsed schema: type: string required: false requestBody: content: application/json: schema: $ref: '#/components/schemas/MultiplicationOperation' responses: \"200\": description: OK content: application/json: schema: type: object properties: product: format: float type: number components: schemas: MultiplicationOperation: (2) type: object properties: leftElement: format: float type: number rightElement: format: float type: number 1 operationId of the REST operation. The operationId in an OpenAPI specification is necessary to add a reference to the operation that you want to use in REST invocation. 2 Data structure of the REST operation. Use the same operationId to compose the final URI in the function definition as shown in the following example: OpenAPI functions definition in the Temperature Conversion example { \"functions\": [ { \"name\": \"multiplication\", \"operation\": \"specs/multiplication.yaml#doOperation\" (1) }, { \"name\": \"subtraction\", \"operation\": \"specs/subtraction.yaml#doOperation\" (2) } ] } 1 Function definition for OpenAPI multiplication function 2 Function definition for OpenAPI subtraction function Note that in the previous example, the multiplication and subtraction OpenAPI files are stored in the src/main/resources/specs folder of the application. After defining the function definitions, you can access the defined functions in the workflow states. Prerequisites You have defined the OpenAPI functions in a workflow. For more information, see Defining OpenAPI functions in a workflow. Procedure Use a workflow action to call a function definition that you added. Any workflow action that consists of a similar approach of referencing the functions that you used in the function definition can call a defined function. To map the arguments of a function, you can refer to the parameters described in the Operation Object section of OpenAPI specification. Also, the engine maps the parameter naming according to the OpenAPI specification. After that, you can use jq expressions to extract the payload data and map the data to the required parameters. In the following example, the parameters are part of the request body: Example of mapping a function arguments { \"states\": [ { \"name\": \"SetConstants\", \"type\": \"inject\", \"data\": { \"subtractValue\": 32.0, \"multiplyValue\": 0.5556 }, \"transition\": \"Computation\" }, { \"name\": \"Computation\", \"actionMode\": \"sequential\", \"type\": \"operation\", (1) \"actions\": [ { \"name\": \"subtract\", \"functionRef\": { \"refName\": \"subtraction\", (2) \"arguments\": { (3) \"leftElement\": \".fahrenheit\", \"rightElement\": \".subtractValue\" } } }, { \"name\": \"multiply\", \"functionRef\": { \"refName\": \"multiplication\", (4) \"arguments\": { (5) \"leftElement\": \".difference\", \"rightElement\": \".multiplyValue\" } } } ], \"end\": { \"terminate\": \"true\" } } ] } 1 Operation State definition 2 Reference to the subtraction function 3 Definition of the subtraction function arguments 4 Reference to the multiplication function 5 Definition of the multiplication function arguments In the serverless-workflow-temperature-conversion example application, the functions are called sequentially in an Operation State as shown in the previous example. For more information about mapping parameters in the request path instead of request body, you can refer to the following PetStore API example: Example Petstore OpenAPI specification excerpt { \"/pet/{petId}\": { \"get\": { \"tags\": [ \"pet\" ], \"summary\": \"Find pet by ID\", \"description\": \"Returns a single pet\", \"operationId\": \"getPetById\", \"parameters\": [ { \"name\": \"petId\", \"in\": \"path\", \"description\": \"ID of pet to return\", \"required\": true, \"schema\": { \"type\": \"integer\", \"format\": \"int64\" } } ] } } } Following is an example invocation of a function, in which only one parameter named petId is added in the request path: Example of calling the PetStore function { \"name\": \"CallPetStore\", (1) \"actionMode\": \"sequential\", \"type\": \"operation\", \"actions\": [ { \"name\": \"getPet\", \"functionRef\": { \"refName\": \"getPetById\", (2) \"arguments\": { (3) \"petId\": \".petId\" } } } ] } 1 State definition, such as CallPetStore. 2 Function definition reference. In the previous example, the function definition getPetById is for PetStore OpenAPI specification. 3 Arguments definition. In the previous example, SonataFlow adds the argument petId to the request path before sending a request. After accessing the function definitions in workflow states, you can configure the endpoint URL of OpenAPI services. SonataFlow uses the Quarkus OpenAPI Generator extension and the Quarkus REST Client, and all the configurations are based on these components, which are backed using Quarkus Configuration. Prerequisites You have defined the function definitions in the workflow. For more information, see Defining OpenAPI functions in a workflow. You have the access to the defined functions in the workflow states. For more information, see Accessing functions in the workflow states. Procedure To configure the endpoints, you must use the sanitized OpenAPI specification file name as the REST client configuration key. The configuration key must be set as a valid environment variable. For example, a file named as subtraction.yaml contains the configuration key as subtraction_yaml. For more information about how to sanitize file names, see Environment Variables Mapping Rules. You can use the same configuration key on each property that is related to the Quarkus REST client as shown in the following URL configuration example: Example of URL configuration quarkus.rest-client.subtraction_yaml.url=http://myserver.com To avoid hardcoding the URL in the application.properties file, you can use environment variables substitution, as shown in the following example: Example of URL configuration with environment variables quarkus.rest-client.subtraction_yaml.url=${SUBTRACTION_URL:http://myserver.com} In case the environment variable SUBTRACTION_URL is not found in the previous example, the URL redirects to http://myserver.com. You can also use environment variables to configure the application in Kubernetes environments, in which variables can be injected into the pod of the application. For more information about endpoints and general configuration, see Configuring the OpenAPI services endpoints. In a future release, SonataFlow will provide support for Kubernetes Service Discovery feature. Using the Kubernetes Service Discovery feature, you can point to a Kubernetes or Knative object that you want to call. After that, the engine will automatically configure the endpoints once you deploy the endpoints in the cluster. Configuring OpenAPI services endpoints Authentication for OpenAPI services in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Orchestrating OpenAPI Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestration-of-openapi-based-services","url":"/serverlessworkflow/latest/service-orchestration/orchestration-of-openapi-based-services.html","titles":[{"text":"OpenAPI function definition","hash":"con-openapi-function-definition","id":1},{"text":"Sending REST requests based on the OpenAPI specification","hash":"proc-send-request-rest-call-openapi-spec","id":2},{"text":"Defining OpenAPI functions in a workflow","hash":"proc-define-openapi-functions","id":3},{"text":"Accessing functions in the workflow states","hash":"proc-access-function-sw-states","id":4},{"text":"Configuring the endpoint URL of OpenAPI services","hash":"proc-configuring-openapi-service-endpoint-url","id":5},{"text":"Additional resources","hash":"_additional_resources","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"37":{"id":37,"text":"This document describes the OpenAPI Callback and related examples. Also, it covers the difference between OpenAPI Callback and the Serverless Workflow Callback state. The Serverless Workflow callback state can be implemented using both the OpenAPI callback and the Callback state functionalities. Both the functionalities perform an action and wait for an event to be produced as a result of the action to resume the workflow, but each of them follows a different approach in achieving it. Therefore, both OpenAPI callback and the Callback state approaches are suitable to perform fire & wait-for-result operations. The OpenAPI callback is an asynchronous, out-of-band request that your service will send to some other service in response to specific events. In contrast, the Callback state performs an action that triggers an external activity/service which is responsible for sending a cloud event to the workflow. Both ways aim to send an event to the workflow to resume the flow. As mentioned in the OpenAPI Callback document, when the workflow makes an asynchronous service call, you must provide the callback URL in the request body. The external service invokes the callback URL and sends a CloudEvent to the workflow. From a workflow perspective, asynchronous service indicates that the control is returned to the caller immediately without waiting for the action to be completed. Once the action is completed, a CloudEvent needs to be published to resume the workflow. For the workflow to identify the published CloudEvent it is waiting for, the external service developer includes the workflow instance ID in the CloudEvent header or uses the Event correlation. The following figure displays the process: The workflow correlation described in this document focuses on the former mechanism that is based on the fact that each workflow instance contains a unique identifier, which is generated automatically. To understand the OpenAPI Callback, see the serverless-workflow-callback-events-over-http-quarkus example application in GitHub repository. This example contains a simple workflow-service that illustrates callback state using OpenAPI callbacks functionality. A callback is a state that invokes an action and wait for an event (event that will be eventually fired by the external service notified by the action). This example consists of a callback state that waits for an event to arrive at the wait channel. Its action calls an external service named callback-event-service that publishes the wait event over HTTP. After consuming the wait event, the workflow prints the message received in the wait event and ends the workflow. The serverless-workflow-callback-events-over-http-quarkus application is initiated with the following request to http://localhost:8080/callback: { \"message\": \"Hello\" } Once the workflow is started, it makes an external service call with the callback URL and the workflow instance ID in the request body to callback-event-service. Then, as configured in the OpenAPI file, the callback URL is invoked to send a CloudEvent to the workflow. Once the wait type CloudEvent is received by the callback-workflow-service, the workflow moves to the next state and ends successfully. The following figure shows the serverless-workflow-callback-events-over-http-quarkus image: To use the OpenAPI callback in a workflow, the OpenAPI YAML file is configured with the callback as specified in the OpenAPI file. To use the Callback state in a workflow, first CloudEvent type wait is declared that the workflow uses. Following is an example of CloudEvents declaration in a workflow definition: Example of CloudEvent declaration in a workflow definition \"events\": [ { \"name\": \"waitEvent\", \"source\": \"\", \"type\": \"wait\" } After that, a Callback state is declared, which waits for a CloudEvent with the wait type. Following is an example of declaring a Callback state that handles the wait type CloudEvent: Example of a Callback State declaration handling the wait CloudEvent { \"name\": \"waitForEvent\", \"type\": \"callback\", \"action\": { \"functionRef\": { \"refName\": \"callBack\", \"arguments\": { \"uri\": \"http://localhost:8080/wait\", \"processInstanceId\": \"$WORKFLOW.instanceId\" } } }, \"eventRef\": \"waitEvent\", \"transition\": \"finish\" } Please refer configure openapi service endpoints document to set the URL dynamically using an environment variable. An event listener publishes a new wait type CloudEvent. Following is an example of a Java method that publishes the wait type CloudEvent: Example of a Java method that makes a call to Callback URL and publishes the wait CloudEvent @POST @Consumes(MediaType.APPLICATION_JSON) public void wait(EventInput eventInput) throws JsonProcessingException { logger.info(\"About to generate event for {}\",eventInput); CloudEventBuilder builder = CloudEventBuilder.v1() .withId(UUID.randomUUID().toString()) .withSource(URI.create(\"\")) .withType(\"wait\") .withTime(OffsetDateTime.now()) .withExtension(CloudEventExtensionConstants.PROCESS_REFERENCE_ID, eventInput.getProcessInstanceId()) .withData(objectMapper.writeValueAsBytes(Collections.singletonMap(\"message\", \"New Event\"))); webClient.postAbs(eventInput.getUri()).sendJson(builder.build()).toCompletionStage(); } The callback-workflow-service consumes the CloudEvent, it contains an attribute named kogitoprocrefid, which holds the instance ID of the workflow. The kogitoprocrefid attribute is crucial because when the correlation is not used, then this attribute is the only way for the Callback state to identify that the related CloudEvent needs to be used to resume the workflow. For more information about correlation, see Event correlation in SonataFlow. Note that each workflow is identified by a unique instance ID, which is automatically included in any published CloudEvent, as kogitoprocinstanceid CloudEvent extension. The serverless-workflow-callback-events-over-http-quarkus example application consumes the Cloudevents using Knative Eventing. For more information about incoming and outgoing CloudEvents oer HTTP, see Consuming and Producing CloudEvents over HTTP. The HTTP path where the workflow application will listen for the CloudEvents in the serverless-workflow-callback-events-over-http-quarkus example application, is configured in the application.properties file as shown below: mp.messaging.incoming.wait.connector=quarkus-http mp.messaging.incoming.wait.path=/wait Creating your first workflow service Event correlation in SonataFlow OpenAPI Callback Example If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"OpenAPI Callback in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"working-with-openapi-callbacks","url":"/serverlessworkflow/latest/service-orchestration/working-with-openapi-callbacks.html","titles":[{"text":"Example of the OpenAPI Callback","hash":"ref-example-callback","id":1},{"text":"HTTP transport configuration","hash":"_http_transport_configuration","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"38":{"id":38,"text":"This document describes how to test your workflow application using REST Assured. REST Assured enables you to test REST APIs using Java libraries and integrates with Apache Maven. For more information about REST Assured, see REST Assured page. The testing procedure in this document is based on the serverless-workflow-examples/serverless-workflow-testing-with-rest-assured example application. You can access this example application in Kogito Examples GitHub repository. The following procedure describes how to test a workflow application that exposes the hello endpoint, which expects a name as a request parameter and returns greeting value: Example request body { \"name\": \"John Doe\" } Example response { \"id\": \"00ce5c1d-4936-4e18-998c-f5c5d5d784ad\", \"workflowdata\": { \"greeting\": \"Hello, John Doe\" } } Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. This document is based on the serverless-workflow-testing-with-rest-assured example application from the GitHub repository. Procedure Check if your project has the REST Assured dependency in your pom.xml file. If it doesn’t, add it like the following: io.rest-assured rest-assured test Create a test class named HelloTest in the src/test/java/org/kie/kogito/examples/ directory, containing the following content: Example HelloTest.java file package org.kie.kogito.examples; import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; import io.restassured.http.ContentType; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.equalTo; @QuarkusTest class HelloTest { @BeforeAll static void init() { RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); (1) } @Test void testHello() { given() .contentType(ContentType.JSON) (2) .accept(ContentType.JSON) (3) .body(\"{\\\"name\\\": \\\"John Doe\\\"}\") (4) .when() .post(\"/hello\") (5) .then() .statusCode(201) (6) .body(\"workflowdata.greeting\", equalTo(\"Hello, John Doe\")); (7) } } 1 Enables logging of the request and response when the test fails. 2 Defines JSON as the content type of the request. 3 Specifies the accept header of the request. This is an alternative for header(\"Accept\", \"application/json\"). 4 Defines the request body as {\"name\": \"John Doe\"}. 5 Specifies the request as a POST method to the /hello URL. 6 Defines 201 as the expected response status code. 7 Defines that Hello, John Doe is expected in the workflowdata.greeting JSON path. To run your test, execute the following command: Command to run a test mvn clean verify Example output [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running org.kie.kogito.examples.HelloTest 2022-06-03 16:36:11,461 INFO [org.jbo.threads] (main) JBoss Threads version 3.4.2.Final 2022-06-03 16:36:11,708 INFO [org.kie.kog.cod.api.uti.AddonsConfigDiscovery] (build-1) Performed addonsConfig discovery, found: AddonsConfig{usePersistence=false, useTracing=false, useMonitoring=false, usePrometheusMonitoring=false, useCloudEvents=true, useExplainability=false, useProcessSVG=false, useEventDrivenDecisions=false, useEventDrivenRules=false} 2022-06-03 16:36:12,004 INFO [org.kie.kog.cod.cor.uti.ApplicationGeneratorDiscovery] (build-9) Generator discovery performed, found [processes] 2022-06-03 16:36:14,486 INFO [org.kie.kog.add.qua.mes.com.QuarkusKogitoExtensionInitializer] (main) Registered Kogito CloudEvent extension 2022-06-03 16:36:14,612 INFO [io.quarkus] (main) serverless-workflow-testing-with-rest-assured 1.0 on JVM (powered by Quarkus 2.9.2.Final) started in 3.635s. Listening on: http://localhost:8081 2022-06-03 16:36:14,613 INFO [io.quarkus] (main) Profile test activated. 2022-06-03 16:36:14,613 INFO [io.quarkus] (main) Installed features: [cache, cdi, jackson-jq, kogito-addon-messaging-extension, kogito-processes, kogito-serverless-workflow, reactive-routes, rest-client, rest-client-jackson, resteasy, resteasy-jackson, smallrye-context-propagation, smallrye-reactive-messaging, smallrye-reactive-messaging-http, vertx] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.819 s - in org.kie.kogito.examples.HelloTest 2022-06-03 16:36:16,559 INFO [io.quarkus] (main) serverless-workflow-testing-with-rest-assured stopped in 0.028s [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ serverless-workflow-testing-with-rest-assured --- [INFO] Building jar: /home/user/dev/kiegroup/kogito-examples/serverless-workflow-examples/serverless-workflow-testing-with-rest-assured/target/serverless-workflow-testing-with-rest-assured-1.0.jar [INFO] [INFO] --- quarkus-maven-plugin:2.9.2.Final:build (default) @ serverless-workflow-testing-with-rest-assured --- [INFO] Performed addonsConfig discovery, found: AddonsConfig{usePersistence=false, useTracing=false, useMonitoring=false, usePrometheusMonitoring=false, useCloudEvents=true, useExplainability=false, useProcessSVG=false, useEventDrivenDecisions=false, useEventDrivenRules=false} [INFO] Generator discovery performed, found [processes] [INFO] [io.quarkus.deployment.QuarkusAugmentor] Quarkus augmentation completed in 2669ms [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 15.558 s [INFO] Finished at: 2022-06-03T16:36:19-03:00 [INFO] ------------------------------------------------------------------------ If you see a similar output, this means your test is executed successfully. Mocking OpenAPI services using WireMock Mocking HTTP CloudEvents sink using WireMock SonataFlow integration test using PostgreSQL Testing a Quarkus application REST Assured Documentation If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Testing your Quarkus Workflow Application using REST Assured","component":"serverlessworkflow","version":"1.43.0.Final","name":"basic-integration-tests-with-restassured","url":"/serverlessworkflow/latest/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","titles":[{"text":"Additional resources","hash":"_additional_resources","id":1},{"text":"Found an issue?","hash":"_found_an_issue","id":2}]},"39":{"id":39,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"debugging-workflow-execution-runtime","url":"/serverlessworkflow/latest/testing-and-troubleshooting/debugging-workflow-execution-runtime.html","titles":[]},"40":{"id":40,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"development-tools-for-troubleshooting","url":"/serverlessworkflow/latest/testing-and-troubleshooting/development-tools-for-troubleshooting.html","titles":[]},"41":{"id":41,"text":"SonataFlow provides a plug-in named kn-plugin-workflow for Knative CLI, which enables you to set up a local workflow project quickly using the command line. This document describes how you can install and use the kn-plugin-workflow plug-in in SonataFlow. You can use the SonataFlow plug-in to set up your local workflow project quickly using Knative CLI. Prerequisites Java 11+ is installed. Maven 3.8.6 or later is installed. (Optional) Docker is installed. (Optional) Podman is installed. Kubernetes CLI is installed. Procedure Download the latest binaries from the KIE Tooling Releases page. Run the kn workflow command using one of the following methods: Add kn workflow command in your system path and ensure that it is executable. Install kn workflow command as a plug-in of the Knative CLI using the following steps: Install the Knative CLI. For installation instructions, see Installing kn documentation. Copy the kn-workflow binary to a directory in your PATH, such as /usr/local/bin and ensure that the file name is kn-workflow. On Mac, add execution permission as follows: chmod +x /usr/local/bin/kn-workflow Some systems might block the application to run due to Apple enforcing policies. To fix this problem, check the Security & Privacy section in the System Preferences → General tab to approve the application to run. For more information, see Apple support article: Open a Mac app from an unidentified developer. Run the following command to verify that kn-workflow plug-in is installed successfully: kn plugin list After installing the plug-in, you can use kn workflow to run the related subcommands. Use the workflow subcommand in Knative CLI as follows: Methods to use workflow subcommand kn workflow kn-workflow Example output Manage Kogito Serverless Workflow projects Usage: kn workflow [command] Available Commands: build Build a Kogito Serverless Workflow project and generate a container image completion Generate the autocompletion script for the specified shell create Create a Kogito Serverless Workflow project deploy Deploy a Kogito Serverless Workflow project help Help about any command Flags: -h, --help help for kn-workflow -v, --verbose Print verbose logs Use \"kn workflow [command] --help\" for more information about a command. After installing the SonataFlow plug-in, you can use the create command with kn workflow to scaffold a new workflow project in your current directory. The create command sets up Quarkus project containing minimal extensions to build a workflow project. Also, the generated workflow project contains a \"hello world\" workflow.sw.json file in your .//src/main/resources directory. Prerequisites SonataFlow plug-in for Knative CLI is installed. For more information about installing the plug-in, see Installing the SonataFlow plug-in for Knative CLI. Procedure In Knative CLI, enter the following command to create a new project: Creates a project named new-project kn workflow create By default, the generated project is named as new-project. You can overwrite the project name by using the [-n|--name] flag as follows: Create a project named my-project kn workflow create --name my-project Add more extensions to the Quarkus project during its creation by using the [-e|--extension] flag as follows: Create a project with quarkus-jsonp and quarkus-smallrye-openapi extensions kn workflow create --extension quarkus-jsonp,quarkus-smallrye-openapi You can add multiple extensions using the comma-separated names of the extensions in the previous command. When you run the create command for the first time, it might take a while due to the necessity of downloading the required dependencies for the Quarkus project. After creating your workflow project, you can use the build command with kn workflow to build your workflow project in your current directory and to generate a container image. The process of building your workflow project produces a knative.yml file in the ./target/kubernetes folder. If your workflow contains events, then the building process also generates a kogito.yml file. Prerequisites SonataFlow plug-in for Knative CLI is installed. For more information about installing the plug-in, see Installing the SonataFlow plug-in for Knative CLI. A workflow project is created. For more information about creating a workflow project, see Creating workflow project using Knative CLI. Procedure In Knative CLI, enter the following command to build your workflow project: Build the project and generate a local image named dev.local/my-project kn workflow build --image dev.local/my-project By using dev.local as repository, you can deploy your SonataFlow project in a local environment without having to push the image to a container registry. To use the build command, you need to provide either --image or --image-name flag. In the previous command, you can use the [-i|--image] in several ways, such as: --image=[name] --image=[name]:[tag] --image=[repository]/[name] --image=[repository]/[name]:[tag] --image=[registry]/[repository]/[name] --image=[registry]/[repository]/[name]:[tag] The default value for registry and tag is quay.io and latest respectively. Also, you can use specific flags to compose the full name of the image as follows: --image-registry --image-repository --image-name --image-tag In case the --image flag is composed with specific flags as shown in the following command, then the specific value overrides the --image flag: Build the project and generate a local image named quay.io/other-user/my-project:1.0.1 kn workflow build --image my-user/my-project:1.0.0 --image-repository other-user --image-tag 1.0.1 You can use the following strategies to build a workflow project and to generate the container image: Using Jib Jib is an extension that builds a container image without the necessity of a container runtime. When using the Jib extension, the rebuilds are fast and the resultant container image is optimized. You can use the following commands to build a workflow project and to generate a local image using Jib: Build a project and generate a local image using Jib kn workflow build --image dev.local/my-project --jib The generated container image can be saved in the Docker runtime. Build a project and generate a local image using Jib kn workflow build --image dev.local/my-project --jib-podman Using the previous command, the generated container image can be saved in the Podman runtime. If you do not want to use any container runtime, then use --push to push the generated container image to the respective registry as shown in the following command: Build a project and push the image using Jib kn workflow build --image my-project --jib --push Before using the --push option, ensure that you have access to your registry. You can get the access using Docker or Podman login. Using Docker The process of building your workflow project using Docker is straightforward and also a default approach. When using Docker, you can automatically push the container image to the respective registry by using the --push option as shown in the following command: Build a project and push the image using Docker kn workflow build --image my-project --push You can use the deploy command combined with kn workflow to deploy your workflow project in your current directory. However, before deploying the project, you must build your workflow project as the build process produces deployment files, such as knative.yml and kogito.yml (In case of events) in the ./target/kubernetes folder. Prerequisites SonataFlow plug-in for Knative CLI is installed. For more information about installing the plug-in, see Installing the SonataFlow plug-in for Knative CLI. A workflow project is created. For more information about created a workflow project, see Creating workflow project using Knative CLI. A workflow project is built. For more information about building your workflow project, see Building workflow project using Knative CLI. Procedure In Knative CLI, enter the following command to deploy your workflow project: Deploy a workflow project kn workflow deploy If the deployment files (knative.yml and kogito.yml) are saved in any other folder instead of ./target/kubernetes, then you can override the path using the --path flag with deployment command as follows: Deploy a workflow project using --path kn workflow deploy --path other-path Also, ensure that you have access to your cluster and your cluster can access the generated container image. You can use the kubectl command line if you want to use a complex deployment setup for your workflow project. Creating your first workflow service If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"SonataFlow plug-in for Knative CLI","component":"serverlessworkflow","version":"1.43.0.Final","name":"kn-plugin-workflow-overview","url":"/serverlessworkflow/latest/testing-and-troubleshooting/kn-plugin-workflow-overview.html","titles":[{"text":"Installing the SonataFlow plug-in for Knative CLI","hash":"proc-install-sw-plugin-kn-cli","id":1},{"text":"Creating a workflow project using Knative CLI","hash":"proc-create-sw-project-kn-cli","id":2},{"text":"Building a workflow project using Knative CLI","hash":"proc-build-sw-project-kn-cli","id":3},{"text":"Strategy for building a workflow project","hash":"con-build-strategy-kn-cli","id":4},{"text":"Deploying a workflow project using Knative CLI","hash":"proc-deploy-sw-project-kn-cli","id":5},{"text":"Additional resources","hash":"_additional_resources","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"42":{"id":42,"text":"This document describes how you can test your workflow application that uses HTTP CloudEvents and Knative SinkBinding. The example described in this document is based on the serverless-workflow-order-processing example application. The workflow application that you want to test must be configured to use Knative Eventing. You must configure Knative Eventing using standard HTTP POST requests to send and receive events between event producers and sinks. The events between the event producers and sinks follow the CloudEvents specification, which enables creating, parsing, sending, and receiving events in any programming language. When you create an event source, you can specify a sink where events are sent to, from the source. A sink is a transferable or a callable resource that can receive incoming events from other resources. The examples of sink include Kubernetes deployments, Knative services, channels, and brokers. This document describes the testing of Knative service that is configured as a sink, and the same Knative service is mocked to verify if the CloudEvents are received correctly by the sink. In this process, the WireMock framework adds the mocked server, verifying the CloudEvents received by the sink during the workflow service execution. You can test a workflow application using SinkBinding. Prerequisites Your workflow application is working. For more information about creating a workflow application, see Creating your first workflow service. Your workflow application is configured to use HTTP CloudEvents using SinkBinding. For more information about enabling event-driven architecture in your workflow application using Knative Eventing, see Consuming and producing events on Knative Eventing. Procedure Add the required test dependencies to the pom.xml file of your workflow application: Add test dependencies to pom.xml file io.quarkus quarkus-junit5 (1) test io.rest-assured rest-assured (1) test com.github.tomakehurst wiremock-jre8 (2) test org.awaitility awaitility (3) test 1 quarkus-junit5 and rest-assured dependencies are required for HTTP-based testing in JVM mode. 2 wiremock-jre8 dependency allows you to mock the server that acts as a sink. 3 awaitility dependency is used to express the expectations of an asynchronous system. For more information, see Awaitility website. You can also see the dependencies added in pom.xml file of serverless-workflow-order-processing example application. Add failsafe maven plug-in to run integration tests: maven-failsafe-plugin in the pom.xml plug-in section maven-failsafe-plugin ${version.failsafe.plugin} org.jboss.logmanager.LogManager ${maven.home} integration-test verify More information in maven-failsafe-plugin documentation. Create a test class that mocks the sink using WireMock as shown in the following example: Example of a test class @QuarkusTest(1) public class VerifyWorkflowExecutionIT { (2) private static WireMockServer sink; (3) static { (4) RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); } /** * Starts the \"sink\" server, which is the endpoint that will receive our produced events */ @BeforeAll (5) public static void startSink() { sink = new WireMockServer(options().port(8181)); (6) sink.start(); (7) sink.stubFor(post(\"/\").willReturn(aResponse().withBody(\"ok\").withStatus(200))); (8) } @AfterAll (9) public static void stopSink() { if (sink != null) { sink.stop(); (10) } } @Test void processDomesticOrderUnderFraudEval() throws JsonProcessingException, InterruptedException { final ObjectMapper objectMapper = new ObjectMapper(); final Order order = new Order(); order.setId(UUID.randomUUID().toString()); order.setDescription(\"iPhone 12\"); order.setTotal(1001); order.setCountry(\"US\"); given() (4) .header(\"ce-specversion\", \"1.0\") .header(\"ce-id\", order.getId()) .header(\"ce-source\", \"/from/test\") .header(\"ce-type\", \"orderEvent\") .contentType(MediaType.APPLICATION_JSON) .body(objectMapper.writeValueAsString(order)) .post(\"/\") .then() .statusCode(200); await() (11) .atMost(60, SECONDS) .with().pollInterval(1, SECONDS) .untilAsserted(() -> { sink.verify(2, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(order.getId()))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"fraudEvaluation\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"domesticShipping\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); }); (12) } } 1 @QuarkusTest starts the Quarkus server for the lifetime of the test execution run. For more information, see Quarkus - Testing your application. 2 The test name ends with IT to identify which test needs to be executed as an integration test. More details in maven-failsafe-plugin documentation. 3 WireMockServer is a mocked server instance that is used for SinkBinding for testing. 4 given() is used to test interactions with the application. For more information about testing interactions, see Testing your workflow application using REST Assured. 5 @BeforeAll annotation is used to signal that the annotated method must be executed before running all the tests. 6 Creates a WireMockServer instance, listening at the port that is passed as a parameter and must match with the sink configuration. 7 Starts the server before the tests are executed. 8 Stubs the mocked API response. It accepts a MappingBuilder instance that is used to build API mapping information, such as URL, request parameters, body, headers, and authorization. 9 @AfterAll annotation is used to signal that the annotated method must be executed after executing all the tests. 10 Stops the server after executing all the tests. 11 await() is added to wait for asynchronous operations. 12 verify verifies if the request hits the mock API using the expected event content. You can check the VerifyWorkflowExecutionIT class of serverless-workflow-order-processing example application. Start the server before executing the tests, and stop the server once the tests are completed. You can also reset the mock stubs between the tests. Configure your test application to use the WireMockServer as a sink. Also, add the reference of WireMockServer in the application.properties file as shown in the following example: Example adding sink connection property in application.properties file mp.messaging.outgoing.kogito_outgoing_stream.url=http://0.0.0.0:8181 (1) 1 The port that needs to match with the passed parameter. The parameter is passed when the WireMockServer is created in the test class. For more information, see application.properties file of serverless-workflow-order-processing example application. To run the tests, execute the following command: Run the tests mvn clean verify The testing example in this document is based on the serverless-workflow-order-processing example application. The serverless-workflow-order-processing example application contains three workflows as shown in the following figure: Figure 1. Workflows in serverless-workflow-order-processing example The Order Workflow in the serverless-workflow-order-processing example application processes the incoming order event and starts a parallel state, which sends requests to two workflows including Fraud Handling and Shipping Handling. The Order Workflow ends when both Fraud Handling and Shipping Handling workflows are completed. The Fraud Handling workflow produces a FraudEvaluation event if the received order is more than 1000 USD. In the workflow architecture, any other system or service can read the FraudEvaluation event and react upon it, such as canceling the order. Simultaneously, regardless of evaluating the fraud, the Shipping Handling workflow produces events that classify the required shipping service, such as international or domestic. In this example, domestic shipping is classified for any order, containing the address within the United States. The following figure shows the event flow among the components in the serverless-workflow-order-processing example application: Figure 2. Example of event flow among components Also, the testing components replicate the interactions to verify the events that are received by the sink as shown in the following figure: Figure 3. Example of testing events flow Before executing a test, the WireMockServer starts listening to the configured port as the sink. The sink listens to the events that are produced by the workflows. When a workflow produces an event to the sink, the produced event is received by the WireMockServer, and then the test verifies the event content. The processDomesticOrderUnderFraudEval in the VerifyWorkflowExecutionIT class, produces events, such as fraudEvaluation (Total > 1000) and domesticShipping (country = \"US\"). Also, the order event consumed by the Order Workflow needs to match the requirements as shown in the following example: Example requirements for Order Workflow final ObjectMapper objectMapper = new ObjectMapper(); final Order order = new Order(); order.setId(UUID.randomUUID().toString()); order.setDescription(\"iPhone 12\"); order.setTotal(1001); order.setCountry(\"US\"); given() .header(\"ce-specversion\", \"1.0\") .header(\"ce-id\", order.getId()) .header(\"ce-source\", \"/from/test\") .header(\"ce-type\", \"orderEvent\") .contentType(MediaType.APPLICATION_JSON) .body(objectMapper.writeValueAsString(order)) .post(\"/\") .then() .statusCode(200); After matching the requirements, the test verifies if the sink is receiving the expected events as shown in the following example: Example of a sink verification await() .atMost(60, SECONDS) .with().pollInterval(1, SECONDS) .untilAsserted(() -> { sink.verify(2, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(order.getId()))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"fraudEvaluation\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"domesticShipping\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); }); The await() method in the previous example allows the test to retry the validations until the verifications are declared or until the specified time is expired. In this example, the specified time is 60 seconds. The following example shows how to check if the sink (WireMockServer) receives two events for the same order ID: Example if sink receives the events sink.verify(2, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(order.getId()))); To check the content of the received events, the following verifications can be declared or performed on the types: Example of verifications sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"fraudEvaluation\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); sink.verify(1, postRequestedFor(urlEqualTo(\"/\")).withRequestBody(containing(\"\\\"type\\\":\\\"domesticShipping\\\"\").and(containing(\"\\\"id\\\":\\\"\" + order.getId() + \"\\\"\")))); After declaring the verifications on received events, the test successfully ends and the WireMockServer stops. Creating your first workflow service Testing your workflow application using REST Assured Mocking OpenAPI services using WireMock Testing a Quarkus application Knative Eventing components interaction: Source, Trigger, Broker, and Sink If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Mocking HTTP CloudEvents sink using WireMock","component":"serverlessworkflow","version":"1.43.0.Final","name":"mocking-http-cloudevents-with-wiremock","url":"/serverlessworkflow/latest/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","titles":[{"text":"Overview","hash":"con-sinkbinding-test-overview","id":1},{"text":"Testing a workflow application using SinkBinding","hash":"proc-test-sw-application-sinkbinding","id":2},{"text":"Example of test execution cycle","hash":"ref-example-test-execution-cycle","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"43":{"id":43,"text":"This document describes how to mock OpenAPI services using WireMock. The testing procedure described in this document is based on the serverless-workflow-service-calls-quarkus example application. WireMock is an open source Mocking API for unit, integration, and performance tests. You can use WireMock to isolate your tests from third party APIs and prototype APIs that do not exist. Prerequisites The examples used in this document assumes that you have the following prerequisites: Required tooling is installed. For more information, see Getting familiar with SonataFlow tooling. A workflow project is created and orchestrates OpenAPI services. For more information about orchestrating OpenAPI services, see Orchestrating the OpenAPI services. The procedure in this section describes how you can add WireMock to your workflow application. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Procedure Add the following WireMock dependency to the pom.xml file of your project: Add WireMock dependency to pom.xml com.github.tomakehurst wiremock-jre8 {wiremock.version} test Replace {wiremock.version} variable with the version of WireMock that you want to use. Select one of the following methods to start your WireMock server: You can start the WireMock server as a QuarkusTestResource. If you select this method, then the WireMock server is started once before you run any test, and the server is stopped when the test finishes. This option is suitable for most use cases. You can start the WireMock server independently for each test. This option is useful when you want each test to behave differently. For more information about starting the WireMock server, see Starting WireMock server as a QuarkusTestResource and Starting WireMock server for a specific test. Start the WireMock server as shown in the following example: Example of starting a WireMock server WireMockConfiguration config = WireMockConfiguration.wireMockConfig().dynamicPort(); (1) WireMockServer wireMockServer = new WireMockServer(config); (2) wireMockServer.start(); (3) 1 Creates the configuration for the WireMock server. You can use a dynamic port since it prevents the tests from failing due to port conflicts. When you cannot use a dynamic port, you can use the WireMockConfiguration#port(int) method to use a fixed port number. 2 Creates the WireMock server instance. 3 Starts the WireMock server. Mock the endpoints as shown in the following example: Example of mocking endpoints ObjectMapper objectMapper = new ObjectMapper(); JsonNode greecePayload = objectMapper.readTree(getClass().getResourceAsStream(\"/country_mock.json\")); (1) wireMockServer.stubFor(WireMock.get(WireMock.urlEqualTo(\"/rest/v2/name/Greece\")) (2) .willReturn(WireMock.aResponse() (3) .withStatus(200) (4) .withHeader(\"Content-Type\", \"application/json\") (5) .withJsonBody(greecePayload))); (6) 1 Creates the JSON payload, which the WireMock server returns. Alternatively, you can use the ResponseDefinitionBuilder#withBody method to define a String or a byte[] as the response body. 2 Defines a stub for the /rest/v2/name/Greece endpoint. 3 Defines the response for the stub. 4 Defines the response status. 5 Defines the response headers. 6 Defines the response body. Stop the WireMock server as shown in the following example: Example of stopping a WireMock server wireMockServer.stop(); In the process of adding a mocked OpenAPI service to your tests, you need to start the WireMock server. You can start the WireMock server either as a QuarkusTestResource or you can start the server for each test. The procedure in this section describes how you can start the WireMock server as a QuarkusTestResource. For more information about QuarkusTestResource, see Starting services before the Quarkus application starts document. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. WireMock dependency is added in the pom.xml file. Procedure Create a class that implements the QuarkusTestResource interface as shown in the following example: Example implementation of QuarkusTestResource import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.core.WireMockConfiguration; import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; import java.io.IOException; import java.io.UncheckedIOException; import java.util.Map; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.get; import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; public class RestCountriesMockServer implements QuarkusTestResourceLifecycleManager { private WireMockServer wireMockServer; @Override public Map start() { (1) configureWiremockServer(); return Map.of(\"quarkus.rest-client.restcountries_json.url\", wireMockServer.baseUrl() + \"/rest\"); (2) } private void configureWiremockServer() { wireMockServer = new WireMockServer(WireMockConfiguration.wireMockConfig().dynamicPort()); wireMockServer.start(); ObjectMapper objectMapper = new ObjectMapper(); JsonNode greecePayload; try { greecePayload = objectMapper.readTree(getClass().getResourceAsStream(\"/country_mock.json\")); } catch (IOException e) { throw new UncheckedIOException(e); } wireMockServer.stubFor(get(urlEqualTo(\"/rest/v2/name/Greece\")) .willReturn(aResponse() .withStatus(200) .withHeader(\"Content-Type\", \"application/json\") .withJsonBody(greecePayload))); } @Override public void stop() { (3) if (wireMockServer != null) { wireMockServer.stop(); } } } 1 Starts the test resource. This method is called once before running all the tests. 2 Returns a map of application properties that are set in the test environment. In this case, the quarkus.rest-client.restcountries_json.url property is set as the base URL of the WireMock server. 3 Stops the test resource. This method is called once after running all the tests. Use the QuarkusTestResource implementation in your test class as shown in the following example: Example of a test class using the QuarkusTestResource implementation import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; @QuarkusTest @QuarkusTestResource(RestCountriesMockServer.class) (1) class CountryServiceWorkflowTest { @Test void testFeatureA() { // ... } @Test void testFeatureB() { // ... } } 1 Uses the RestCountriesMockServer class as a test resource. You can also start the WireMock server to be used in a specific test. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. WireMock dependency is added in the pom.xml file. Procedure Wrap the logic of a test between starting and stopping the WireMock server as shown in the following example: Example of a test using a specific WireMock server instance import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.core.WireMockConfiguration; import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; import java.io.IOException; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.get; import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; @QuarkusTest class CountryServiceWorkflowTest { @Test void testFeatureA() throws IOException { WireMockServer wireMockServer = startWiremockServerForFeatureA(); try { // test logic } finally { wireMockServer.stop(); } } @Test void testFeatureB() { WireMockServer wireMockServer = startWiremockServerForFeatureB(); try { // test logic } finally { wireMockServer.stop(); } } private static WireMockServer startWiremockServerForFeatureA() throws IOException { WireMockServer wireMockServer = new WireMockServer(WireMockConfiguration.wireMockConfig().dynamicPort()); wireMockServer.start(); ObjectMapper objectMapper = new ObjectMapper(); JsonNode greecePayload = objectMapper.readTree(CountryServiceWorkflowTest.class.getResourceAsStream(\"/country_mock_feature_a.json\")); wireMockServer.stubFor(get(urlEqualTo(\"/rest/v2/name/Greece\")) .willReturn(aResponse() .withStatus(200) .withHeader(\"Content-Type\", \"application/json\") .withJsonBody(greecePayload))); return wireMockServer; } private static WireMockServer startWiremockServerForFeatureB() { WireMockServer wireMockServer = new WireMockServer(WireMockConfiguration.wireMockConfig().dynamicPort()); wireMockServer.start(); wireMockServer.stubFor(get(urlEqualTo(\"/rest/v2/name/Greece\")) .willReturn(aResponse().withStatus(404))); return wireMockServer; } } You can test your workflow application using the instructions described in Testing your workflow application using REST Assured document. Creating your first workflow service Testing your workflow application using REST Assured If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Mocking OpenAPI services using WireMock","component":"serverlessworkflow","version":"1.43.0.Final","name":"mocking-openapi-services-with-wiremock","url":"/serverlessworkflow/latest/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","titles":[{"text":"Adding a mocked OpenAPI service to your tests","hash":"proc-add-mocked-openapi-service-tests","id":1},{"text":"Starting WireMock server as a QuarkusTestResource","hash":"proc-start-wiremock-server-quarkustestresource","id":2},{"text":"Starting WireMock server for a specific test","hash":"proc-start-wiremock-server-specific-test","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"44":{"id":44,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"tooling","url":"/serverlessworkflow/latest/tooling/tooling.html","titles":[]},"45":{"id":45,"text":"The Saga design pattern manages data consistency across participants that are available in distributed transaction scenarios. For more information about Saga pattern, see the initial publication. In a microservice architecture, you can define a participant as microservice, which is responsible to perform actions related to the business domain. The Saga pattern manages the transactions using a sequence of steps. If a failure occurs while executing a step, then a sequence of compensating actions is executed to undo the changes that are made during the execution. As an alternative, you can leave the system in a known termination state to be consistent. To understand the implementation of Saga pattern in a workflow, you can use the serverless-workflow-saga-quarkus example application in GitHub repository. The serverless-workflow-saga-quarkus example application is based on the order fulfillment process and describes how to define the Saga pattern using SonataFlow. In the order fulfillment example, a user buys an item from an e-commerce application. The user adds the delivery information and payment details, and waits for the item to be delivered. The following figure shows the sequence of steps that are executed to complete an order: Figure 1. Example of order fulfillment process The previous figure contains the following steps: Order checkout: User confirms the order with selected items, payment method, and delivery address. Stock reservation: The selected items in the order are reserved in the stock. Payment processing: Payment is processed based on the selected payment method and user information. For example, in case of processing payment using credit card, then the credit is verified and allocated to the payment. Shipping processing: The shipping processing represents a mechanism, which communicates with a third-party or an internal system who are responsible for logistics and delivery. The following figure describes the Saga pattern using the success and failure workflows in the order fulfillment process: Figure 2. Example of Saga pattern in Order fulfillment process The success workflow in the previous figure consists of the following steps: Reserve item stock Process the payment Schedule the order shipping However, in the failure workflow an error occurred during the shipping process. In this situation, a sequence of compensation actions is executed, including canceling the payment and releasing the stock for the items in the order. In the serverless-workflow-saga-quarkus example application, a workflow is used that implements the Saga pattern, in which all the steps and compensation actions are defined. Also, the workflow plays the role of Saga Executor Coordinator (SEC), which orchestrates the calls to the participants in the Saga pattern. The workflow definition used to define the Saga pattern is available in the order-saga-error-handling.sw.json file. Figure 3. Example of order fulfillment Saga workflow In the previous example figure of workflow, the calls are orchestrated to the participants (for example, order service, payment service), each participant can throw possible errors, and compensations for each step are defined, that are executed once an error appears during the workflow execution. To define the interactions among participants in the Saga pattern using Serverless Workflow specification, you can use workflow states with transitions. In Serverless Workflow specification, each workflow state represents a step to be completed in the Saga pattern. Also, an action associated with the workflow state represents how a participant is invoked to execute a given step. Example of workflow state declaration representing the payment process in Saga { \"name\":\"processPayment\", \"type\":\"operation\", \"actions\":[ { \"name\":\"processPaymentAction\", \"functionRef\":{ \"refName\":\"processPayment\", \"arguments\":{ \"orderId\":\".orderId\", \"failService\":\".failService\" } }, \"actionDataFilter\":{ \"results\":\".\", \"toStateData\":\".paymentResponse\" } } ], \"transition\":\"scheduleShipping\", \"compensatedBy\":\"CancelPayment\", \"onErrors\":[ { \"errorRef\":\"process payment failed\", \"transition\":\"ServiceError\" } ] } In the previous example, the processPayment state contains a processPaymentAction action, which invokes a function to execute the payment processing that Payment Service participant might process. The transition attribute represents the next step to be started, which schedules the order shipping for the Saga pattern. Compensation actions When designing a Saga pattern, compensation actions for each step is considered as a core functionality, which is executed by a participant. In SonataFlow each workflow state must define a compensation action using compensatedBy attribute, indicating another workflow state that performs the compensation action. For example, in serverless-workflow-saga-quarkus, processPayment state defines CancelPayment as a compensation action in the payment process. Example of defining a compensation action \"compensatedBy\": \"CancelPayment\" Errors In SonataFlow errors are identified by a name and can be associated with a workflow state. For example, a process payment failed error is associated with the processPayment state. Following is an example of error declaration in the workflow definition: Example the error declaration for the Saga { \"errors\":[ { \"name\":\"reserve stock failed\", \"code\":\"org.kie.kogito.ServiceException\" }, { \"name\":\"process payment failed\", \"code\":\"org.kie.kogito.ServiceException\" }, { \"name\":\"shipping failed\", \"code\":\"org.kie.kogito.ServiceException\" } ] } Once an error occurs during the workflow execution, the associated compensation action is triggered. An error definition uses the fully qualified class name (FQCN) for Java exceptions that are thrown by functions. In the previous example of error definition, org.kie.kogito.ServiceException is thrown by the service calls that are defined as Java methods in the PaymentService.java file. Example custom function using a Java class and method { \"name\":\"reserveStock\", \"type\":\"custom\", \"operation\":\"service:org.kie.kogito.PaymentService::processPayment\" } The function that are throwing errors can be any type of functions, such as REST, OpenAPI, or gRPC. For information about error handling, see Error handling in SonataFlow. The workflow engine controls the execution of the flow and keeps the track of the steps that need to be compensated. Also, the engine ensures that compensated states are executed in reverse order of each completed step. The engine is a stateful, allowing Saga to contain wait states, such as callbacks. After each wait state, the workflow is persisted and can continue once it receives a request or event. The serverless-workflow-saga-quarkus example application shows a Saga workflow that is executed as request-response. This is called a straight through process, in which an entire workflow is executed in a single request. You can use the following examples as a reference to run and test the Saga pattern in a workflow: Create new success order You can use the following example to send a request for creating an order: Example request to create an order curl -L -X POST \"http://localhost:8080/order_saga_error_workflow\" -H 'Content-Type: application/json' --data-raw '{ \"orderId\": \"03e6cf79-3301-434b-b5e1-d6899b5639aa\" }' Example response { \"id\":\"b5c0bf16-1e37-4d7a-82cd-610809090d9c\", \"workflowdata\":{ \"orderId\":\"03e6cf79-3301-434b-b5e1-d6899b5639aa\", \"stockResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"dc32abe6-9706-4061-8e96-910d8e06728d\" }, \"paymentResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"505259d9-1c12-40ea-af5d-679e2cd89394\" }, \"shippingResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"d6e2d538-0229-4b8e-a363-17ebabdb3585\" }, \"orderResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"03e6cf79-3301-434b-b5e1-d6899b5639aa\" } } } The response contains the workflow data with nested attributes, which represent the responses from the execution of each step including success or failure. In the previous example, the orderResponse attribute indicates if the order can be confirmed by the client by initiating the Saga workflow. Therefore, if the value of the orderResponse attribute is success, then the order can be confirmed, otherwise the order can be canceled. When executing the application, you can also verify the log with information related to the executed steps as shown in the following example: Example console output 2022-06-24 13:44:36,666 INFO [org.kie.kog.StockService] (executor-thread-0) Reserve Stock for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:44:36,669 INFO [org.kie.kog.PaymentService] (executor-thread-0) Process Payment for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:44:36,673 INFO [org.kie.kog.ShippingService] (executor-thread-0) Schedule Shipping for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:44:36,676 INFO [org.kie.kog.OrderService] (executor-thread-0) Order Success 03e6cf79-3301-434b-b5e1-d6899b5639aa Activate compensation actions To test the workflow, an optional failService attribute is introduced, indicating which participant must respond with an error. In the following example, the ShippingService state throws an error, which breaks the workflow execution and triggers the compensation actions: Example compensation request curl -L -X POST 'http://localhost:8080/order_saga_error_workflow' -H 'Content-Type: application/json' --data-raw '{ \"orderId\": \"03e6cf79-3301-434b-b5e1-d6899b5639aa\", \"failService\": \"ShippingService\" }' Example response { \"id\":\"217050a3-6676-4c0e-8555-2fcda936e00e\", \"workflowdata\":{ \"orderId\":\"03e6cf79-3301-434b-b5e1-d6899b5639aa\", \"failService\":\"ShippingService\", \"stockResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"6ab362c6-a6c4-4517-b232-3349741271d5\" }, \"paymentResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"2114cc5b-1912-4b34-b869-734907f0fef2\" }, \"cancelPaymentResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"2114cc5b-1912-4b34-b869-734907f0fef2\" }, \"cancelStockResponse\":{ \"type\":\"SUCCESS\", \"resourceId\":\"6ab362c6-a6c4-4517-b232-3349741271d5\" }, \"orderResponse\":{ \"type\":\"ERROR\", \"resourceId\":\"03e6cf79-3301-434b-b5e1-d6899b5639aa\" } } } When executing the application, you can also verify the log with information related to the executed steps as shown in the following example: Example console output 2022-06-24 13:43:45,077 INFO [org.kie.kog.StockService] (executor-thread-0) Reserve Stock for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:43:45,215 INFO [org.kie.kog.PaymentService] (executor-thread-0) Process Payment for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:43:45,219 INFO [org.kie.kog.ShippingService] (executor-thread-0) Schedule Shipping for order 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:43:45,219 ERROR [org.kie.kog.MockService] (executor-thread-0) Error in ShippingService for 03e6cf79-3301-434b-b5e1-d6899b5639aa 2022-06-24 13:43:45,230 INFO [org.kie.kog.PaymentService] (executor-thread-0) Cancel Payment 4b94408d-8cad-432d-85bb-63dd79c4071e 2022-06-24 13:43:45,239 INFO [org.kie.kog.StockService] (executor-thread-0) Cancel Stock 9d543764-8a8b-4d94-aaee-e6ccbe9c94c3 2022-06-24 13:43:45,244 INFO [org.kie.kog.OrderService] (executor-thread-0) Order Failed 03e6cf79-3301-434b-b5e1-d6899b5639aa Error handling in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Saga orchestration example in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"orchestration-based-saga-pattern","url":"/serverlessworkflow/latest/use-cases/orchestration-based-saga-pattern.html","titles":[{"text":"Overview of Saga pattern","hash":"con-saga-overview","id":1},{"text":"Example of Saga pattern a workflow","hash":"ref-sw-example-saga-pattern","id":2},{"text":"Examples of running and testing the Saga pattern in a workflow","hash":"ref-sw-run-test-saga-example","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"46":{"id":46,"text":"The timeouts showcase is designed to show how to configure and execute workflows that use timeouts, according to different deployment scenarios. While all the scenarios contain the same set of workflows, they are provided as independent example projects, to facilitate the execution and understanding of each case. The following workflows are provided: callback_state_timeouts switch_state_timeouts event_state_timeouts It is a simple workflow that, when the execution reaches the state CallbackState, an action is executed, and it waits for the event callbackEvent to arrive in order to continue the execution. However, a timeout is configured to set the maximum waiting time for that event. Figure 1. callback_state_timeouts workflow Callback event definition { \"name\": \"callbackEvent\", \"source\": \"\", \"type\": \"callback_event_type\" } CallbackState definition { \"name\": \"CallbackState\", \"type\": \"callback\", \"action\": { \"name\": \"callbackAction\", \"functionRef\": { \"refName\": \"callbackFunction\", \"arguments\": { \"input\": \"${\\\"callback-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" has executed the callbackFunction.\\\"}\" } } }, \"eventRef\": \"callbackEvent\", \"transition\": \"CheckEventArrival\", \"onErrors\": [ { \"errorRef\": \"callbackError\", \"transition\": \"FinalizeWithError\" } ], \"timeouts\": { \"eventTimeout\": \"PT30S\" } } The timeout is configured with a duration of 30 seconds, and if no event arrives during this time, the flow execution moves to the next state, and the workflow’s data remains unchanged. On the other hand, if the event arrive, the event payload is merged into the workflow’s data, and thus, the eventData property of the workflow’s data, will contain the information carried by the event payload. Using this simple configuration strategy, the workflow can collect the event information, and use it for example to determine the path to go in the next state. See the callback state definition for more information. For more information about how the incoming event information can be merged into the workflow’s data you can see Event data filters. This workflow is similar to the callback_state_timeouts, but when the execution reaches the state ChooseOneEvent, it waits for one of the two configured events, visaDeniedEvent or visaApprovedEvent to arrive. If any of the configured events arrives before the timeout is overdue, the workflow execution moves to the next state defined in the corresponding transition. If none of the events arrives before the timeout is overdue, the workflow execution moves to the state defined in the defaultCondition transition. See the switch state definition for more information. Figure 2. switch_state_timeouts workflow ChooseOneEvent definition { \"name\": \"ChooseOnEvent\", \"type\": \"switch\", \"eventConditions\": [ { \"eventRef\": \"visaApprovedEvent\", \"transition\": \"ApprovedVisa\" }, { \"eventRef\": \"visaDeniedEvent\", \"transition\": \"DeniedVisa\" } ], \"defaultCondition\": { \"transition\": \"HandleNoVisaDecision\" }, \"timeouts\": { \"eventTimeout\": \"PT30S\" } } This workflow is similar to the switch_state_timeouts, but when the execution reaches the state WaitForEvent, it waits for one of the configured events, event1 or event2, to arrive. Each event has a number of configured actions to execute, but unlike the switch state, only one possible transition exists. If none of the configured events arrives before the timeout is overdue, the workflow execution moves to the next state defined in the transition property, skipping the events that were not received in time together with actions configured for them. If one of the events arrives before the timeout is overdue, the workflow executes the corresponding actions, and finally moves to the state defined in transition. The semantic of this state might vary depending on the exclusive flag, in the example the default value of true will be applied, and thus, the workflow will transition as soon as the first event arrives. See the event state definition for more information. Figure 3. event_state_timeouts workflow WaitForEvent definition { \"name\": \"WaitForEvent\", \"type\": \"event\", \"onEvents\": [ { \"eventRefs\": [ \"event1\" ], \"eventDataFilter\": { \"data\": \"${ \\\"The event1 was received.\\\" }\", \"toStateData\": \"${ .exitMessage }\" }, \"actions\": [ { \"name\": \"printAfterEvent1\", \"functionRef\": { \"refName\": \"systemOut\", \"arguments\": { \"message\": \"${\\\"event-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" executing actions for event1.\\\"}\" } } } ] }, { \"eventRefs\": [ \"event2\" ], \"eventDataFilter\": { \"data\": \"${ \\\"The event2 was received.\\\" }\", \"toStateData\": \"${ .exitMessage }\" }, \"actions\": [ { \"name\": \"printAfterEvent2\", \"functionRef\": { \"refName\": \"systemOut\", \"arguments\": { \"message\": \"${\\\"event-state-timeouts: \\\" + $WORKFLOW.instanceId + \\\" executing actions for event2.\\\"}\" } } } ] } ], \"timeouts\": { \"eventTimeout\": \"PT30S\" }, \"transition\": \"PrintExitMessage\" } To execute the workflows you can use any of the available deployment scenarios: SonataFlow Operator Dev Profile Quarkus Workflow Project with embedded services Quarkus Workflow Project with standalone services When you work with the SonataFlow Operator Dev Profile, the operator will automatically provision an execution environment that contains an embedded job service instance, as well as an instance of the data index service. And thus, there is no need for additional configurations when you use timeouts. To execute the workflows you must: In a command terminal, clone the kogito-examples repository, navigate to the cloned directory, and follow these steps: git clone https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-timeouts-showcase-operator-devprofile Similar to the SonataFlow Operator Dev Profile, this scenario shows how to configure the embedded job service and data index service, when you work with a Quarkus Workflow Project. And is also intended for development purposes. In a command terminal, clone the kogito-examples repository, navigate to the cloned directory, and follow these steps: git clone https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-timeouts-showcase-embedded This is the most complex and close to a production scenario. In this case, the workflows, the job service, the data index service, and the database, are deployed as standalone services in the kubernetes/knative cluster. Additionally, the communications from the workflows to the job service, and from the jobs service to the data index service, are resolved via the knative eventing system. By using the knative eventing system the underlying low level communication system is transparent to the integration. The following diagram shows the architecture for this use case: Every time a workflow needs to program a timer for a given timeout, a cloud event is sent to the job service for that purpose. When a timer is overdue, a rest call is executed to notify the workflow, which then must execute accordingly to the given state semantic. Workflow and job status changes are propagated to the Data Index Service via cloud events. Figure 4. Knative Workflow with Job Service architecture timeouts-showcase-extended: Is the Quarkus Workflow Project that contains the workflows, that must be maven build, and deployed into the kubernetes cluster. jobs-service-postresql: Is the job service that will be deployed into the kubernetes cluster. data-index-service-postgresql: Is the data index service that will be deployed into the kubernetes cluster. timeouts-showcase-database: Is the PostgreSQL instance that will be deployed into the kubernetes cluster. For simplification purposes, a single database instance is used for both services to store the information about the workflow instances, and the timers. However, in a production environment is recommended to have independent database instances. To execute the workflows you must: In a command terminal, clone the kogito-examples repository, navigate to the cloned directory, and follow these steps: git clone https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-timeouts-showcase-extended Timeouts support in SonataFlow If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Timeouts Showcase in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"timeout-showcase-example","url":"/serverlessworkflow/latest/use-cases/timeout-showcase-example.html","titles":[{"text":"callback_state_timeouts workflow","hash":"callback_state_timeouts_workflow","id":1},{"text":"switch_state_timeouts workflow","hash":"switch_state_timeouts_workflow","id":2},{"text":"event_state_timeouts workflow","hash":"event_state_timeouts_workflow","id":3},{"text":"Executing the workflows","hash":"_executing_the_workflows","id":4},{"text":"SonataFlow Operator Dev Profile","hash":"execute-operator-dev-profile","id":5},{"text":"Quarkus Workflow Project with embedded services","hash":"execute-quarkus-project-embedded-services","id":6},{"text":"Quarkus Workflow Project with standalone services","hash":"execute-quarkus-project-standalone-services","id":7},{"text":"Architecture","hash":"_architecture","id":8},{"text":"Running the example","hash":"_running_the_example","id":9},{"text":"Additional resources","hash":"_additional_resources","id":10},{"text":"Found an issue?","hash":"_found_an_issue","id":11}]},"47":{"id":47,"text":"This document describes how to build and deploy your workflow on a cluster using the SonataFlow Operator only by having a SonataFlow custom resource. Every time you need to change the workflow definition the system will (re)build a new immutable version of the workflow. If you’re still in development phase, please see the Developing Workflow with the Operator guide. Follow the Kubernetes or OpenShift sections of this document based on the cluster you wish to build your workflows on. SonataFlow Operator is under active development with features yet to be implemented. Please see SonataFlow Operator Known Issues, Limitations and Roadmap. Prerequisites A Workflow definition. The SonataFlow Operator installed. See Install the SonataFlow Operator guide The operator can build workflows on Kubernetes or OpenShift. On Kubernetes, it uses Kaniko and on OpenShift a standard BuildConfig. The operator build system is not tailored for advanced use cases and you can do only a few customizations. If your scenario has strict policies for image usage, such as security or hardening constraints, you can replace the default image used by the operator to build the final workflow container image. Alternatively, you might want to test a nightly build with a bug fix or a custom image containing your customizations. By default, the operator will use the image distributed upstream to run the workflows in the development profile. You can change this image by editing the SonataFlowPlatform custom resource in the namespace where you deployed your workflows: Patching the current SonataFlowPlatform with the new builder image # use `kubectl get sonataflowplatform` to get the SonataFlowPlatform name kubectl patch sonataflowplatform --patch 'spec:\\n build:\\n config:\\n baseImage: ' -n The operator uses the sonataflow-operator-builder-config ConfigMap in the operator’s installation namespace (sonataflow-operator-system) to configure and run the workflow build process. You can change the Dockerfile entry in this ConfigMap to tailor the Dockerfile to your needs. Just be aware that this can break the build process. Example of the sonataflow-operator-builder-config ConfigMap apiVersion: v1 data: DEFAULT_BUILDER_RESOURCE_NAME: Dockerfile DEFAULT_WORKFLOW_EXTENSION: .sw.json Dockerfile: \"FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest AS builder\\n \\ \\n # Copy from build context to skeleton resources project\\nCOPY * ./resources/\\n\\nRUN /home/kogito/launch/build-app.sh ./resources\\n \\n #=============================\\n \\ # Runtime Run\\n #=============================\\nFROM registry.access.redhat.com/ubi8/openjdk-11:latest\\n\\nENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'\\n \\n # We make four distinct layers so if there are application changes the library layers can be re-used\\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/lib/ /deployments/lib/\\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/*.jar /deployments/\\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/app/ /deployments/app/\\nCOPY --from=builder --chown=185 /home/kogito/serverless-workflow-project/target/quarkus-app/quarkus/ /deployments/quarkus/\\n\\nEXPOSE 8080\\nUSER 185\\nENV AB_JOLOKIA_OFF=\\\"\\\"\\nENV JAVA_OPTS=\\\"-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager\\\"\\nENV JAVA_APP_JAR=\\\"/deployments/quarkus-run.jar\\\"\\n\" kind: ConfigMap metadata: name: sonataflow-operator-builder-config The excerpt above is just an example. The current version might have a slightly different version. Don’t use this example in your installation. You can create or edit a SonataFlowPlatform in the workflow namespace specifying the resources requirements for the internal builder pods: Example of SonataFlowPlatform apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: template: resources: requests: memory: \"64Mi\" cpu: \"250m\" limits: memory: \"128Mi\" cpu: \"500m\" Every build process will reuse this configuration and start new instances based on it from now on. Only one SonataFlowPlatform is allowed per namespace. Try fetching the one the operator created for you and edit it instead of trying to create another one. You can fine tune the resources requirements for a particular workflow. Every workflow instance will have a SonataFlowBuild instance created with the same name as the workflow. You can edit the SonataFlowBuild custom resource and specify the same parameters. For example: Example of SonataFlowBuild apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowBuild metadata: name: my-workflow spec: resources: requests: memory: \"64Mi\" cpu: \"250m\" limits: memory: \"128Mi\" cpu: \"500m\" This parameters will only apply to new build instances. You can skip this section if you’re running on OpenShift. Follow these steps to configure your Kubernetes namespace to build workflow images with the operator. Create a new namespace that will hold all the resources that the operator will create (Pods, Deployments, Services, Secrets, ConfigMap, and Custom Resources) in this guide. Create a Namespace for the workflow to build and run in kubectl create namespace workflows # set the workflows namespace to your context kubectl config set-context --current --namespace=workflows You can follow these steps to publish on external registry that requires authentication. If you’re running on Minikube, just enable the internal registry. You can skip this whole section since the internal Minikube registry doesn’t require authentication. Create a secret for the container registry authentication kubectl create secret docker-registry regcred --docker-server= --docker-username= --docker-password= --docker-email= -n workflows or you can directly import your local Docker config into your Kubernetes cluster: Create a Secret for the container registry authentication based on local Docker config kubectl create secret generic regcred --from-file=.dockerconfigjson=${HOME}/.docker/config.json --type=kubernetes.io/dockerconfigjson -n workflows Double-check your ${HOME}/.docker/config.json. If you’re using local desktop authentication, this configuration won’t work in the cluster. You can initialize this by logging in to the target registry, e.g. docker login. The SonataFlowPlatform is the Custom Resource used to control the behavior of the SonataFlow Operator. It defines the behavior of the operator when handling all SonataFlow Custom Resources (Workflow and Build) in the given namespace. Since the operator is installed in global mode, you will need to specify a SonataFlowPlatform in each Namespace where you want to deploy Workflows. If you have deployed a workflow for development you already have a SonataFlowPlatform custom resource since the operator created one for you. Just edit the one you have. Following is a very basic SonataFlowPlatform Custom Resource example to work on Kubernetes: Example of a basic SonataFlowPlatform on Kubernetes apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: config: strategyOptions: KanikoBuildCacheEnabled: \"true\" registry: address: quay.io/kiegroup (1) secret: regcred (2) 1 Your registry address 2 The secret name created in the steps above On Minikube, you can remove the registry information entirely since you don’t need credentials for pushing to the internal registry: Example of a basic SonataFlowPlatform on Minikube apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: config: strategyOptions: KanikoBuildCacheEnabled: \"true\" The spec.build.config.strategyOptions.KanikoBuildCacheEnabled enables the internal Kaniko process to cache builder images to try to speed up the building execution. You can save this file locally and run the following command: Create a SonataFlowPlatform kubectl apply -f my-sonataflowplatform.yaml -n workflows You can also update \"on-the-fly\" the SonataFlowPlatform registry field with this command (change ) Create a SonataFlowPlatform with a specific registry cat my-sonataflowplatform.yaml | sed \"s|address: .*|address: \" | kubectl apply -f - You don’t need to do anything to build on OpenShift since the operator will configure everything for you. There are a few customizations you can do described in the Configuring the build system section. In general, the operator will create a BuildConfig to build the workflow using the mapped resource files and your workflow definition. After the build is finished, the image will be pushed to the internal OpenShift registry backed by an ImageStream object. If you are running on OpenShift, you have access to the Red Hat’s supported registry. You can change the default builder image by editing the sonataflow-operator-builder-config ConfigMap. oc edit cm/sonataflow-operator-builder-config -n sonataflow-operator-system In your editor, change the first line in the Dockerfile entry where it reads FROM quay.io/kiegroup/kogito-swf-builder-nightly:latest to the desired image. This image must be compatible with your operator’s installation. You can now send your workflow definition (SonataFlow) to the operator. You can find a basic SonataFlow bellow: Example of the greetings workflow example apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: greeting annotations: sonataflow.org/description: Greeting example on k8s! sonataflow.org/version: 0.0.1 spec: flow: start: ChooseOnLanguage functions: - name: greetFunction type: custom operation: sysout states: - name: ChooseOnLanguage type: switch dataConditions: - condition: \"${ .language == \\\"English\\\" }\" transition: GreetInEnglish - condition: \"${ .language == \\\"Spanish\\\" }\" transition: GreetInSpanish defaultCondition: GreetInEnglish - name: GreetInEnglish type: inject data: greeting: \"Hello from JSON Workflow, \" transition: GreetPerson - name: GreetInSpanish type: inject data: greeting: \"Saludos desde JSON Workflow, \" transition: GreetPerson - name: GreetPerson type: operation actions: - name: greetAction functionRef: refName: greetFunction arguments: message: \".greeting+.name\" end: true Save a file in your local file system with this contents named greetings-workflow.yaml then run: kubectl apply -f greetings-workflow.yaml -n workflows You can check the logs of the build of your Workflow via: Get the Workflow pod logs # on Kubernetes kubectl logs kogito-greeting-builder -n workflows # on OpenShift oc logs buildconfig/greeting -n workflows The final pushed image must be printed into the logs at the end of the build. In order to check that the SonataFlow Greeting is up and running, you can try to perform a test HTTP call, from the greeting Pod. Procedure Expose the workflow so you can access it: Exposing the greeting workflow on Minikube # On Minikube you can use Nodeport kubectl patch svc greeting -n workflows -p '{\"spec\": {\"type\": \"NodePort\"}}' GREETING_SVC=$(minikube service greeting -n workflows --url) Exposing the greeting workflow on OpenShift # On OpenShift you can expose a route: https://docs.openshift.com/container-platform/4.13/networking/routes/route-configuration.html#nw-creating-a-route_route-configuration oc expose svc greeting -n workflows # get the public URL GREETING_SVC=$(oc get route/greeting --template='{{.spec.host}}') Make the HTTP call using curl: Check if the greeting workflow is running curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' $GREETING_SVC/greeting If everything is working, you should receive a response like this: Response from the greeting workflow {\"id\":\"b5fbfaa3-b125-4e6c-9311-fe5a3577efdd\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Building and Deploying Workflows with the Operator","component":"serverlessworkflow","version":"1.43.0.Final","name":"build-and-deploy-workflows","url":"/serverlessworkflow/latest/cloud/operator/build-and-deploy-workflows.html","titles":[{"text":"Configuring the build system","hash":"configure-build-system","id":1},{"text":"Using another Workflow base builder image","hash":"_using_another_workflow_base_builder_image","id":2},{"text":"Customize the base build Dockerfile","hash":"_customize_the_base_build_dockerfile","id":3},{"text":"Changing resources requirements","hash":"_changing_resources_requirements","id":4},{"text":"Building on Kubernetes","hash":"building-kubernetes","id":5},{"text":"Create a Namespace for the building phase","hash":"_create_a_namespace_for_the_building_phase","id":6},{"text":"Create a Secret for the container registry authentication","hash":"_create_a_secret_for_the_container_registry_authentication","id":7},{"text":"Configure the SonataFlow Operator (i.e. registry address, secret) for building your Workflows","hash":"_configure_the_sonataflow_operator_i_e_registry_address_secret_for_building_your_workflows","id":8},{"text":"Building on OpenShift","hash":"building-openshift","id":9},{"text":"Changing the base builder image","hash":"_changing_the_base_builder_image","id":10},{"text":"Build and deploy your workflow","hash":"build-deploy-workflow","id":11},{"text":"Check if the Workflow is running","hash":"_check_if_the_workflow_is_running","id":12},{"text":"Additional resources","hash":"_additional_resources","id":13},{"text":"Found an issue?","hash":"_found_an_issue","id":14}]},"48":{"id":48,"text":"This document describes how to configure a Workflow service with the SonataFlow Operator. When the operator deploys the Workflow service, it also creates a ConfigMap named after the SonataFlow object with the suffix -props. For example, if your Workflow name is greeting, then the ConfigMap name is greeting-props. You can use the Kubernetes object editor of your preference to add or edit the properties in the Workflow configuration. Using kubectl you can do: Editing the Workflow Properties kubectl edit cm -props Note that it’s important to respect the properties format, otherwise the operator will replace your configuration with the default one. Here’s an example of a Workflow properties stored within a ConfigMap: Example of a Workflow ConfigMap Properties apiVersion: v1 kind: ConfigMap metadata: labels: app: greeting name: greeting-props namespace: default data: application.properties: | my.properties.key = any-value The underlying runtime engine that executes the Workflow service is based on Quarkus. The application.properties key in the ConfigMap means that you can configure the Workflow as you would any Quarkus application. Any SonataFlow configuration that the documentation describes or general Quarkus application property can be configured using this method. A few properties cannot be changed in this configuration. Usually, they are already defined in the properties file. The table below lists them. Table 1. List of immutable properties Property Key Immutable Value Profile quarkus.http.port 8080 all quarkus.http.host 0.0.0.0 all org.kie.kogito.addons.knative.eventing.health-enabled false dev If you try to change any of them, the operator will override them with the default, but preserving your changes in other property keys. Configuration properties in SonataFlow SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator Building and Deploying Workflows with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Configuring Workflow Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"configuring-workflows","url":"/serverlessworkflow/latest/cloud/operator/configuring-workflows.html","titles":[{"text":"Editing the Workflow Configuration","hash":"_editing_the_workflow_configuration","id":1},{"text":"Immutable properties","hash":"_immutable_properties","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"49":{"id":49,"text":"This document describes how you can develop your Workflows directly on Kubernetes with the SonataFlow Operator. Workflows in the development profile are not tailored for production environments. To build and deploy an immutable Workflow with the operator, see Building and Deploying Workflows with the Operator. SonataFlow Operator is under active development with features yet to be implemented. Please see SonataFlow Operator Known Issues, Limitations and Roadmap. The development profile is the easiest way to start playing around with Workflows and the operator. To get started, you can use an editor of your choice to create a new SonataFlow Custom Resource YAML definition. For example: Example of a Kubernetes SonataFlow YAML definition apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: greeting annotations: sonataflow.org/description: Greeting example on k8s! sonataflow.org/version: 0.0.1 sonataflow.org/profile: dev (1) spec: flow: (2) start: ChooseOnLanguage functions: - name: greetFunction type: custom operation: sysout states: - name: ChooseOnLanguage type: switch dataConditions: - condition: \"${ .language == \\\"English\\\" }\" transition: GreetInEnglish - condition: \"${ .language == \\\"Spanish\\\" }\" transition: GreetInSpanish defaultCondition: GreetInEnglish - name: GreetInEnglish type: inject data: greeting: \"Hello from JSON Workflow, \" transition: GreetPerson - name: GreetInSpanish type: inject data: greeting: \"Saludos desde JSON Workflow, \" transition: GreetPerson - name: GreetPerson type: operation actions: - name: greetAction functionRef: refName: greetFunction arguments: message: \".greeting+.name\" end: true 1 The annotation sonataflow.org/profile: dev tells the operator to deploy the Workflow using the development profile. This means that the operator will build a running instance of the Workflow ready to receive changes during your development cycle. 2 In the flow attribute goes the Workflow definition as described by the CNCF Serverless Workflow specification. So if you already have a workflow definition, you can use it there. Alternatively, you can use the editors to create your workflow definition. Prerequisites You have installed the SonataFlow Operator You have created a new SonataFlow Kubernetes YAML file Having a new Kubernetes Workflow definition in a YAML file (you can use the above example), you can deploy it in your cluster with the following command: Deploying a new SonataFlow Custom Resource in Kubernetes kubectl apply -f -n Alternatively, you can try one of the examples available in the operator repository: Deploying the greeting Workflow example kubectl apply -f https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/v1.43.0/test/testdata/sw.kogito_v1alpha08_sonataflow_devmode.yaml -n Replace with the Namespace you’re using to deploy your workflows You can follow the Workflow status to check if everything is fine with: Checking the Workflow status kubectl get workflow -n -w You should see the Workflow conditions evolving to READY in a few seconds: Example workflow deployment status NAME PROFILE VERSION ADDRESS READY REASON greeting dev 0.0.1 False WaitingForDeployment greeting dev 0.0.1 True The REASON field gives you a cue about the current Workflow status. You can make changes to the Workflow YAML using any Kubernetes editor. For example, you can use kubectl and the following command: kubectl edit workflow/greeting -n and changing the Workflow definition inside the Custom Resource Spec section. Alternatively, you can save the Custom Resource definition file and edit it with your desired editor and re-apply it. For example using VSCode, there are the commands needed: curl -S https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/v1.43.0/config/samples/sw.kogito_v1alpha08_sonataflow_devmode.yaml > workflow_devmode.yaml code workflow_devmode.yaml kubectl apply -f workflow_devmode.yaml -n The operator ensures that the latest Workflow definition is running and ready. This way, you can include the Workflow in your development scenario and start making requests to it. In order to check that the SonataFlow Greeting workflow is up and running, you can try to perform a test HTTP call. First, you must get the service URL: Exposing the Workflow minikube service greeting -n --url http://127.0.0.1:57053 # use the above output to get the current Workflow URL in your environment When running on Minikube, the service is already exposed for you via NodePort. On OpenShift, a Route is automatically created in devmode. If you’re running on Kubernetes you can expose your service using an Ingress. You can now point your browser to the Swagger UI and start making requests with the REST interface. For example, using the above command execution you can access the Swagger UI via http://127.0.0.1:57053/q/swagger-ui/. At the Swagger UI, click on \"POST /greeting\", then on \"Try it out!\". Copy the following JSON message and hit execute: Operation Greeting result { \"name\": \"Jane Doe\" } Figure 1. The Swagger UI executing the POST /greeting operation You should see a result similar to this: Operation Greeting result { \"id\": \"984b5c6c-36ef-48ba-aa11-89fa54d25e98\", \"workflowdata\": { \"name\": \"Jane Doe\", \"greeting\": \"Hello from JSON Workflow, \" } } You can even make changes to your SonataFlow YAML file and see the results using the Swagger UI. In order to remove the SonataFlow Greeting, you can execute the following command: Removing the Workflow kubectl delete -f -n See the Referencing Additional Files in the Workflow guide for more complex scenarios where you may need to reference other resources in the workflow definition. If your scenario has strict policies for image usage, such as security or hardening constraints, you can replace the default image used by the operator. Alternatively, you might want to test a nightly build with a bug fix or a custom image containing your customizations. By default, the operator will use the image distributed upstream to run the workflows in the development profile. You can change this image by editing the SonataFlowPlatform custom resource in the namespace where you deployed your workflows: Patching the current SonataFlowPlatform with the new image # use `kubectl get sonataflowplatform` to get the SonataFlowPlatform name kubectl patch sonataflowplatform --patch 'spec:\\n devMode:\\n baseImage: ' -n From now on, every deployment in the development profile will use this image to run the workflow. The default image was created to run a Quarkus Java application in dev mode. You can replace this image with another one as long as it has the same concept. One way of doing this is using the default as the base image. As you make changes to your workflow during development, it’s likely that you will need to troubleshoot it when something goes wrong. To ensure the Workflow is running in a healthy state, the operator deploys its Pod with health check probes. If the changes you make to your Workflow cause the health checks to fail, the Pod executing the Workflow will stop responding. The following will help you discover the reason for any failure during development. Analyze the Workflow status with: Get the Workflow status conditions kubectl get workflow -o jsonpath={.status.conditions} | jq . It can give you a clue about what might be happening. See Understanding Workflow Services Status Conditions for more information. Fetch the logs and look for ERROR messages: Watch the workflow logs kubectl logs deployment/ -f If you decide to open an issue or ask for help in SonataFlow communication channels, this logging information is always useful for the person who will try to help you. The SonataFlow Operator is under active development. Sometimes a feature might not be available yet. Please see SonataFlow Operator Known Issues, Limitations and Roadmap for a comprehensive list of available features. If you identify that you are attempting to use a feature that is not available yet, you can file a new issue, so we can prioritize it. Alternatively, you can ask in SonataFlow communication channels. A wrong configuration (or lack of one) might prevent your Workflow from running correctly. The operator deploys a ConfigMap that holds the workflow properties for the Workflow. Get the properties ConfigMap kubectl get cm -props The ConfigMap name pattern is the Workflow name followed by -props. Make sure that the configuration is correct and you’re not missing any required properties for a given feature to work. You can make any changes to the configuration by simply editing the content of the ConfigMap. Once you have updated the configuration in the ConfigMap, the operator ensures that these properties are applied to the workflow. See Configuring Workflow Services for more information. The SonataFlow Operator validates the Workflow definition at the moment you create or edit the YAML file, preventing you from creating an invalid workflow. As the operator is under active development, errors during the validation might occur. In the case where validation has not prevented your error, you might have to make a few modifications to the Workflow definition to fix any problems. You can identify such problems by looking at the deployed Workflow logs as explained here. If you find an issue with a cause is not listed in this section, please let us know. Referencing Additional Files in the Workflow Building and Deploying Workflows with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Developing Workflow with the Operator","component":"serverlessworkflow","version":"1.43.0.Final","name":"developing-workflows","url":"/serverlessworkflow/latest/cloud/operator/developing-workflows.html","titles":[{"text":"Introduction to the Development Profile","hash":"_introduction_to_the_development_profile","id":1},{"text":"Deploying a New Workflow","hash":"_deploying_a_new_workflow","id":2},{"text":"Check if the Workflow is running","hash":"_check_if_the_workflow_is_running","id":3},{"text":"Remove the Workflow","hash":"_remove_the_workflow","id":4},{"text":"Referencing resources in the Workflow","hash":"_referencing_resources_in_the_workflow","id":5},{"text":"Using another Workflow base image","hash":"_using_another_workflow_base_image","id":6},{"text":"Troubleshooting the Workflow","hash":"troubleshooting","id":7},{"text":"Basic Troubleshooting","hash":"basic-troubleshooting","id":8},{"text":"Possible Failure Scenarios","hash":"_possible_failure_scenarios","id":9},{"text":"Feature Not Yet Supported","hash":"_feature_not_yet_supported","id":10},{"text":"Wrong Workflow Configuration","hash":"_wrong_workflow_configuration","id":11},{"text":"Wrong Workflow Definition","hash":"_wrong_workflow_definition","id":12},{"text":"Additional resources","hash":"_additional_resources","id":13},{"text":"Found an issue?","hash":"_found_an_issue","id":14}]},"50":{"id":50,"text":"This guide describes how to install the SonataFlow Operator in a Kubernetes or OpenShift cluster. The operator is in an early development stage (community only) and has been tested on OpenShift 4.11+, Kubernetes 1.22+, and Minikube. Prerequisites A Kubernetes or OpenShift cluster with admin privileges. Alternatively, you can use Minikube or KIND. kubectl command-line tool is installed. Otherwise, Minikube provides it. To install the operator on OpenShift refer to the \"Adding Operators to a cluster\" from the OpenShift’s documentation. When searching for the operator in the Filter by keyword field, use the word sonataflow. If you’re installing from the CLI, the operator’s catalog name is sonataflow-operator. To remove the operator on OpenShift refer to the \"Deleting Operators from a cluster\" from the OpenShift’s documentation. To install the operator on Kubernetes refer to the \"How to install an Operator from OperatorHub.io\" from the OperatorHub’s documentation. When searching for the operator in the Search OperatorHub field, use the word sonataflow. To remove the operator on Kubernetes follow the document \"Uninstall your operator\" from the OLM’s documentation. When searching for the subscription to remove, use the word my-sonataflow-operator. If you’re running on Kubernetes or OpenShift, it is highly recommended to install the operator from the OperatorHub or OpenShift Console instead since the installation is managed by OLM. Use this method only if you need a snapshot version or you’re running locally on Minikube or KIND. You can safely skip this section if you’re not using Minikube. Prerequisites A machine with at least 8GB memory and a CPU with 8 cores Docker or Podman installed Run the following command to create a new instance capable of installing the operator and deploy workflows: minikube start --cpus 4 --memory 4096 --addons registry --addons metrics-server --insecure-registry \"10.0.0.0/24\" --insecure-registry \"localhost:5000\" To speed up the build time, you can increase the CPUs and memory options so that your Minikube instance will have more resources. For example, use --cpus 12 --memory 16384. If you have already created your Minikube instance, you will need to recreate it for these changes to apply. If Minikube does not work with the default driver, also known as docker, you can try to start with the podman driver as follows: Start Minikube with the Podman driver minikube start [...] --driver podman To install the SonataFlow Operator, you can use the following command: Install SonataFlow Operator on Kubernetes kubectl create -f https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/v1.43.0/operator.yaml You can follow the deployment of the SonataFlow Operator: Watch the SonataFlow Operator pod kubectl get pod -n sonataflow-operator-system --watch A successful installation should have an output like this: Successful Installation Output NAME READY STATUS RESTARTS AGE sonataflow-operator-controller-manager-948547ffd-sr2j2 0/2 ContainerCreating 0 6s sonataflow-operator-controller-manager-948547ffd-sr2j2 1/2 Running 0 7s sonataflow-operator-controller-manager-948547ffd-sr2j2 2/2 Running 0 20s You can also follow the operator’s log: Watch the SonataFlow Operator pod logs kubectl logs deployment/sonataflow-operator-controller-manager -n sonataflow-operator-system -f Once the operator is running, it will watch for instances of the SonataFlow Custom Resources (CR). Using CRs, you can configure your SonataFlow environment and define Workflows and builds to be handled by the operator. To uninstall the SonataFlow Operator, first, you must delete all the SonataFlow Custom Resources (CR) instances managed by it. Once the CRs are deleted, you can then delete all resources created during the operator installation. To delete every CR managed by the operator in your cluster, you can run these series of commands: Delete all SonataFlow CR instances kubectl delete --all workflow --all-namespaces kubectl delete --all sonataflowbuild --all-namespaces kubectl delete --all sonataflowplatform --all-namespaces Alternatively, if you created everything under the same Namespace, deleting the given namespace has the same outcome. To uninstall the correct version of the operator, first you must get the current version by running: Getting the operator version kubectl get deployment sonataflow-operator-controller-manager -n sonataflow-operator-system -o jsonpath=\"{.spec.template.spec.containers[?(@.name=='manager')].image}\" quay.io/kiegroup/kogito-serverless-operator-nightly:1.41.0 The operator manager image reflects the current operator’s version. Replace the major and minor version names in the command below. For example, if the image version is 1.41.0 use 1.41 in the placeholder: Uninstalling the operator kubectl delete -f https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/.x/operator.yaml If you’re running a snapshot version, use this URL instead https://raw.githubusercontent.com/kiegroup/kogito-serverless-operator/main/operator.yaml. SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Install the SonataFlow Operator","component":"serverlessworkflow","version":"1.43.0.Final","name":"install-serverless-operator","url":"/serverlessworkflow/latest/cloud/operator/install-serverless-operator.html","titles":[{"text":"SonataFlow Operator OpenShift installation","hash":"_sonataflow_operator_openshift_installation","id":1},{"text":"Uninstall","hash":"_uninstall","id":2},{"text":"SonataFlow Operator Kubernetes installation","hash":"_sonataflow_operator_kubernetes_installation","id":3},{"text":"Uninstall","hash":"_uninstall_2","id":4},{"text":"SonataFlow Operator Manual Installation","hash":"_sonataflow_operator_manual_installation","id":5},{"text":"Prepare a Minikube instance","hash":"_prepare_a_minikube_instance","id":6},{"text":"Install","hash":"_install","id":7},{"text":"Uninstall","hash":"_uninstall_3","id":8},{"text":"Additional resources","hash":"_additional_resources","id":9},{"text":"Found an issue?","hash":"_found_an_issue","id":10}]},"51":{"id":51,"text":"The SonataFlow Operator is currently in Alpha version, is under active development. The following issues are currently being prioritized: Implement admission webhooks for workflow validation Manage the Functions included in a Workflow with Operator Enable toggle Workflow CR from devmode to production mode and vice-versa Review build failures and signal the reasoning in the Events API Evaluate internal registry integration on OpenShift, Kubernetes and Minikube Add support to GET method to Knative custom function Review the need of the knative/kubernetes addons inside the dev profile builder image Knative eventing addon should not provide defaults for incoming/outgoing","title":"SonataFlow Operator Known Issues, Limitations and Roadmap","component":"serverlessworkflow","version":"1.43.0.Final","name":"known-issues","url":"/serverlessworkflow/latest/cloud/operator/known-issues.html","titles":[{"text":"Roadmap","hash":"_roadmap","id":1},{"text":"CNCF Specification v0.8 Alignment","hash":"_cncf_specification_v0_8_alignment","id":2},{"text":"Workflow Productization Profile","hash":"_workflow_productization_profile","id":3},{"text":"Knative Integration","hash":"_knative_integration","id":4}]},"52":{"id":52,"text":"When migrating to version 1.43.0, you must review the SonataFlowPlatform instances. Procedure Change the .spec.platform to .spec.build.config. For example, given that you have: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: platform: registry: address: quay.io/kiegroup secret: regcred You should change it to: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: config: registry: address: quay.io/kiegroup secret: regcred Change the .spec.build to .spec.build.template. For example, given that you have: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: resources: requests: memory: \"64Mi\" cpu: \"250m\" limits: memory: \"128Mi\" cpu: \"500m\" You should change it to: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: build: template: resources: requests: memory: \"64Mi\" cpu: \"250m\" limits: memory: \"128Mi\" cpu: \"500m\" Change the .spec.devModeBaseImage to spec.devMode.baseImage. For example, given that you have: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: devModeBaseImage: quay.io/johndoe/myworkflow:latest You should change it to: apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: devMode: baseImage: quay.io/johndoe/myworkflow:latest","title":"Migration Guide","component":"serverlessworkflow","version":"1.43.0.Final","name":"migration-guide","url":"/serverlessworkflow/latest/cloud/operator/migration-guide.html","titles":[{"text":"Version 1.43.0","hash":"_version_1_43_0","id":1}]},"53":{"id":53,"text":"This document describes how to reference additional files in the SonataFlow Custom Resource (CR). Most of the time, a workflow definition will require not only the flow definition, but also OpenAPI or AsyncAPI specification descriptors, schemas, subflows definitions, and etc. For example, when doing service orchestration using OpenAPI descriptors, you need to tell the workflow where to find these descriptors in your context. If these files are not in a remote location that can be accessed via the HTTP protocol, you must describe in the SonataFlow CR where to find them within the cluster. This is done via ConfigMaps. Prerequisites You have the files available in your file system You have permissions to create ConfigMaps in the target namespace Given that you already have the file you want to add to your workflow definition, you can create a ConfigMap as you normally would with the contents of the file. For example, given the following workflow: Example of a workflow referencing additional files apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: service annotations: sonataflow.org/description: Hello Service! sonataflow.org/version: 0.0.1 sonataflow.org/profile: dev spec: flow: start: Service dataInputSchema: specs/workflow-service-schema.json (1) functions: - name: isWinner operation: specs/workflow-service-openapi.json#isWinner (2) type: rest states: - name: Service type: operation actions: - name: CallService functionRef: refName: isWinner end: true 1 The workflow defines an input schema 2 The workflow requires an OpenAPI specification file to make a REST invocation For this example, you have two options. You can either create two ConfigMaps to have a clear separation of concerns or only one with both files. From the operator perspective, it won’t make any difference since both files will be available for the workflow application at runtime. To make it simple, you can create only one ConfigMap. Given that the files are available in the current directory: Creating a ConfigMap from the current directory kubectl create configmap service-files --from-file=$(pwd) -n Replace with the namespace where you are going to deploy the workflow. The operator won’t access ConfigMaps in other namespaces. You should have a ConfigMap with two data entries similar to this one: Example of a ConfigMap containing the data for the worflow kind: ConfigMap apiVersion: v1 metadata: name: service-files data: workflow-service-schema.json: # data was removed to save space workflow-service-openapi.json: # data was removed to save space Now you can reference this ConfigMap to your SonataFlow CR: SonataFlow CR referencing a ConfigMap resource apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: service annotations: sonataflow.org/description: Hello Service! sonataflow.org/version: 0.0.1 sonataflow.org/profile: dev spec: resources: (1) configMaps: - configMap: name: service-files (2) workflowPath: specs (3) flow: start: Service dataInputSchema: specs/workflow-service-schema.json functions: - name: isWinner operation: specs/workflow-service-openapi.json#isWinner type: rest states: - name: Service type: operation actions: - name: CallService functionRef: refName: isWinner end: true 1 Introduced a new attribute .spec.resources where you can bind the ConfigMap to the SonataFlow CR 2 The name of the ConfigMap in the same namespace 3 The path where we want to reference these files Note that the workflowPath is specs. This is the path where you want to reference the files within the ConfigMap in the workflow definition. Always create your ConfigMaps before the SonataFlow since not having the files available during startup might break the deployment. Any files you have to map to the flow definition can be added to the SonataFlow CR using this procedure. The ConfigMap containing workflow files are not tied to a particular SonataFlow instance, just referenced by it. It means that the operator won’t edit or delete them if the SonataFlow CR is updated or deleted. You have total control of the ConfigMap instance. You can organize your ConfigMaps in a way that other workflows could reuse them. In other words, one ConfigMap can be mapped to many SonataFlow Custom Resources. For example, if you have many OpenAPI or AsyncAPI specification files that your workflows can access, you can group them by domain. This way you create a static Service Registry using ConfigMaps. Other developers within your company can reuse the same specification files when designing workflows. The same applies for data input and output schemas, subflows definitions, and so on. SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator Configuring Workflow Services If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Referencing Additional Files in the Workflow","component":"serverlessworkflow","version":"1.43.0.Final","name":"referencing-resource-files","url":"/serverlessworkflow/latest/cloud/operator/referencing-resource-files.html","titles":[{"text":"Creating ConfigMaps with Workflow Additional Files","hash":"_creating_configmaps_with_workflow_additional_files","id":1},{"text":"Creating a Static Service Registry","hash":"_creating_a_static_service_registry","id":2},{"text":"Additional resources","hash":"_additional_resources","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"54":{"id":54,"text":"This document describes the Status and Conditions of a SonataFlow object managed by the SonataFlow Operator. Kubernetes Status is an important property to observe in order to understand what is currently happening with the object. It can also help you troubleshoot or integrate with other objects in the cluster. You can inspect the Status of any Workflow object using the following command: Checking the Workflow Status kubectl get workflow -n -o jsonpath={.status} The table below lists the general structure of a Workflow status: Table 1. Description of SonataFlow Status object Status Description ObservedGeneration Last object generation observed by the operator Conditions Current observed Workflow Conditions Address External or internal Workflow access endpoint. Implements the Knative Addressable Interface RecoverFailureAttempts How many attempts the operator tried to recover from a failure The Conditions property might vary depending on the Workflow profile. The next sections describe the current implementation. When you deploy a Workflow with the development profile, the operator deploys a ready-to-use container with a running Workflow instance. The following table lists the possible Conditions. Table 2. Conditions Scenarios in Development Condition Status Reason Description Built Unknown In development profile there’s no build process, so this state remains in Unknown status Running True The Workflow is running and in healthy state Running False WaitingForDeployment The Workflow is waiting for the underlying deployment object to have a minimum availability Running False DeploymentFailure There was a problem with the underlying deployment object. Check the message in this Condition and the Workflow Pod logs for more info Running False DeploymentIsUnavailable The underlying deployment object doesn’t have the minimum availability for this Workflow. Check the message in this condition and the Workflow Pod logs for more info Running False AttemptToRedeployFailed If the Workflow Deployment is not available, the operator will try to rollout the Deployment three times before entering this stage. Check the message in this Condition and the Workflow Pod logs for more info In normal conditions, the Workflow will transition from Running, WaitingForDeployment condition to Running. In case something wrong happens, consult the section Workflow Troubleshooting in Development. Deploying the Workflow in Production profile makes the operator build an immutable image for the Workflow application. The progress of the immutable image build can be followed by observing the Workflow Conditions. Table 3. Condition Scenarios in Production Condition Status Reason Description Built False BuildIsRunningReason The build is currently running Built False BuildFailedReason The build has failed and any attempts to have it run failed Built True Last build has finished successfully Running True The Workflow is running and in healthy state Running False WaitingForPlatform The Workflow can’t have a Pod running until a SonataFlowPlatform is ready Running False WaitingForBuildReason The Workflow is waiting for the build to finish to start running Running False WaitingForDeployment The Workflow is waiting for the underlying Deployment object to have a minimum availability Running False DeploymentFailure There was a problem with the underlying Deployment object. Check the message in this Condition and the Workflow Pod logs for more info Running False DeploymentIsUnavailable The underlying Deployment object doesn’t have the minimum availability for this Workflow. Check the message in this Condition and the Workflow Pod logs for more info Running False AttemptToRedeployFailed If the Workflow Deployment is not available, the operator will try to roll out the Deployment three times before entering this stage. Check the message in this Condition and the Workflow Pod logs for more info When building an image for a Workflow resource, a SonataFlowBuild will first be created and the operator will wait for the associated build to finish. Once the build is complete, the Workflow transitions to the deployment phase, which will provide a new Workflow service Pod to run with the built image. SonataFlow Operator Known Issues, Limitations and Roadmap Developing Workflow with the Operator Building and Deploying Workflows with the Operator If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Understanding Workflow Services Status Conditions","component":"serverlessworkflow","version":"1.43.0.Final","name":"workflow-status-conditions","url":"/serverlessworkflow/latest/cloud/operator/workflow-status-conditions.html","titles":[{"text":"General Status","hash":"_general_status","id":1},{"text":"Development Profile Conditions","hash":"_development_profile_conditions","id":2},{"text":"Production Profile Conditions","hash":"_production_profile_conditions","id":3},{"text":"Additional resources","hash":"_additional_resources","id":4},{"text":"Found an issue?","hash":"_found_an_issue","id":5}]},"55":{"id":55,"text":"This document describes how to build a Serverless Application Container image using the Quarkus CLI. Prerequisites A workflow project is created. For more information about creating a workflow project, see Creating your first Serverless Workflow service. Latest version of Docker is installed. Alternatively, you can use Jib to build container images. However, Docker is required to build GraalVM native image using the Quarkus native builder image. Optionally, GraalVM 22.3.0 is installed. Quarkus provides a few extensions to build container images, such as Jib, docker, s2i, and buildpacks. For more information about the Quarkus extensions, see the Quarkus documentation. The examples in this document assume that you have the Quarkus tooling installed. For more information about the tooling, see Getting familiar with SonataFlow tooling. To get started with building workflow images, you can use the serverless-workflow-greeting-quarkus example application. You can skip the following procedure if you already have a workflow application. Procedure Clone the kogito-examples repository and navigate to the serverless-workflow-greeting-quarkus example application. Clone an example application git clone --branch main https://github.com/kiegroup/kogito-examples.git cd kogito-examples/serverless-workflow-examples/serverless-workflow-greeting-quarkus To run the example application, follow the instructions in Creating your first workflow service. Install the Quarkus command line interface (CLI). For more information, see Installing the Quarkus CLI. Add the required Quarkus extension using Quarkus CLI: Add the Jib extension The kogito-examples already have this extension added by default, and can be activated with the container Maven profile. The steps to add the extension in your Serverless Workflow application are: quarkus extension add 'container-image-jib' After adding the Jib extension, you can verify the newly added dependency in the pom.xml file: Verify the Jib extension io.quarkus quarkus-container-image-jib After installing the required tooling, you can start building your workflow application. Prerequisites You have created a Quarkus project. Quarkus CLI is installed. For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure In a command terminal, navigate to your Quarkus project. To build your workflow application on Quarkus, set the quarkus.container-image.build property value to true and run the following command: Build your workflow application quarkus build -Dquarkus.container-image.build=true The previous command builds your image with name: {system_username}/{project_artifactId}:{project_version}. Optionally, you can set the following properties to specify the image: quarkus.container-image.registry: To define the registry address of the image, such as quay.io. When using OpenShift use the provided registry. quarkus.container-image.group: To define the registry namespace of the image. For example, context/namespace or in case of Kubernetes or OpenShift namespace/project. quarkus.container-image.name: To override the image name. By default, this property uses artifact ID. Build your workflow application with specific image information quarkus build -Dquarkus.container-image.build=true \\ -Dquarkus.container-image.group=kogito \\ -Dquarkus.container-image.name=serverless-workflow-greeting-quarkus \\ -Dquarkus.container-image.tag=1.0 \\ -Dquarkus.container-image.registry=quay.io The added Jib extension caches the target/lib directory. Based on the size of your project, Jib speeds up the rebuilds. You can also push your workflow application to the defined registry. You need to set the quarkus.container-image.push property value to true (default value is false). Example of pushing the built workflow application to a registry quarkus build -Dquarkus.container-image.build=true \\ -Dquarkus.container-image.group=kogito \\ -Dquarkus.container-image.name=serverless-workflow-greeting-quarkus \\ -Dquarkus.container-image.tag=1.0 \\ -Dquarkus.container-image.registry=quay.io \\ -Dquarkus.container-image.push=true The previous command results in the following container image pushed to quay.io: quay.io/kogito/serverless-workflow-greeting-quarkus:1.0 Alternatively, you can create an Apache Maven profile to build the container image, which can be triggered by setting the target profile. Example Apache Maven profile build-container true kogito serverless-workflow-greeting-quarkus 1.0 quay.io true You can activate the created Apache Maven profile using Quarkus CLI: Activate the Apache Maven profile quarkus build -- -Pbuild-container When it comes to workflows, a small startup footprint is expected, which can be better when using the native builds to build a workflow application. Prerequisites You have created a Quarkus project. Quarkus CLI is installed. For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure In a command terminal, navigate to your Quarkus project. To build a native image, pass the --native flag using Quarkus CLI: Example of building a native image quarkus build --native -Dquarkus.container-image.build=true \\ -Dquarkus.container-image.group=kogito \\ -Dquarkus.container-image.name=serverless-workflow-greeting-quarkus \\ -Dquarkus.container-image.tag=1.0-native \\ -Dquarkus.container-image.registry=quay.io The previous command results in the following container image: quay.io/kogito/serverless-workflow-greeting-quarkus:1.0-native In case GraalVM is not installed, you can set the -Dquarkus.native.container-build=true system property, which creates a Linux executable. Configure Docker to use the in-cluster (Remote) Docker daemon When build Container Images using a remote Docker Daemon, i.e. Minikube, you need to use the following system property instead of -Dquarkus.native.container-build=true System property to use a remote Docker Daemon -Dquarkus.native.remote-container-build=true For more information about native builds, see Building a native executable. After building your workflow image using Quarkus CLI, you can test the built image. Prerequisites Latest version of Docker is installed. Procedure Start JVM and native Container Images. Example JVM image Example native image docker run -it -p 8080:8080 quay.io/kogito/serverless-workflow-greeting-quarkus:1.0 ... INFO [io.quarkus] (main) serverless-workflow-greeting-quarkus 1.22.1.Final on JVM (powered by Quarkus 2.9.2.Final) started in 1.302s docker run -it -p 8080:8080 quay.io/kogito/serverless-workflow-greeting-quarkus:1.0-native ... INFO [io.quarkus] (main) serverless-workflow-greeting-quarkus 1.22.1.Final native (powered by Quarkus 2.9.2.Final) started in 0.039s Note that the startup of native image is faster than the JVM image. To invoke the workflow application, execute the following command once the container is started: Example request Example response curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://localhost:8080/jsongreet { \"id\": \"2acf710d-7e4a-481d-925c-dfd85a369987\", \"workflowdata\": { \"name\": \"John\", \"language\": \"English\", \"greeting\": \"Hello from JSON Workflow, \" } } Deploying your SonataFlow application on Minikube Deploying your SonataFlow application on Kubernetes Deploying your SonataFlow application on OpenShift If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Building workflow images using Quarkus CLI","component":"serverlessworkflow","version":"1.43.0.Final","name":"build-workflow-image-with-quarkus-cli","url":"/serverlessworkflow/latest/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","titles":[{"text":"Using an example application","hash":"proc-using-example-application","id":1},{"text":"Building the workflow application","hash":"proc-building-serverless-workflow-application","id":2},{"text":"Building the workflow application using a native image","hash":"proc-building-serverless-workflow-application-using-native-image","id":3},{"text":"Testing your workflow image","hash":"proc-testing-serverless-workflow-image","id":4},{"text":"Additional resources","hash":"_additional_resources","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"56":{"id":56,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"build-workflow-images-with-tekton","url":"/serverlessworkflow/latest/cloud/quarkus/build-workflow-images-with-tekton.html","titles":[]},"57":{"id":57,"text":"This document describes how to deploy a SonataFlow application using a Kubernetes cluster, along with a procedure to run the Knative platform. Prerequisites Your SonataFlow application is ready to use. For more information about building the application container, see Building workflow images using Quarkus CLI. Kubernetes Cluster is available kubectl command-line tool is installed Knative CLI is installed. For more information, see Install the Knative CLI. Knative workflow CLI is installed. For more information see Serverless Workflow plug-in for Knative CLI. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Before proceeding further, make sure that you have access to the Kubernetes cluster with Knative available. To make sure Knative is available, it can be checked with the commands below: Verify if Knative is available kubectl get services -n knative-serving NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE activator-service ClusterIP 10.97.110.167 9090/TCP,8008/TCP,80/TCP,81/TCP,443/TCP 44m autoscaler ClusterIP 10.98.64.78 9090/TCP,8008/TCP,8080/TCP 44m autoscaler-bucket-00-of-01 ClusterIP 10.111.19.134 8080/TCP 44m controller ClusterIP 10.98.150.141 9090/TCP,8008/TCP 44m default-domain-service ClusterIP 10.106.202.150 80/TCP 43m domainmapping-webhook ClusterIP 10.102.87.208 9090/TCP,8008/TCP,443/TCP 44m net-kourier-controller ClusterIP 10.100.120.208 18000/TCP 43m webhook ClusterIP 10.108.153.180 9090/TCP,8008/TCP,443/TCP 44m For more information on how to figure out if Knative is installed please refer to this link. If not, follow the installation steps described in the Knative documentation. Once Knative is ready, you can initiate the process of deploying your SonataFlow application on Kubernetes. Prerequisites Kubernetes with Knative is ready. Knative is ready. For more information, see Verifying Knative on Kubernetes. Knative CLI is installed. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Your SonataFlow application is ready to use. By default, Kubernetes does not have any registry installed. You can check with the administrator if a private registry is available. Otherwise, you can publish the Application Container image on the Quay.io, or on any other registry of your preference. If the registry requires authentication you need to create a Pull Secret with the registry credentials, for more information please take a look in this link. Procedure Create serverless-workflow-greeting-quarkus namespace using the following command: Create namespace kubectl create namespace serverless-workflow-greeting-quarkus Set the Kubernetes context to the newly created namespace using the following command: Set Kubernetes context to a namespace kubectl config set-context --current --namespace=serverless-workflow-greeting-quarkus After setting the context, all kubectl commands will use the selected namespace. You can use the following command to verify the current namespace: Verify the current namespace kubectl config view --minify -o jsonpath='{..namespace}' Deploy your SonataFlow application on Kubernetes. The next step is to deploy your workflow application and execute it. You can read the further sections on the different procedures to deploy your SonataFlow application. You can use the native image due to the faster startup. In the following procedures, you can find different approaches to deploy your workflow application, such as: Using Knative CLI (kn) Using kubectl command-line tool Using Quarkus CLI For this tutorial, we use the default-domain provided by Knative that configures Knative Serving to use the Magic DNS for naming resolution, for more details please check the Knative documentation. Once you have pushed your workflow application into the target registry, you can use the command-line tools, such as Knative CLI or Kubernetes CLI to initiate the deployment process. Prerequisites Workflow application is installed. Knative CLI is installed. For more information, see Install the Knative CLI. Procedure In a command terminal, execute the following command to deploy your workflow application using Knative CLI: Example of deploying workflow application using Knative CLI kn service create hello-workflow \\ --image=quay.io/kiegroup/serverless-workflow-greeting-quarkus:1.0 \\ --pull-policy=IfNotPresent \\ --port 8080 Example output Creating service 'hello-workflow' in namespace 'serverless-workflow-greeting-quarkus': 0.066s The Route is still working to reflect the latest desired specification. 0.099s ... 0.322s Configuration \"hello-workflow\" is waiting for a Revision to become ready. 4.885s ... 5.061s Ingress has not yet been reconciled. 5.322s Waiting for load balancer to be ready 5.460s Ready to serve. Service 'hello-workflow' created to latest revision 'hello-workflow-00001' is available at URL: http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io Depending on the cluster type where you have deployed the workflow application, the service URL might be different. Pay attention to the output to use the correct URL in the next topic. Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} You can also use kubectl command-line interface and plain Kubernetes objects to deploy your workflow application. And, instead of creating knative yaml|json descriptors, you can leverage the Quarkus Kubernetes extension and Kogito Knative add-on to generate the descriptors. Prerequisites Kogito Workflow application ready to use. Kubernetes CLI command-line tool is installed. (Optional) Quarkus CLI is installed For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure Add the Quarkus extensions to generate knative yaml|json descriptors. To use the Quarkus Kubernetes extension and Kogito Knative add-on, ensure that the following dependencies are available in the pom.xml file and Gradle: pom.xml Gradle Quarkus CLI org.kie.kogito kogito-addons-quarkus-knative-eventing io.quarkus quarkus-kubernetes quarkus-kubernetes 'io.quarkus:quarkus-kubernetes:2.16.9.Final' quarkus-kubernetes 'org.kie.kogito:kogito-addons-quarkus-knative-eventing:1.43.0.Final' quarkus ext add org.kie.kogito:kogito-addons-quarkus-knative-eventing quarkus-openshift1.43.0.Final' To generate the knative yaml|json descriptors, set the following properties in the application.properties file of your workflow application: System properties to generate knative descriptors quarkus.kubernetes.deployment-target=knative quarkus.knative.name=hello-workflow Build your workflow application. Once you have built your application, you can find the generated descriptors files in the target/kubernetes directory: knative.json knative.yml The image used in this section is the one built in the following guide: Build Workflow Image with Quarkus CLI. Following is an example of the generated files: Knative descriptor example for a workflow application --- apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: app.quarkus.io/commit-id: 06c3fe8e2dfc42e2211cbcc41224f5a3d6bd1f26 app.quarkus.io/build-timestamp: 2022-06-23 - 23:53:38 +0000 labels: app.kubernetes.io/name: hello-workflow name: hello-workflow spec: template: metadata: labels: app.kubernetes.io/name: hello-workflow spec: containerConcurrency: 0 containers: - image: quay.io/kiegroup/serverless-workflow-greeting-quarkus:1.0-native livenessProbe: failureThreshold: 3 httpGet: path: /q/health/live port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 name: hello-workflow ports: - containerPort: 8080 name: http1 protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /q/health/ready port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 Once the files are generated, you must add the imagePullPolicy manually before deploying the workflow application. Enter the following command to deploy the workflow application using kubectl: Deploy the workflow application using kubectl kubectl apply -f target/kubernetes/knative.yml Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} Prerequisites Workflow application is ready. Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Procedure Add the Quarkus extensions to deploy the knative service. You can add the Kubernetes and the Kogito Knative extensions to your project with the Quarkus CLI: Add Kubernetes and Kogito Knative extensions to the project with Quarkus CLI quarkus ext add quarkus-kubernetes kogito-addons-quarkus-knative-eventing To deploy the workflow application using Quarkus CLI, set the following system properties in application.properties file: Required system properties quarkus.knative.name=hello-workflow (1) quarkus.kubernetes.deployment-target=knative (2) quarkus.kubernetes.deploy=true (3) quarkus.container-image.push=true (4) quarkus.container-image.group=kiegroup (5) quarkus.container-image.registry=quay.io (6) quarkus.container-image.tag=1.0-SNAPSHOT (7) 1 Property to set the Knative service name 2 Property to set the target deployment type 3 Property to set whether or not deploy on an active Kubernetes cluster 4 Property to push or not the Container image to the given registry 5 Property to define which registry group/namespace the built image belongs to 6 Property to define to which registry the built image will be pushed to 7 Sets the built Container Image tag This feature works with Quarkus 2.10.2.Final or later. For more information, see link. Build and Deploy your workflow application quarkus build -DskipTests The kogito-examples already have this extension added by default, and can be activated with the container Maven profile. Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Deploying your Serverless Workflow application on Kubernetes","component":"serverlessworkflow","version":"1.43.0.Final","name":"deploying-on-kubernetes","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-kubernetes.html","titles":[{"text":"Verifying Knative availability on Kubernetes","hash":"proc-verify-knative-kubernetes","id":1},{"text":"Deploying your workflow application on Kubernetes","hash":"proc-deploy-sw-application-kubernetes","id":2},{"text":"Deploying your workflow application using Knative CLI","hash":"proc-deploy-sw-application-knative-cli","id":3},{"text":"Deploying your workflow application using Kubernetes CLI","hash":"proc-deploy-sw-application-kubectl","id":4},{"text":"Deploying your workflow application using Quarkus CLI","hash":"proc-deploy-sw-application-quarkus-cli","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"58":{"id":58,"text":"This document describes how to deploy your workflow application using a local Kubernetes cluster, such as Minikube, along with a procedure to run the Knative platform. For more information about Minikube and related system requirements, see Getting started with Minikube documentation. Prerequisites Your SonataFlow application is ready to use. For more information about building the application container, see Building workflow images using Quarkus CLI. Minikube is installed kubectl command-line tool is installed. Otherwise, Minikube handles it. Knative CLI is installed. For more information, see Install the Knative CLI. Knative workflow CLI is installed. For more information see Serverless Workflow plug-in for Knative CLI. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). To deploy your workflow application on Minikube, you need to install Knative on Minikube. However, first you need to ensure that Minikube is installed correctly. You can check the Minikube installation by entering the following commands in a command terminal: Verify Minikube version minikube version Verify Knative CLI version kn version Verify kubectl CLI version kubectl version If kubectl is not installed, then Minikube handles it when you execute the following command: kubectl is available using Minikube alias kubectl=\"minikube kubectl --\" Once you verify the Minikube and Knative CLI installation, you can install Knative on Minikube. Prerequisites Minikube is installed. Knative CLI is installed. For more information, see Install the Knative CLI. Procedure Open a command terminal and install Knative on Minikube. Configure Knative on Minikube. Knative CLI offers quickstart plug-in, which provides the required configurations. For information about installing the quickstart plug-in, see Install Knative using quickstart. After configuring the plug-in, execute the following command to configure a Minikube profile: Configure a Minikube profile kn quickstart minikube The previous command configures a Minikube profile called knative. After creating a Minikube profile, all Minikube commands use the created profile. To list the available Minikube profiles, enter the following command: List the available Minikube profiles minikube profile list Enter the following command to open the Minikube web console on the knative profile: Open Minikube web console minikube dashboard --profile knative The previous command opens the Kubernetes Management console in your browser. If the console is not opened, you can go to the URL that is returned. To follow the manual process of installing Knative on Minikube, see Knative tutorial on Minikube. Once you install Knative on Minikube, you can initiate the process of deploying your workflow application on Minikube. Prerequisites Minikube is installed. Knative is ready. For more information, see Installing Knative on Minikube. Knative CLI is installed. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Your SonataFlow application is ready to use. Procedure In a command terminal, enter the following command to configure Docker to use the in-cluster Docker daemon: Configure Docker to use in-cluster Docker Daemon eval $(minikube -p minikube docker-env --profile knative) Build your application to store it in the Minikube registry. If your workflow application container image is built before configuring Docker to use the in-cluster Docker daemon, then you might need to build the image again so that the image is available in the Minikube registry. If you are building native container images, ensure that you use the following system property to use Minikube Docker Daemon: System property to build container images -Dquarkus.native.remote-container-build=true You might be required to tag the container images using one of the following registry: ko.local dev.local For more information, see How to use locally built docker image. In that case, use the -Dquarkus.container-image.registry=some_of_the_values_above property to enable Knative fetch the container images from Minikube Docker Daemon. If you do not use the values, you might need to set the imagePullPolicy to Never or IfNotPresent, otherwise, Minikube pulls the images from a remote registry. This behavior can be avoided by tagging the image using previously listed domains. In a separate command terminal window, start the Minikube tunnel using the Knative profile to prepare the environment: Start Minikube tunnel using Knative profile minikube tunnel --profile knative The previous command starts in a loop. Therefore, this command must be running throughout the process mentioned in this document. On Mac and Windows, you might be required to provide the user password. Example tunnel output Status: machine: knative pid: 124859 route: 10.96.0.0/12 -> 192.168.58.2 minikube: Running services: [kourier] errors: minikube: no errors router: no errors loadbalancer emulator: no errors After starting the Minikube tunnel, create serverless-workflow-greeting-quarkus namespace using the following command: Create namespace kubectl create namespace serverless-workflow-greeting-quarkus Set the Kubernetes context to the newly created namespace using the following command: Set Kubernetes context to a namespace kubectl config set-context --current --namespace=serverless-workflow-greeting-quarkus After setting the context, all kubectl commands will use the selected namespace. You can use the following command to verify the current namespace: Verify the current namespace kubectl config view --minify -o jsonpath='{..namespace}' Deploy your SonataFlow application using the Minikube registry. The next step is to deploy your workflow application and execute it. You can read the further sections on the different procedures to deploy your SonataFlow application. You can use the native image due to the faster startup. In the following procedures, you can find different approaches to deploy your workflow application, such as: Using Knative CLI (kn) Using kubectl command-line tool Using Quarkus CLI Once you have pushed your workflow application into the Minikube’s registry, you can use the command-line tools, such as Knative CLI or Kubernetes CLI to initiate the deployment process. Prerequisites Workflow application is installed. Knative CLI is installed. For more information, see Install the Knative CLI. Procedure In a command terminal, execute the following command to deploy your workflow application using Knative CLI: Example of deploying workflow application using Knative CLI kn service create hello-workflow \\ --image=dev.local/kogito/serverless-workflow-greeting-quarkus:1.0 \\ --pull-policy=IfNotPresent \\ --port 8080 Example output Creating service 'hello-workflow' in namespace 'serverless-workflow-greeting-quarkus': 0.066s The Route is still working to reflect the latest desired specification. 0.099s ... 0.322s Configuration \"hello-workflow\" is waiting for a Revision to become ready. 4.885s ... 5.061s Ingress has not yet been reconciled. 5.322s Waiting for load balancer to be ready 5.460s Ready to serve. Service 'hello-workflow' created to latest revision 'hello-workflow-00001' is available at URL: http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io Depending on the cluster type where you have deployed the workflow application, the service URL might be different. Pay attention to the output to use the correct URL in the next topic. Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} You can also use kubectl command-line interface and plain Kubernetes objects to deploy your workflow application. And, instead of creating knative yaml|json descriptors, you can leverage the Quarkus Kubernetes extension and Kogito Knative add-on to generate the descriptors. Prerequisites Kogito Workflow application ready to use. Kubernetes CLI command-line tool is installed. (Optional) Quarkus CLI is installed For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure Add the Quarkus extensions to generate knative yaml|json descriptors. To use the Quarkus Kubernetes extension and Kogito Knative add-on, ensure that the following dependencies are available in the pom.xml file and Gradle: pom.xml Gradle Quarkus CLI org.kie.kogito kogito-addons-quarkus-knative-eventing io.quarkus quarkus-kubernetes quarkus-kubernetes 'io.quarkus:quarkus-kubernetes:2.16.9.Final' quarkus-kubernetes 'org.kie.kogito:kogito-addons-quarkus-knative-eventing:1.43.0.Final' quarkus ext add org.kie.kogito:kogito-addons-quarkus-knative-eventing quarkus-openshift1.43.0.Final' To generate the knative yaml|json descriptors, set the following properties in the application.properties file of your workflow application: System properties to generate knative descriptors quarkus.kubernetes.deployment-target=knative quarkus.knative.name=hello-workflow Build your workflow application. Once you have built your application, you can find the generated descriptors files in the target/kubernetes directory: knative.json knative.yml The image used in this section is the one built in the following guide: Build Workflow Image with Quarkus CLI. Following is an example of the generated files: Knative descriptor example for a workflow application --- apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: app.quarkus.io/commit-id: 06c3fe8e2dfc42e2211cbcc41224f5a3d6bd1f26 app.quarkus.io/build-timestamp: 2022-06-23 - 23:53:38 +0000 labels: app.kubernetes.io/name: hello-workflow name: hello-workflow spec: template: metadata: labels: app.kubernetes.io/name: hello-workflow spec: containerConcurrency: 0 containers: - image: dev.local/kogito/serverless-workflow-greeting-quarkus:1.0-native livenessProbe: failureThreshold: 3 httpGet: path: /q/health/live port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 name: hello-workflow ports: - containerPort: 8080 name: http1 protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /q/health/ready port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 Once the files are generated, you must add the imagePullPolicy manually before deploying the workflow application. Enter the following command to deploy the workflow application using kubectl: Deploy the workflow application using kubectl kubectl apply -f target/kubernetes/knative.yml Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} Prerequisites Workflow application is ready. Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Procedure Add the Quarkus extensions to deploy the knative service. You can add the Kubernetes and the Kogito Knative extensions to your project with the Quarkus CLI: Add Kubernetes and Kogito Knative extensions to the project with Quarkus CLI quarkus ext add quarkus-kubernetes kogito-addons-quarkus-knative-eventing To deploy the workflow application using Quarkus CLI, set the following system properties in application.properties file: Required system properties quarkus.knative.name=hello-workflow (1) quarkus.kubernetes.deployment-target=knative (2) quarkus.kubernetes.deploy=true (3) quarkus.container-image.push=false (4) quarkus.container-image.group=kogito (5) quarkus.container-image.registry=dev.local (6) quarkus.container-image.tag=1.0-SNAPSHOT (7) 1 Property to set the Knative service name 2 Property to set the target deployment type 3 Property to set whether or not deploy on an active Kubernetes cluster 4 Property to whether or not push images. False when using Minikube’s remote Docker daemon to avoid image validation 5 Property to define which registry group/namespace the built image belongs to 6 Property to define to which registry the built image will be pushed to 7 Sets the built Container Image tag This feature works with Quarkus 2.10.2.Final or later. For more information, see link. Build and Deploy your workflow application quarkus build -DskipTests The kogito-examples already have this extension added by default, and can be activated with the container Maven profile. Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} Verify if the workflow application is deployed correctly: On Kubernetes CLI On Knative CLI kubectl get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Deploying your SonataFlow application on Minikube","component":"serverlessworkflow","version":"1.43.0.Final","name":"deploying-on-minikube","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-minikube.html","titles":[{"text":"Installing Knative on Minikube","hash":"proc-install-knative-minikube","id":1},{"text":"Deploying your workflow application on Minikube","hash":"proc-deploy-sw-application-minikube","id":2},{"text":"Deploying your workflow application using Knative CLI","hash":"proc-deploy-sw-application-knative-cli","id":3},{"text":"Deploying your workflow application using Kubernetes CLI","hash":"proc-deploy-sw-application-kubectl","id":4},{"text":"Deploying your workflow application using Quarkus CLI","hash":"proc-deploy-sw-application-quarkus-cli","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"59":{"id":59,"text":"This document describes how to deploy a SonataFlow application using a OpenShift cluster, along with a procedure to run the OpenShift Serverless Operator, which is based on Knative. Prerequisites Your SonataFlow application is ready to use. OpenShift CLI is installed. Knative CLI is installed. Knative CLI workflow plugin is installed. Podman If you are using Docker, you might need to update the commands accordingly. (Optional) Quarkus CLI is installed. For the following steps we will be using the OpenShift Local. However, the steps described here can be used on any OpenShift 4.x version that has support for OpenShift Serverless. If you already have an OpenShift cluster available you can skip this section. Instructions to install Openshift Local can be found here. Once you have OpenShift Local running, proceed to the next topic. If you are running OpenShift Local on Mac with M1 processors, you might not find the OpenShift Serverless Operator available. Before proceeding further, make sure that you have access to the OpenShift cluster, the OpenShift Serverless operator is properly installed and the Knative Serving is ready for use. For more information on each topic, please refer the following guides: Installing OpenShift Serverless Operator. Installing Knative Serving. Installing Knative Eventing. Knative Eventing is not required for this guide, however it is important to mention how to install it, if required by your SonataFlow application. If you get error messages related to Istio, this article might be helpful. Once Knative Serving is ready, you can initiate the process of deploying your SonataFlow application on OpenShift. Prerequisites OpenShift with Red Hat OpenShift Serverless is ready. Knative is ready. For more information, see Knative Serving. Knative CLI is installed. (Optional) Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Your SonataFlow application is ready to use. After checking the prerequisites, prepare the project that will be used to deploy your application: Procedure Create project oc new-project kogito-serverless Set the Kubernetes context to the newly created namespace using the following command: Set OpenShift current project oc project kogito-serverless You can use the native image for a faster startup. OpenShift comes with a registry where you can push your images built locally to be deployed. First, let’s check if the Registry is already exposed, to do that, check if the route is exposed: Check whether the OpenShift registry is exposed oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}' If no information or an error is returned, it does mean that the registry is not exposed. To expose the registry follow these steps. Now that we have the OpenShift registry exposed, let’s store into the OPENSHIFT_REGISTRY_URL environment variable, so we can use it easily in the next steps: Retrieve the OpenShift registry OPENSHIFT_REGISTRY_URL=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}') The OpenShift’s registry requires you to be logged in to be allowed to push Container Images. If you are already logged in the cluster you can use your token to authenticate to the OpenShift’s registry: Log in to the OpenShift’s registry podman login -u -p $(oc whoami -t) --tls-verify=false $OPENSHIFT_REGISTRY_URL If everything is working, you should get the Login Succeeded! message. Pushing SonataFlow Application To OpenShift’s registry First step, get the Container Image tag built previously: podman images With the Container Image, use the following command to tag the application image with the OpenShift’s registry and the namespace being used: podman tag $OPENSHIFT_REGISTRY_URL/kogito-serverless/serverless-workflow-greeting-quarkus:1.0 Then, push: podman push $OPENSHIFT_REGISTRY_URL/kogito-serverless/serverless-workflow-greeting-quarkus:1.0 The kogito-serverless is the current project/namespace created earlier to deploy your SonataFlow application. The next step is to deploy your workflow application and execute it. You can read further the next sections which explain different approaches to deploy your SonataFlow application: In the next steps you will notice the value image-registry.openshift-image-registry.svc:5000 being used. It is the internal OpenShift’s registry address where the images of the deployments will pulled from. Note that, the Container Image pushed in the previous step will be queried as image-registry.openshift-image-registry.svc:5000/kogito-serverless/serverless-workflow-greeting-quarkus:1.0 Using Knative CLI (kn) Using OpenShift command-line tool Using Quarkus CLI Once you have pushed your workflow application into the OpenShift’s registry, you can use the command-line tools, such as Knative CLI or OpenShift CLI to initiate the deployment process. Prerequisites Workflow application is installed. Knative CLI is installed. For more information, see Install the Knative CLI. Procedure In a command terminal, execute the following command to deploy your workflow application using Knative CLI: Example of deploying workflow application using Knative CLI kn service create hello-workflow \\ --image=image-registry.openshift-image-registry.svc:5000/kogito-serverless/serverless-workflow-greeting-quarkus:1.0 \\ --pull-policy=IfNotPresent \\ --port 8080 Example output Creating service 'hello-workflow' in namespace 'serverless-workflow-greeting-quarkus': 0.066s The Route is still working to reflect the latest desired specification. 0.099s ... 0.322s Configuration \"hello-workflow\" is waiting for a Revision to become ready. 4.885s ... 5.061s Ingress has not yet been reconciled. 5.322s Waiting for load balancer to be ready 5.460s Ready to serve. Service 'hello-workflow' created to latest revision 'hello-workflow-00001' is available at URL: http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io Depending on the cluster type where you have deployed the workflow application, the service URL might be different. Pay attention to the output to use the correct URL in the next topic. Verify if the workflow application is deployed correctly: On OpenShift CLI On Knative CLI oc get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} You can also use oc command-line interface and plain Kubernetes objects to deploy your workflow application. And, instead of creating knative yaml|json descriptors, you can leverage the Quarkus Kubernetes extension and Kogito Knative add-on to generate the descriptors. Prerequisites Kogito Workflow application ready to use. OpenShift CLI command-line tool is installed. (Optional) Quarkus CLI is installed For more information about installing the Quarkus CLI, see Installing the Quarkus CLI. Procedure Add the Quarkus extensions to generate knative yaml|json descriptors. To use the Quarkus Kubernetes extension and Kogito Knative add-on, ensure that the following dependencies are available in the pom.xml file and Gradle: pom.xml Gradle Quarkus CLI org.kie.kogito kogito-addons-quarkus-knative-eventing io.quarkus quarkus-openshift quarkus-kubernetes 'io.quarkus:quarkus-openshift:2.16.9.Final' quarkus-kubernetes 'org.kie.kogito:kogito-addons-quarkus-knative-eventing:1.43.0.Final' quarkus ext add org.kie.kogito:kogito-addons-quarkus-knative-eventing quarkus-openshift1.43.0.Final' To generate the knative yaml|json descriptors, set the following properties in the application.properties file of your workflow application: System properties to generate knative descriptors quarkus.kubernetes.deployment-target=knative quarkus.knative.name=hello-workflow Build your workflow application. Once you have built your application, you can find the generated descriptors files in the target/kubernetes directory: knative.json knative.yml The image used in this section is the one built in the following guide: Build Workflow Image with Quarkus CLI. Following is an example of the generated files: Knative descriptor example for a workflow application --- apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: app.quarkus.io/commit-id: 06c3fe8e2dfc42e2211cbcc41224f5a3d6bd1f26 app.quarkus.io/build-timestamp: 2022-06-23 - 23:53:38 +0000 labels: app.kubernetes.io/name: hello-workflow name: hello-workflow spec: template: metadata: labels: app.kubernetes.io/name: hello-workflow spec: containerConcurrency: 0 containers: - image: image-registry.openshift-image-registry.svc:5000/kogito-serverless/serverless-workflow-greeting-quarkus:1.0-native livenessProbe: failureThreshold: 3 httpGet: path: /q/health/live port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 name: hello-workflow ports: - containerPort: 8080 name: http1 protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /q/health/ready port: null scheme: HTTP initialDelaySeconds: 0 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 10 Once the files are generated, you must add the imagePullPolicy manually before deploying the workflow application. Enter the following command to deploy the workflow application using oc: Deploy the workflow application using oc oc apply -f target/kubernetes/knative.yml Verify if the workflow application is deployed correctly: On OpenShift CLI On Knative CLI oc get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} Prerequisites Workflow application is ready. Quarkus CLI is installed. For more information, see Building Quarkus Apps with Quarkus command line interface (CLI). Procedure Add the Quarkus extensions to deploy the knative service. You can add the OpenShift and the Kogito Knative extensions to your project with the Quarkus CLI: Add OpenShift and Kogito Knative extensions to the project with Quarkus CLI quarkus ext add quarkus-openshift kogito-addons-quarkus-knative-eventing To deploy the workflow application using Quarkus CLI, set the following system properties in application.properties file: Required system properties quarkus.knative.name=hello-workflow (1) quarkus.kubernetes.deployment-target=knative (2) quarkus.kubernetes.deploy=true (3) quarkus.container-image.push=true (4) quarkus.container-image.group=kogito-serverless (5) quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 (6) quarkus.container-image.tag=1.0-SNAPSHOT (7) 1 Property to set the Knative service name 2 Property to set the target deployment type 3 Property to set whether or not deploy on an active OpenShift cluster 4 This property should be removed if deploying on OpenShift Clusters 5 Property to define which registry group/namespace the built image belongs to 6 Property to define to which registry the built image will be pushed to 7 Sets the built Container Image tag This feature works with Quarkus 2.10.2.Final or later. For more information, see link. Build and Deploy your workflow application quarkus build -DskipTests The kogito-examples already have this extension added by default, and can be activated with the container Maven profile. Verify if the workflow application is deployed correctly: On OpenShift CLI On Knative CLI oc get services.serving.knative.dev hello-workflow kn service list hello-workflow Example output NAME URL LATEST AGE CONDITIONS READY REASON hello-workflow http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io hello-workflow-00001 7m6s 3 OK / 3 True Use the URL in the output to send request to your workflow application. Example request curl -X POST -H 'Content-Type:application/json' -H 'Accept:application/json' -d '{\"name\": \"John\", \"language\": \"English\"}' http://hello-workflow.serverless-workflow-greeting-quarkus.10.103.94.37.sslip.io/jsongreet Example response {\"id\":\"0f77abce-837e-4bd2-b4f1-a0e5e0265fcb\",\"workflowdata\":{\"name\":\"John\",\"language\":\"English\",\"greeting\":\"Hello from JSON Workflow, \"}} If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Deploying your SonataFlow application on OpenShift","component":"serverlessworkflow","version":"1.43.0.Final","name":"deploying-on-openshift","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-openshift.html","titles":[{"text":"Installing OpenShift Local","hash":"proc-install-openshift-local","id":1},{"text":"Deploying your workflow application on OpenShift","hash":"proc-deploy-sw-application-openshift","id":2},{"text":"Preparing the OpenShift’s Registry","hash":"_preparing_the_openshifts_registry","id":3},{"text":"Deploying your workflow application using Knative CLI","hash":"proc-deploy-sw-application-knative-cli","id":4},{"text":"Deploying your workflow application using OpenShift CLI","hash":"proc-deploy-sw-application-openfhift-client","id":5},{"text":"Deploying your workflow application using Quarkus CLI","hash":"proc-deploy-sw-application-quarkus-cli","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]},"60":{"id":60,"text":"The Kubernetes service discovery allows you to describe the Kubernetes resource you want to perform HTTP requests on using a custom URI. Under the hood, it will discover the network endpoint (URL) to where to make the request. The Kubernetes service discovery feature works during the workflow application startup, in which this feature scans all the Quarkus configurations in search of the URI pattern. Therefore, you must remember that if the application startup time matters, consider using a known static URL instead. Following is the custom URI pattern in Kubernetes service discovery: URI pattern in Kubernetes service discovery kubernetes:..//?= \\________/ \\____/ \\_______/ \\_____/ \\_________/ \\____________/ \\______________________________/ scheme kind version group namespace resourceName additional resource attributes \\____________________/ \\__________________________/ GVK Supported values: - port-name={PORT_NAME} - labels=label-name=label-value;other-label=other-value The following scheme values are supported in the URI pattern: kubernetes openshift knative The following resources are supported for the Kubernetes GVK (Group, Version, and Kind): services.v1 services.v1.serving.knative.dev pods.v1 deployments.v1.apps deploymentconfigs.v1.apps.openshift.io statefulsets.v1.apps routes.v1.route.openshift.io ingresses.v1.networking.k8s.io When using knative, you can also use a simplified URI like: knative:/ The above URI looks directly for services.v1.serving.knative.dev resource. The namespace in the URI is optional, however, if namespace contains an empty value, the current namespace or context is used. Query parameters in URI Also known as query string. The query parameters are defined the similar way with URLs to assign value to specific attributes. The following query parameters help the engine to be more precise when querying for a given Kubernetes resource: Custom labels: The custom labels are used to filter services in case there are more than one service with the same label selector but exposing different ports. In this case, you can instruct the engine that if more than one service is found, then the engine must use the service containing the provided label. The label is defined with the following expression and in case of multiple labels, you can use semicolon (;): labels=label-name=namevalue;another-label=another-value Example label definition in URI kubernetes:pods.v1//?labels=label-name=test-label Using the previous URI example, if there are more than one service exposing the given pod, the label-name=test-label label is used to filter the service. If the label does not exist, the first found service is used. Custom port name: The custom port name is used to determine which port to use when multiple ports are configured in the target service or container. You can configure the port name to be queried using the following pattern: port-name= The service discovery engine requires that the Kubernetes Service Account running the application has read permissions for the discovered objects. The following Kubernetes Role resource has all the required permissions for the service discovery to work: Required permissions for the Service Discovery on Kubernetes apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: service-discovery-role rules: - apiGroups: - \"\" resources: - pods - services verbs: - get - list - apiGroups: - apps resources: - deployments - statefulsets verbs: - get - list - apiGroups: - networking.k8s.io resources: - ingresses verbs: - get - list # Knative - apiGroups: - serving.knative.dev resources: - services verbs: - get - list If running on OpenShift, you must also add the following rules: Additional rules to run on OpenShift rules: - apiGroups: - route.openshift.io resources: - routes verbs: - get - list - apiGroups: - apps.openshift.io resources: - deploymentconfigs verbs: - get - list You must then bind the Service Account with the Role via a RoleBinding: RoleBinding for the required service discovery role apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: service-discovery-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: service-discovery-role subjects: - kind: ServiceAccount name: default Usually, pods run using the default Service Account. If your cluster has a different configuration, you should adapt this RoleBinding to your requirements. You must create these two objects in every namespace that you wish to deploy Quarkus Workflow applications with Service Discovery enabled. As an alternative, you can create a ClusterRole instead of a Role in every namespace. In this case, the role will reflect globally in your cluster. For security reasons, you should avoid this approach. There is no specific configuration required for the Kubernetes service discovery except by using the expected URI pattern. However, the okhttp communication interceptor, which logs the communication between the application and the Kubernetes API is disabled by default. You can enable the okhttp communication interceptor if there is a need to debug the communication between the client and the Kubernetes API by setting the following application property: Application property to enable okhttp communication interceptor quarkus.log.category.\"okhttp3.OkHttpClient\".level=INFO Based on the resource to be discovered, the Kubernetes service discovery follows specific paths as shown in the following figure: The Kubernetes service discovery is performed at the STATIC_INIT time of Quarkus during the workflow application startup. First, the service discovery scans the Quarkus configuration values and searches for the Kubernetes URI pattern. If the URI pattern is found, the engine parses the URI, queries the Kubernetes API searching for the given resource, and overrides the given application property. For example, consider an application that consumes a resource running on Kubernetes. This resource is a Knative service that exposes a function, which can be discovered using the following URI: Example URI org.kie.kogito.sw.knative.service=knative:services.v1/serverless-workflow-greeting-quarkus/greeting-quarkus-cli The service discovery engine does not read the application property name, but only value. Once the workflow application is started, you can see the Kubernetes service discovery into action in the logs: Example logs $ java -jar target/quarkus-app/quarkus-run.jar __ ____ __ _____ ___ __ ____ ______ --/ __ \\/ / / / _ | / _ \\/ //_/ / / / __/ -/ /_/ / /_/ / __ |/ , _/ , org.kie.kogito kogito-addons-quarkus-kubernetes org.kie.kogito kogito-addons-quarkus-fabric8-kubernetes-service-catalog Currently, only org.kie.kogito:kogito-addons-quarkus-fabric8-kubernetes-service-catalog is available. When enabled, it uses the Kubernetes Java API to discover the services. Configuring the OpenAPI services endpoints If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Kubernetes service discovery in SonataFlow","component":"serverlessworkflow","version":"1.43.0.Final","name":"kubernetes-service-discovery","url":"/serverlessworkflow/latest/cloud/quarkus/kubernetes-service-discovery.html","titles":[{"text":"Required Kubernetes roles","hash":"required-kubernetes-roles","id":1},{"text":"Configuration in Kubernetes service discovery","hash":"con-kubernetes-service-doscovery-configuration","id":2},{"text":"Precedence in Kubernetes service discovery","hash":"con-precedence-kubernetes-service-discovery","id":3},{"text":"Example of Kubernetes service discovery in SonataFlow","hash":"ref-example-kubernetes-service-discovery","id":4},{"text":"Enabling Kubernetes service discovery","hash":"ref-enabling-kubernetes-service-discovery","id":5},{"text":"Available service discovery implementations","hash":"_available_service_discovery_implementations","id":6},{"text":"Additional resources","hash":"_additional_resources","id":7},{"text":"Found an issue?","hash":"_found_an_issue","id":8}]},"61":{"id":61,"text":"","title":"","component":"serverlessworkflow","version":"1.43.0.Final","name":"versioning-workflows-in-knative","url":"/serverlessworkflow/latest/cloud/quarkus/versioning-workflows-in-knative.html","titles":[]},"62":{"id":62,"text":"In SonataFlow Dev UI extension, the Dashboards page is used to display the available dashboard files. The page displays a list of available dashboards and add filters to the list. Figure 1. Dashboard page The table on the Dashboards page displays the following details: Name: the name of a custom dashboard. Last Modified: the time reference indicating when the custom dashboard was last updated. See the dashboard guide for creating dashboards and visualizations with YAML. You can run all examples with Dashbuilder YAML Online. The default storage path for dashboard files is src/main/resources/dashboards, but the property quarkus.kogito-runtime-tools.custom.dashboard.folder can be used to set a custom storage path. Figure 2. Default storage path To filter the dashboard based on name, enter a name in the Filter by dashboard name field and click Apply filter button. Figure 3. Example filters applied on the dashboards In the dashboard table, the name column contains a clickable link, which enables you to navigate to the Dashboard Details page. Figure 4. Dashboard Details page If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Dashboards in SonataFlow Dev UI extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-custom-dashboard-page","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","titles":[{"text":"Creating a custom dashboard","hash":"_creating_a_custom_dashboard","id":1},{"text":"Create a custom dashboard file","hash":"_create_a_custom_dashboard_file","id":2},{"text":"Storage path of custom dashboards","hash":"_storage_path_of_custom_dashboards","id":3},{"text":"Filtering the dashboards","hash":"_filtering_the_dashboards","id":4},{"text":"Accessing a dashboard details","hash":"_accessing_a_dashboard_details","id":5},{"text":"Found an issue?","hash":"_found_an_issue","id":6}]},"63":{"id":63,"text":"In the SonataFlow Dev UI extension, the Monitoring page displays default dashboards that might be useful while developing a workflow. Figure 1. Monitoring Summary tab In the Summary tab you will find the list of workflows with the following details: Amount of workflows on each status. Average time spent on each workflow state. List of workflows executed and their details. To view detailed information about a specific workflow instance execution, you can use the Workflows tab. In the Workflows tab, you can find details such as when the workflow started, its state, and how long its execution took. Also, you can check how much time was spent on each state. Figure 2. Monitoring Workflows tab If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Monitoring in SonataFlow Dev UI extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-monitoring-page","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","titles":[{"text":"Viewing detailed information about the execution of workflow instances","hash":"_viewing_detailed_information_about_the_execution_of_workflow_instances","id":1},{"text":"Found an issue?","hash":"_found_an_issue","id":2}]},"64":{"id":64,"text":"Quarkus applications come integrated with a Dev UI, providing a number of tools that help in developing the applications in Quarkus. You can plug in such tools to your Quarkus application as extensions, such as SonataFlow extension. The SonataFlow Dev UI extension provides a console to view, manage, and start the workflow instances. Prerequisites Quarkus 2.16.9.Final is installed. Quarkus command line interface (CLI) is installed. For more information, see Installing the Quarkus CLI. Procedure In a command terminal, enter the following command to install the SonataFlow Dev UI extension: Install SonataFlow Dev UI extension quarkus ext add org.kie.kogito:kogito-quarkus-serverless-workflow-devui Executing the previous command adds the following dependency to pom.xml file of your project: SonataFlow Dev UI extension dependency in pom.xml file org.kie.kogito kogito-quarkus-serverless-workflow-devui Enter the following command to add the kogito-addons-quarkus-source-files extension that provides the source code to generate the Serverless Workflow diagram in the consoles: Install Kogito source files add-on extension quarkus ext add org.kie.kogito:kogito-addons-quarkus-source-files Executing the previous command adds the following dependency to pom.xml file of your project: source files add-on dependency in pom.xml file org.kie.kogito kogito-addons-quarkus-source-files Run the following command to start the Quarkus application: Start Quarkus application quarkus dev To access the Quarkus Dev UI, go to http://localhost:8080/q/dev/. Figure 1. SonataFlow extension in Quarkus Dev UI The SonataFlow Dev UI extension contains the following pages: Workflow Instances Workflow Definitions Monitoring Dashboards If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"SonataFlow extension in Quarkus Dev UI","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-overview","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","titles":[{"text":"Installing SonataFlow Dev UI extension","hash":"proc-install-sw-tools-extension","id":1},{"text":"Found an issue?","hash":"_found_an_issue","id":2}]},"65":{"id":65,"text":"In the SonataFlow Dev UI extension, the Workflow Definitions page displays the list of available workflows in the Kogito project and helps you to start new workflow instances either via REST or by triggering cloud events. Figure 1. Workflow Definitions page In the Workflow Definitions table you will find the list of workflows that shows the following details: Workflow Name: Displays the name of a workflow definition. Endpoint: Displays the URL to a workflow definition. Actions: Provides the Start new Workflow button to start workflow instances via REST. In the table, the toolbar provides the ability to apply filters to the table or to trigger cloud events that can start workflow instances To search for a specific workflow definition, enter the workflow’s name in the Filter by workflow name field. Click the Apply Filter button. The matching workflow definitions appear as a chip below the search field. Click the Reset to default button to clear the applied filters. To fetch newly added workflow definitions, click on the refresh icon next to the Apply Filter button. Click the Apply Filter button. The matching workflow definitions appear as a chip below the search field. To clear the applied filters, you can click the Reset to default button. Also, to fetch newly added workflow definitions, click on the refresh icon next to the Apply Filter button. Figure 2. Workflow Definitions filters Workflows can be started either by using the specific workflow REST endpoints or by triggering Cloud Events. The SonataFlow Dev UI extension allows you to use both mechanisms. If you want to start a new workflow instance using the workflow REST endpoint, just click on the Start new Workflow button of any of the workflow in the Workflow Definitions table, then you’ll be redirected to the Start New Workflow page where you could setup the data and Business Key that will be used to start the new workflow instance. Depending on your workflow configuration the page can provide different mechanisms to fill the workflow data. If your workflow is configured with a valid Data Input Schema, this page will be able to display a custom Form to help a filling the data. Figure 3. Start Workflow Page with a Form defined in the Data Input Schema If your workflow does not provide a Data Input Schema, the page will display a Code Editor that will enable you to manually fill the workflow data in JSON format. Figure 4. Start Workflow Page with a Code Editor. For more information about how to setup the Input Schema Definition on your SonataFlow, please take a look at the Input Schema for SonataFlow section. You can use the Business key text box to define a custom business key value to the workflow instance. If the Business Key field is blank, then an auto-generated business key is defined for the workflow instance. By clicking on the Start button will POST the workflow data and the Business Key to the workflow REST endpoint. If the workflow instance starts successfully, a success alert appears on the top of the screen, which contains the Go to workflow list link to navigate to the Workflow Instances page. Figure 5. Example of workflow successful starting notification If there is an issue while starting a workflow, then a failure alert appears on the top of the screen, containing the*View Details* and Go to workflow list options. The View Details enables you to view the error message. Figure 6. Example of workflow starting failure notification On the Workflow Definitions Page, the Trigger Cloud Event button enables you to start new workflow instances by using HTTP Cloud Events. This will lead you to the Trigger Cloud Event page. Once there, you will have to fill out the form with the Cloud Event information: Endpoint: Defines the Path and the HTTP method where the cloud event should be triggered. Event Type: Sets the Cloud Event type header. Event Source: Sets the Cloud Event Source header. Defaults to /local/quarkus-devUi. Business Key: Sets the new workflow instance Business Key, it will be added in the kogitobusinesskey event header. Event Custom Headers: Allows you to define custom headers to be added to the event. Event Data: Data that will be in the event in JSON format. Figure 7. Starting a workflow using a cloud event Click the Trigger button to trigger the cloud event. If the workflow instance starts successfully, a success alert appears on the top of the screen, which contains the Go to workflow list link to navigate to the Workflow Instances page. Figure 8. Example of workflow successful starting notification If there is an issue while starting a workflow, then a failure alert appears on the top of the screen, containing View Details and Go to workflow list options. The View Details enables you to view the error message. Figure 9. Example of trigger workflow failure alert If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Workflow Definitions in SonataFlow Dev UI extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-workflow-definition-page","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","titles":[{"text":"Applying filters to the Workflow Definitions table","hash":"_applying_filters_to_the_workflow_definitions_table","id":1},{"text":"Starting new Workflow instances","hash":"con-start-workflow-instances","id":2},{"text":"Starting new Workflow instances using REST","hash":"con-start-workflow-instances-rest","id":3},{"text":"Filling up the Workflow data","hash":"_filling_up_the_workflow_data","id":4},{"text":"Setting up the Business Key","hash":"_setting_up_the_business_key","id":5},{"text":"Starting the new Workflow instance","hash":"_starting_the_new_workflow_instance","id":6},{"text":"Starting Workflows using Cloud Events","hash":"con-trigger-cloud-event-page","id":7},{"text":"Found an issue?","hash":"_found_an_issue","id":8}]},"66":{"id":66,"text":"In SonataFlow Dev UI extension, the Workflow Instances page is used to monitor and manage the available instances. The Workflow Instances page displays a list of available instances and add filters to the list. Figure 1. Workflow Instances page with no instances To create a workflow instance, you can use the Workflow Definitions page. For more information, see Workflow Definitions in SonataFlow Dev UI extension. When you create a workflow instance, the instance appears in the workflow instances table on the page, containing the following details: Id: Displays the name and business key of an instance. Also, when you hover on the name of the workflow instance, a unique ID is displayed for the instance. You can click on the ID to navigate to the Workflow Details page. Status: Displays the current state of the instance. This column can contain Active, Completed, Aborted, Error, and Suspended as values. Created: Displays the time reference indicating when the instance is created. Last Update: Displays the time reference indicating when the instance is last updated. Figure 2. Workflow Instances page with an instance You can also sort the columns of the workflow instances table. On the Workflow Instances page, you can filter the list of workflow instances based on the states and business keys. By default, Active, Completed, Aborted, Error, and Suspended are applied on the list. You can use the Status drop-down to see the available states. To filter the workflow instances based on the states, select or unselect the states in the Status drop-down and click Apply filter button. To filter the workflow instances based on business keys, enter a business key in the Filter by business key field and click Apply filter button. Figure 3. Example filters applied on the workflow instances To fetch the newly added workflow instances, click on the refresh icon next to the Apply Filter button. Also, to clear the applied filters and reset to the default state, click Reset to default button. In the workflow instances table, the Id column contains a clickable link, which enables you to navigate to the Workflow Details page. The Workflow Details page contains various panels, providing detailed information about a workflow instance. Figure 4. Example Workflow Details page The Workflow Details page consists of the following panels: Serverless Workflow Diagram panel Timeline panel Details panel Variables panel Serverless Workflow Diagram panel The Serverless Workflow Diagram panel enables you to explore the workflow diagram and execution path of the workflow instance. The workflow diagram and execution path are displayed by consuming the source which is exposed through the kogito-addons-quarkus-source-files. To add the source files add-on configuration, add the following dependency to pom.xml file of your project: source-files add-on dependency in pom.xml file org.kie.kogito kogito-addons-quarkus-source-files There is a slider available in the diagram panel, which when dragged to the right displays the source code in read-only mode. Figure 5. Stunner based Diagram panel Timeline panel The Timeline panel displays the list of nodes that are related to a workflow instance. Each node in the Timeline panel consists of an icon, indicating the state of the node, such as Active, Completed, or Error. Figure 6. Timeline panel Details panel The Details panel displays the basic information related to a workflow instance, including: Name: Name of the workflow instance. Business key: Business key related to the workflow instance. State: Current state of the workflow instance. Id: Unique ID of the workflow instance. Start: Time reference indicating when the workflow instance is started. Last Updated: Time reference indicating when the workflow instance is last updated. End: Time reference indicating when the workflow instance is completed. Figure 7. Details panel Variables panel The Variables panel displays the data of a workflow in the form of JSON. Figure 8. Variables panel The Workflow Instances page also allows you to send HTTP Cloud Events to the active workflow instances that are waiting for an event to advance. To do so you just have to click on the Trigger Cloud Event button that will lead you to the Trigger Cloud Event page. Once there, you will have to fill out the form with the Cloud Event information: Endpoint: Defines the Path and the HTTP method where the cloud event should be triggered. Event Type: Sets the Cloud Event type header. Event Source: Sets the Cloud Event Source header. Defaults to /local/quarkus-devUi. Instance Id: Sets the id of the workflow instance that must receive the event, it will be added in the kogitoprocrefid event header. Event Data: Data that will be in the event in JSON format. Figure 9. Sending a Cloud Event to an active workflow instance. Additionally, you can use the Send Cloud Event action present available on the instance actions kebab. By using it you will be lead to the Trigger Cloud Event page, but in this case the Instance Id field will be already filled with the selected workflow id. Figure 10. Send Cloud Event button in the actions kebab. To enable the actions kebab, make sure your project is configured to have the kogito-addons-quarkus-process-management dependency on its pom.xml file, like: org.kie.kogito kogito-addons-quarkus-process-management Click the Trigger button to trigger the cloud event. If the event is successfully triggered, a success alert appears at the top of the screen, which contains the Go to workflow list link to navigate to the Workflow Instances page. Figure 11. Example of cloud event successfully sent notification. If there is an issue while sending the event, then a failure alert appears at the top of the screen, containing View Details and Go to workflow list options. The View Details enables you to view the error message. Figure 12. Example cloud event unsuccessfully sent notification. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Workflow Instances in SonataFlow Dev UI extension","component":"serverlessworkflow","version":"1.43.0.Final","name":"quarkus-dev-ui-workflow-instances-page","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","titles":[{"text":"Opening the Workflow instance details","hash":"_opening_the_workflow_instance_details","id":1},{"text":"Sending Cloud Events to active Workflow Instances","hash":"_sending_cloud_events_to_active_workflow_instances","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"67":{"id":67,"text":"You can deploy your SonataFlow projects to an OpenShift instance using the OpenShift integration. The OpenShift integration allows you to test your implementations in a live environment. The deployments described in this document are for development purposes, but not for production. You can deploy your first SonataFlow project to an OpenShift instance and run the project in a live environment. Prerequisites OpenShift integration is configured correctly. For more information, see Integrating your SonataFlow project with OpenShift using Serverless Logic Web Tools. Procedure Create a project using an example application in GitHub. You can use the serverless-workflow-greeting-quarkus example application, which does not contain external dependencies and is easy to test and comprehend. The serverless-workflow-greeting-quarkus example application contains a single operation state with one action, sending request to the greeting function. In the example application, the workflow data is assumed to be the name of the person to greet, and the result is the greeting for the person. The result is added to the state data, which later becomes the workflow data output. On the editor page, click Try on OpenShift button. On the context menu, click Deploy \"greetings\" (SonataFlow). A modal appears, displaying the following deployment options: Deploy as a project: This option is available if your current workspace contains the entire project structure including a single pom.xml file. If Deploy as a project option is disabled, a pre-built image container, containing a Quarkus project is used and the workflow files are placed in the src/main/resources folder of the project. In this case, ensure that the workflow files do not have other dependencies as the dependencies are not included in the deployment. If Deploy as a project option is enabled, all the workflow files are deployed as-is, indicating that no project template is used. Therefore, ensure that the project is deployable. Upload OpenAPI spec to Service Registry: After a workflow is deployed, an OpenAPI specification is available in the deployed service. When you check this option, the Serverless Logic Web Tools fetches the OpenAPI specification, and when ready, the OpenAPI specification is uploaded to your configured service registry. To use this option, you need to configure your service account and service registry on the Settings page. To configure the service account and service registry, see Integrating with Red Hat OpenShift Application and Data Services. Uncheck all options and click Confirm. A pop-up appears displaying Your deployment has been successfully started and will be available shortly. Please do not close this browser tab until the operation is completed. message. Clicking on the OpenShift deployments icon shows your deployment status. The deployment process takes a few minutes since a build needs to be completed before the services are active. OpenShift deployment status After the deployment of your SonataFlow project is successful, you can verify various information about the deployed service. Prerequisites OpenShift integration is configured correctly. For more information, see Integrating your SonataFlow project with OpenShift using Serverless Logic Web Tools. Your SonataFlow project is deployed successfully. Deployed project must be deployed using the Deploy as a project option as unchecked, as the deployment page is only available using the pre-built image container. If the option Deploy as a project option is checked the tool opens the index.html file your project provides, if any. Procedure Click on the OpenShift deployments icon to view a list of deployments. If your deployment is successful (listed with ), you can click on it and access the deployment page to check the Swagger UI, Open API specification, and Metrics page using DashBuilder. Serverless deployment page If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Deploying your SonataFlow projects using Serverless Logic Web Tools","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-deploy-projects","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","titles":[{"text":"Deploying your first SonataFlow project","hash":"proc-deploy-first-serverless-project-serverless-logic-web-tools","id":1},{"text":"Verifying the deployment status of your first project","hash":"proc-verify-deploy-status-serverless-logic-web-tools","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"68":{"id":68,"text":"The Serverless Logic Web Tools implements a web version of a Git client, enabling you to clone, create, commit, push, and pull repositories. This process synchronizes your workspaces remotely. This document describes how you can configure the integration and synchronize your projects. You can generate a token from your GitHub account and add the token to the Serverless Logic Web Tools. Prerequisites You have an account in GitHub. Procedure Go to Serverless Logic Web Tools web application, and click the Cogwheel (⚙️) on the top-right corner of the screen. Go to the GitHub tab. In the GitHub tab, click the Add access token button and a window will be shown. Click Create a new token option. Ensure that you select the repo option. Optionally, select gist, which enables you to import and update gists. Copy the generated token and paste it into the Token field in Serverless Logic Web Tools GitHub Settings. The contents of the tab are updated and displays that you are signed into the GitHub and contains all the required permissions. After your GitHub token is set, you can synchronize your workspaces with remote repositories. Prerequisites Your GitHub token is configured in the Serverless Logic Web Tools. For more information, see Setting your GitHub token in Serverless Logic Web Tools. Procedure In the Serverless Logic Web Tools web application, create or open a workspace. Add or edit the existing files in the workspace. Click Share → Github: Create Repository. Name your repository and set the repository as Public or Private. (Optional) Select the Use Quarkus Accelerator to create a repository with a base Quarkus project and move the workspace files to src/main/resources folder. Figure 1. Create a repository for your workspace Click Sync → Push to update the remote repository with your local changes. To get new updates from the remote repository, click Sync → Pull. Currently, Serverless Logic Web Tools cannot resolve the merge conflicts. Therefore, ensure that you always pull changes before working on your files. You can import a workspace from GitHub in Serverless Logic Web Tools when you need to work from another computer or need to use someone else’s workspace. Prerequisites Your GitHub token is configured in the Serverless Logic Web Tools. For more information, see Setting your GitHub token in Serverless Logic Web Tools. You have a repository containing workflow files. Procedure Go to GitHub, find the repository with your project, and copy the repository URL. In Serverless Logic Web Tools web application, paste the repository URL in the Import → From URL field and click Clone. The page loads your imported project, defaulting to a workflow file, if present. If applicable, you can push to the imported repository by clicking on the Sync → Push. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Integrating your SonataFlow project in GitHub using Serverless Logic Web Tools","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-github-integration","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","titles":[{"text":"Setting your GitHub token in Serverless Logic Web Tools","hash":"proc-setting-github-token-serverless-logic-web-tools","id":1},{"text":"Synchronizing your workspaces with GitHub","hash":"proc-sync-workspace-github-serverless-logic-web-tools","id":2},{"text":"Importing a workspace from GitHub","hash":"proc-import-workspace-github-serverless-logic-web-tools","id":3},{"text":"Found an issue?","hash":"_found_an_issue","id":4}]},"69":{"id":69,"text":"You can integrate your SonataFlow project with Red Hat OpenShift. OpenShift is an enterprise-ready Kubernetes container platform, enabling your SonataFlow projects to be deployed and tested online. The Extended Services tool is required to proxy requests to an OpenShift instance. Therefore, setting the Extended Services enables you to deploy and monitor your SonataFlow projects. Procedure In the Serverless Logic Web Tools web application, click the Cogwheel (⚙️) on the top-right corner and go to the Extended Services tab. In case you are not connected to Extended Services, you see You are not connected to Extended Services. Click to setup message. Click on the link in the message. A window appears containing your current operating system as selected and a link to download the latest version of Extended Services. Download the Extended Services and execute it. You might need to grant permissions to run the file depending on your operating system and settings. If you are using macOS, you might encounter the \"Extended Services\" is damaged and can’t be opened. You should move it to Bin error message while running the \"Extended Services\" application. This is due to the overeager approach towards security by macOS and you can fix it by moving the \"Extended Services\" application out of quarantine. You can execute the xattr -d com.apple.quarantine /Applications/KIE\\ Sandbox\\ Extended\\ Services.app command to achieve this. After executing the Extended Services the content in the Extended Services is updated and displays that you are connected to the Extended Services. After setting the Extended Services, you can connect to your OpenShift instance to deploy your SonataFlow projects with Serverless Logic Web Tools. Prerequisites Extended Services tool is installed and running. OpenShift instance is active. You can create a free developer sandbox. For more information, see OpenShift Developer Sandbox. Procedure Log in to your OpenShift instance console interface. In the OpenShift instance console interface, you need your OpenShift project name (also known as namespace), API server, and an access token. For the OpenShift project name, go to the Topology tab and in the top-left corner you see your project name. Figure 1. OpenShift project name in OpenShift instance console To obtain the API server and access token, click on your username and Copy login command. A new page opens containing your new API token along with oc cli login command. From the oc cli command, copy the value of --server=. Figure 2. OpenShift access token and API server Go to the Serverless Logic Web Tools web application, click the Cogwheel (⚙️) on the top-right corner and go to the OpenShift tab. Click the Add connection button and a window will be shown. Enter your OpenShift project name in the Namespace (project) field. Enter the value copied value of --server flag in the Host field. Enter the value of API token in the Token field. Click Connect. If the entered values are correct, then the tab updates and displays You’re connected to OpenShift message. After connecting to OpenShift, you are ready to deploy your SonataFlow projects using Serverless Logic Web Tools. For more information about deploying your projects, see Deploying your SonataFlow projects using Serverless Logic Web Tools. If your OpenShift instance uses self-signed certificates, then you must enable the InsecureSkipVerify on Extended Services. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Integrating your SonataFlow project with OpenShift using Serverless Logic Web Tools","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-openshift-integration","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","titles":[{"text":"Setting Extended Services","hash":"proc-setting-kie-sandbox-extended-services-serverless-logic-web-tools","id":1},{"text":"Connecting to OpenShift instance using Serverless Logic Web Tools","hash":"proc-connecting-openshift-instance-serverless-logic-web-tools","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"70":{"id":70,"text":"The Serverless Logic Web Tools is a web application that enables you to create and synchronize your SonataFlow, decision files, and Dashbuilder files in a single interface. Also, the Serverless Logic Web Tools application provides the integrations that are needed to deploy and test the SonataFlow models in development mode. Figure 1. Home page of Serverless Logic Web Tools The Serverless Logic Web Tools provides three different editors for your projects, including SonataFlow editor for .sw.json or .sw.yaml|yml files Serverless Decision editor for .yard.yaml|yml files Dashbuilder editor for dash.yaml|yml files You can start by creating a new model from scratch or using one of the samples provided. Procedure Go to the Serverless Logic Web Tools web application. On the Home page, select the type of model you want to create and click the button corresponding to the file type you wish such as JSON or YAML. Figure 2. Create section in Serverless Logic Web Tools A new workspace is created, containing a single file named as Untitled of the selected type. Click on the name to rename the file. Edit your workflow file, which updates the preview on the right-side of the editor. The workflow files in Serverless Logic Web Tools are saved automatically after each change. The files are persisted in the browser, but you can synchronize the file using GitHub integration. For more information about GitHub integration, see Integrating your SonataFlow project in GitHub using Serverless Logic Web Tools. Integrating your SonataFlow project with OpenShift using Serverless Logic Web Tools Integrating with Red Hat OpenShift Application and Data Services Deploying your SonataFlow projects using Serverless Logic Web Tools If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Serverless Logic Web Tools","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-overview","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","titles":[{"text":"Creating a workflow model in Serverless Logic Web Tools","hash":"proc-create-workflow-model-web-tools","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"71":{"id":71,"text":"Some of the features in Serverless Logic Web Tools require integration with Red Hat OpenShift Application and Data Services. Consider uploading OpenAPI specifications to a service registry and fetching its service functions as examples of integration with Red Hat OpenShift Application and Data Services. This document describes how you can configure the required settings to complete the integration with Red Hat OpenShift Application and Data Services. You can create or use a service account from your Red Hat OpenShift Application and Data Services console and add the service account to the Serverless Logic Web Tools. Prerequisites You have access to the Red Hat OpenShift Application and Data Services console. Procedure To create a service account in Red Hat Openshift Application and Data Services, perform the following steps: You can skip this step if you already have a service account. Go to Service Accounts | Red Hat OpenShift Application and Data Services. Click Create service account. In the Create a service account window, enter a service account name in the Short description field. Click Create. A modal displaying your Client ID and Client Secret appears. Copy and save the Client ID and Client Secret. Check the I have copied the client ID and secret checkbox and click Close. If you already have a service account, find your Client ID and Client Secret. In the Serverless Logic Web Tools, click the Cogwheel (⚙️) on the top-right corner and go to the Service Account tab. Click on the Add service account button and a window will be shown. Enter your Client ID and Client Secret in the respective fields. Click Apply. The content in the Service Account tab updates and displays Your Service Account information is set message. You can create or use a Service Registry instance from your Red Hat OpenShift Application and Data Services console and add the Service Registry to Serverless Logic Web Tools. Prerequisites You have access to the Red Hat OpenShift Application and Data Services console. You have created a service account. For information about creating a service account, see Creating a service account in Red Hat OpenShift application and Data Services. Procedure To create a Service Registry instance in Red Hat Openshift Application and Data Services console, perform the following steps: You can skip this step if you already have a Service Registry instance. Go to Service Registry | Red Hat OpenShift Application and Data Services. Click Create Service Registry instance button. In the Create a Service Registry instance window, enter a Service Registry instance name and click Create. The list of Service Registry instances updates with your instance. Find the Service Registry instance you created in the list and click on the instance. Go to the Settings tab and click on Grant access. In the drop-down, select the service account you created in the previous procedure. Select a role for your service account. You must select the role as Manager or Administrator to have the read and write access. Click Save. Click on the menu on the top-right corner of the screen. Click Connection. A drawer opens containing the required connection and authentication information. Copy the value of Core Registry API. If you already have a Service Registry, find the value of Core Registry API of your Service Registry. In the Serverless Logic Web Tools web application, click the Cogwheel (⚙️) on the top-right corner and go to the Service Registry tab. Click on the Add service registry button and a window will be shown. Enter a name for your registry. You can enter the same name that you used while creating the Service Registry instance. Enter the value of Core Registry API and click Apply. The content in the Service Registry tab updates and displays Your Service Registry information is set message. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Integrating with Red Hat OpenShift Application and Data Services","component":"serverlessworkflow","version":"1.43.0.Final","name":"serverless-logic-web-tools-redhat-application-services-integration","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","titles":[{"text":"Creating a service account in Red Hat OpenShift application and Data Services","hash":"proc-create-service-account-serverless-logic-web-tools","id":1},{"text":"Creating a Service Registry in Red Hat OpenShift application and Data Services","hash":"proc-create-service-registry-serverless-logic-web-tools","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"72":{"id":72,"text":"The Google Chrome extension for the Serverless Workflow editor enables you to view and edit CNCF Serverless Workflow specification files in GitHub. This document describes how to install and use the Chrome extension for Serverless Workflow editor on GitHub. You can install the Chrome extension for the Serverless Workflow editor to view and edit the workflow specification files in GitHub. Prerequisites Google Chrome is installed. Procedure You can install the Chrome extension using one of the following methods: Go to Chrome web store: Go to the Serverless Workflow Editor for GitHub extension page in Chrome web store and click Add to Chrome. Figure 1. Serverless Workflow Chrome extension page Download the ZIP file: Download and extract the chrome_extension_serverless_workflow_editor_VERSION.zip file from the kie-tools releases page in GitHub. Go to Customize and control → Settings → Extensions → Load unpacked in the upper-right corner in Chrome. Open the extracted dist folder. The Chrome extension for Serverless Workflow editor is successfully installed. After installing the Chrome extension for the Serverless Workflow editor, you can use the editor to edit and view the workflow files in GitHub. Prerequisites You have installed the Serverless Workflow editor extension in Chrome. For more information, see Installing the Chrome extension for Serverless Workflow editor on GitHub. Procedure Create a workflow file (.sw.json or .sw.yaml). Push the created workflow file to GitHub, or you can go to the GitHub page and click on the workflow file to open in the editor. Figure 2. Serverless Workflow file in GitHub The Serverless Workflow editor opens in read-only mode. To change the read-only mode to edit mode, click the pencil icon on the top-right corner of the screen. You can switch to the full-screen mode. Also, you can hide the editor and view the source code using See as source button. Make changes to the source code, add a commit message. You can either commit the changes to a branch directly or create a new branch for pull request. If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Chrome extension for Serverless Workflow editor on GitHub","component":"serverlessworkflow","version":"1.43.0.Final","name":"swf-editor-chrome-extension","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","titles":[{"text":"Installing the Chrome extension for Serverless Workflow editor on GitHub","hash":"proc-install-chrome-extension-sw-editor","id":1},{"text":"Using the Chrome extension for Serverless Workflow editor on GitHub","hash":"proc-using-chrome-extension-sw-editor","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"73":{"id":73,"text":"You can use the Serverless Workflow editor to edit the CNCF Serverless Workflow specification files in the code editor and view the workflow diagram in the diagram visualizer. When you make changes to the specification files in the editor, you see the workflow diagram is updated with the new changes. Figure 1. Serverless Workflow editor The Serverless Workflow editor contains the following main features: Reload diagram dynamically: In the Serverless Workflow editor, when you make a change in the code editor, the workflow diagram updates automatically. SVG generation: In the Serverless Workflow editor, you can save a workflow diagram as .svg file in the workspace. Auto-completion based on the context: The Serverless Workflow editor contains the capability of auto-completing the code based on the context. Validation: The Serverless Workflow editor performs validation on the workflow files and provides an error-free experience. The editor performs validation using JSON schema to the workflow file structure but not the values, and auto-completion works with JSON but not with YAML. The following extensions are provided that you can use to design the workflow files: VS Code extension Chrome GitHub extension You can also try it at the Serverless Logic Web Tools. CNCF Serverless Workflow specification If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"Serverless Workflow editor","component":"serverlessworkflow","version":"1.43.0.Final","name":"swf-editor-overview","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-overview.html","titles":[{"text":"Features in Serverless Workflow editor","hash":"ref-sw-editor-features","id":1},{"text":"Additional resources","hash":"_additional_resources","id":2},{"text":"Found an issue?","hash":"_found_an_issue","id":3}]},"74":{"id":74,"text":"The VS Code extension for the Serverless Workflow editor enables you to view and edit CNCF Serverless Workflow specification files in your local projects. This document describes how to install and use the VS Code extension for Serverless Workflow editor, along with how to load OpenAPI files using the extension. Using the VS Code extension for Serverless Workflow editor, enables you to view and edit the workflow specification files in your local projects. Figure 1. Serverless Workflow VS Code extension Prerequisites Visual Studio Code 1.67.0 or later is installed. Procedure You can install the VS Code extension for Serverless Workflow editor using one of the following methods: Go to Visual Studio Marketplace: Go to KIE Serverless Workflow Editor extension page in Visual Studio Marketplace and click Install. Figure 2. KIE Serverless Workflow Editor in Visual Studio Marketplace Download VSIX file: Download the latest SonataFlow VS Code extension VSIX file from the kie-tools releases page in GitHub. Click Install from VSIX option from the extensions menu and install the serverless_workflow_vscode_extension_VERSION.vsix file in VS Code. Figure 3. Install VS Code extension using VSIX Once installation is complete, you can create a workflow file or open an existing workflow file in VS Code. When you open a workflow file, VS Code uses the extension automatically. The Serverless Workflow editor contains the following main features: Reload diagram dynamically: In the Serverless Workflow editor, when you make a change in the code editor, the workflow diagram updates automatically. SVG generation: In the Serverless Workflow editor, you can save a workflow diagram as .svg file in the workspace. Auto-completion based on the context: The Serverless Workflow editor contains the capability of auto-completing the code based on the context. The Serverless Workflow VS Code extension parses the OpenAPI specification files and provides a list of function definitions in the auto-complete dialog box. Figure 4. Function definition in auto-complete dialog box Once you select an option in the auto-complete dialog box, a function definition is added to the functions array with proper settings as shown in the following example: Figure 5. Example of function definition object When the function definition is added, the function is available for auto-completion in the function reference section as shown in the following example: Figure 6. Example of a function reference Once you select an option from the auto-complete dialog box, a function reference is added with proper reference name and attributes. Validation: The Serverless Workflow editor performs validation on the workflow files and provides an error-free experience. The VS Code extension for Serverless Workflow editor supports the following commands: Table 1. Supported commands in Serverless Workflow VS Code extension Command Description Serverless Workflow: Generate SVG without any notification Generates an SVG file of a workflow diagram in the workspace next to the workflow file. Serverless Workflow: Open as Diagram (to the side) Opens the workflow diagram to the right side of the editor. Serverless Workflow: Setup automatically open Diagram Editor alongside Text Editor Allows you to set whether or not a workflow diagram needs to be opened by default alongside the editor. This operation provides two options, including Open automatically and Do not open. Serverless Workflow: Configure Service Registries Opens the service registries configurations on the Extension Settings page. Serverless Workflow: Refresh Service Registries Refreshes the artifact list of service registries. Serverless Workflow: Log in Service Registries Triggers a login action of service registries. To trigger a command in VS Code, go to View → Command Palette… or you can press Ctrl+Shift+P to open the command palette. Enter Serverless Workflow in the search tab to see the list of supported commands. Figure 7. Command Palette in VS Code You can navigate to File → Preferences → Settings and configure the following settings for the Serverless Workflow editor: Table 2. Settings in Serverless Workflow VS Code extension Setting Description Automatically Open Diagram Editor Alongside Text Editor This setting enables the editor to open a workflow diagram when a workflow is being edited. The available options include: Ask next time (default) Do not open Open automatically Run On Save This setting executes a VS Code command when you save an edited workflow file. The default VS Code command that is executed is extension.kogito.swf.silentlyGenerateSvg (generate a diagram SVG). Service Registries This setting provides access to the configuration of service registries in the setting.json file. Should Reference Service Registry Functions With Urls When automatically completing the functions in the service registry, this setting specifies whether a function operation uses the URL of OpenAPI specification file or uses the local path, where the file is downloaded (Specs Storage Path). Specs Storage Path This setting enables you to define or edit the path of OpenAPI specification file. The default value is specs folder. Svg Filename Template This setting enables you to set a file name template, which can be used while generating the diagram SVG file. The default value is fileName.svg. Svg File Path This setting enables you to set a path, where the generated diagram SVG file will be stored. Figure 8. Settings page in VS Code extension The VS Code extension for Serverless Workflow editor can use OpenAPI specification files that are stored locally in the specs folder. Also, the OpenAPI specification files can be stored in remote service registries, providing auto-complete feature for function definitions. For more information about OpenAPI specification files path, see Serverless Workflow editor settings. The VS Code extension configures a list of service registries, which enables the Serverless Workflow editor to load OpenAPI specification files that are stored in the external registries. Prerequisites VS Code extension for the Serverless Workflow editor is installed. For more information about installing the VS Code extension, see Installing the VS Code Extension for Serverless Workflow editor. Procedure Open your workflow file in VS Code IDE and select the Setup Service Registries option. Navigate to the settings.json file. Add the list of service registries in the settings.json file using the kogito.swf.serviceRegistries key, which matches the following JSON schema: Service Registry Schema { \"type\": \"object\", \"properties\": { \"registries\": { \"type\": \"array\", \"items\": { \"type\": \"object\", \"properties\": { \"name\": { \"type\": \"string\" }, (1) \"url\": { (2) \"type\": \"string\", \"format\": \"uri\", \"pattern\": \"^https?://?[-A-Za-z0-9+&@#/%?=_!:.]+[-A-Za-z0-9+&@#/%=~_|]\" }, \"authProvider\": { (3) \"type\": \"string\", \"enum\": [\"none\", \"red-hat-account\"], \"default\": \"none\" } }, \"required\": [\"name\", \"url\", \"authProvider\"] } } } } In the registries array, each item must contain the following properties: 1 name: Identifier provided for a registry. 2 url: URL for the REST API of the remotes service registry, such as Apicurio registry. 3 authProvider: Type of authentication for the remote service registry. This property contains values as none (no authentication) and red-hat-account (log in with your Red Hat account). Following is an example of a service registry configuration: Example of service registry configuration { \"kogito.swf.serviceRegistries\": { \"registries\": [ { \"name\": \"openshift\", \"url\": \"https://{url-to-openshift-registry}/apis/registry/v2\", \"authProvider\": \"red-hat-account\" }, { \"name\": \"local\", \"url\": \"https://{url-to-local-registry}/apis/registry/v2\", \"authProvider\": \"none\" }, ] } } To access the service registry settings in the VS Code, click on the Setup Service Registries option and use the Serverless Workflow: Configure Service Registries command. You can use the service registries for auto-completion feature in the Serverless Workflow VS Code extension. Prerequisites The following prerequisites are for the service registries that require Red Hat authentication: You have a Red Hat account with access to Red Hat Hybrid Cloud Console. Red Hat authentication extension is installed. Procedure In a workflow file, click the Setup Service Registries options and navigate to the settings.json file to configure the service registries. Figure 9. Function definition section with Setup Service Registries option Once you configure the service registry settings, the function definition section in the workflow file displays a Log in Service Registries button. The Log in Service Registries button appears when the function definition is configured to a remote service registry, such as Apicurio registry. Click on the Log in Service Registries option. You are redirected to the Red Hat login (SSO) page. Log in with your Red Hat credentials to connect to the remote service registry. You are redirected to the Red Hat login (SSO) page only if the authProvider property contains the value of red-hat-account in the service registry settings. Figure 10. Function definition section with Log in Service Registries option After logging in, use Ctrl+Space in the function definition section to view the list of available functions. Figure 11. Example of function definition section auto-complete dialog box Click on a function to auto-complete the function definition as shown in the following example: Figure 12. Example of an auto-completed function definition After selecting an option in the auto-complete dialog box, the OpenAPI specification file is downloaded into the specs folder. The downloaded OpenAPI specification file follows the REGISTRY-NAME_OPERATION-NAME_VERSION format. Figure 13. Downloaded OpenAPI specification file To fetch the new changes in the service registry, click Refresh Service Registries. Figure 14. Refresh Service Registries button in function definition section To create a new function definition object, click Add function. You can also validate the auto-completion using the JSON schema to the workflow file structure. The Serverless Workflow editor performs validation using JSON schema to the workflow file structure but not the values, and auto-completion works with JSON but not with YAML. To view the validation warnings and errors, go to View → Problems or press Ctrl+Shift+M to open the Problems tab. Figure 15. Errors and warnings in Problems tab If you find an issue or any misleading information, please feel free to report it here. We really appreciate it!","title":"VS Code extension for Serverless Workflow editor","component":"serverlessworkflow","version":"1.43.0.Final","name":"swf-editor-vscode-extension","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","titles":[{"text":"Installing the VS Code Extension for Serverless Workflow editor","hash":"proc-install-vscode-extension-sw-editor","id":1},{"text":"Features in Serverless Workflow editor","hash":"_features_in_serverless_workflow_editor","id":2},{"text":"Supported commands in Serverless Workflow VS Code extension","hash":"ref-supported-commands-vscode-extension","id":3},{"text":"Serverless Workflow editor settings","hash":"ref-sw-editor-settings","id":4},{"text":"Enabling VS Code extension to load OpenAPI files from remote service registries","hash":"_enabling_vs_code_extension_to_load_openapi_files_from_remote_service_registries","id":5},{"text":"Using service registries for auto-completion","hash":"_using_service_registries_for_auto_completion","id":6},{"text":"Found an issue?","hash":"_found_an_issue","id":7}]}},"components":{},"componentVersions":{"serverlessworkflow/main":{"displayVersion":"snapshot","title":"SonataFlow Guides","version":"main","name":"serverlessworkflow","prerelease":"snapshot","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.10.Final","quarkus_platform_version":"2.16.10.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.67.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/main/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/main/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/main/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating a Quarkus Workflow Project","url":"/serverlessworkflow/main/getting-started/create-your-first-workflow-service.html","urlType":"internal"}]},{"content":"Core Concepts","items":[{"content":"Serverless Workflow Specification","url":"/serverlessworkflow/main/core/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Events","url":"/serverlessworkflow/main/core/handling-events-on-workflows.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/main/core/working-with-callbacks.html","urlType":"internal"},{"content":"jq Expressions","url":"/serverlessworkflow/main/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/main/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/main/core/configuration-properties.html","urlType":"internal"},{"content":"Input Schema","url":"/serverlessworkflow/main/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom Functions","url":"/serverlessworkflow/main/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts","url":"/serverlessworkflow/main/core/timeouts-support.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/main/core/working-with-parallelism.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/main/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/main/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/main/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/main/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"OpenAPI","url":"/serverlessworkflow/main/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal","items":[{"content":"Advanced Configuration","url":"/serverlessworkflow/main/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/main/service-orchestration/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"gRPC","url":"/serverlessworkflow/main/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Event Orchestration","items":[{"content":"AsyncAPI","url":"/serverlessworkflow/main/eventing/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/main/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Quarkus","items":[{"content":"Apache Kafka","url":"/serverlessworkflow/main/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Knative Eventing","url":"/serverlessworkflow/main/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"}]}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/main/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/main/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/main/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/main/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/main/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/main/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/main/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Quarkus","items":[{"content":"PostgreSQL Configuration","url":"/serverlessworkflow/main/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"PostgreSQL Database Migration","url":"/serverlessworkflow/main/persistence/postgresql-flyway-migration.html","urlType":"internal"},{"content":"Integration Tests with PostgreSQL","url":"/serverlessworkflow/main/persistence/integration-tests-with-postgresql.html","urlType":"internal"}]}]},{"content":"Cloud","url":"/serverlessworkflow/main/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/main/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/main/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/main/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/main/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/main/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/main/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/main/cloud/operator/known-issues.html","urlType":"internal"},{"content":"Migration Guide","url":"/serverlessworkflow/main/cloud/operator/migration-guide.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building Workflow Images","url":"/serverlessworkflow/main/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying on Minikube","url":"/serverlessworkflow/main/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying on Kubernetes","url":"/serverlessworkflow/main/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Deploying on OpenShift","url":"/serverlessworkflow/main/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Service Discovery","url":"/serverlessworkflow/main/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/main/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/main/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/main/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/main/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/main/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/main/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/main/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/main/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/main/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/main/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/main/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.43.0.Final":{"displayVersion":"1.43","title":"SonataFlow Guides","version":"1.43.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.9.Final","quarkus_platform_version":"2.16.9.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.67.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.43.0","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.43.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/latest/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/latest/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating a Quarkus Workflow Project","url":"/serverlessworkflow/latest/getting-started/create-your-first-workflow-service.html","urlType":"internal"}]},{"content":"Core Concepts","items":[{"content":"Serverless Workflow Specification","url":"/serverlessworkflow/latest/core/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Events","url":"/serverlessworkflow/latest/core/handling-events-on-workflows.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/latest/core/working-with-callbacks.html","urlType":"internal"},{"content":"jq Expressions","url":"/serverlessworkflow/latest/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/latest/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/latest/core/configuration-properties.html","urlType":"internal"},{"content":"Input Schema","url":"/serverlessworkflow/latest/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom Functions","url":"/serverlessworkflow/latest/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts","url":"/serverlessworkflow/latest/core/timeouts-support.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/latest/core/working-with-parallelism.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/latest/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/latest/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"OpenAPI","url":"/serverlessworkflow/latest/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal","items":[{"content":"Advanced Configuration","url":"/serverlessworkflow/latest/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/latest/service-orchestration/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"gRPC","url":"/serverlessworkflow/latest/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Event Orchestration","items":[{"content":"AsyncAPI","url":"/serverlessworkflow/latest/eventing/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/latest/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Quarkus","items":[{"content":"Apache Kafka","url":"/serverlessworkflow/latest/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Knative Eventing","url":"/serverlessworkflow/latest/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"}]}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/latest/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/latest/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/latest/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/latest/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/latest/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/latest/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/latest/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Quarkus","items":[{"content":"PostgreSQL Configuration","url":"/serverlessworkflow/latest/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"PostgreSQL Database Migration","url":"/serverlessworkflow/latest/persistence/postgresql-flyway-migration.html","urlType":"internal"},{"content":"Integration Tests with PostgreSQL","url":"/serverlessworkflow/latest/persistence/integration-tests-with-postgresql.html","urlType":"internal"}]}]},{"content":"Cloud","url":"/serverlessworkflow/latest/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/latest/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/latest/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/latest/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/latest/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/latest/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/latest/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/latest/cloud/operator/known-issues.html","urlType":"internal"},{"content":"Migration Guide","url":"/serverlessworkflow/latest/cloud/operator/migration-guide.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building Workflow Images","url":"/serverlessworkflow/latest/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying on Minikube","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying on Kubernetes","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Deploying on OpenShift","url":"/serverlessworkflow/latest/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Service Discovery","url":"/serverlessworkflow/latest/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/latest/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/latest/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/latest/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/latest/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/latest/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/latest/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/latest/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/latest/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/latest/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/latest/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/latest/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.42.0.Final":{"displayVersion":"1.42","title":"SonataFlow Guides","version":"1.42.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.8.Final","quarkus_platform_version":"2.16.8.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.67.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.42.0","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.42.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.42.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.42.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating a Quarkus Workflow Project","url":"/serverlessworkflow/1.42.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"}]},{"content":"Core Concepts","items":[{"content":"Serverless Workflow Specification","url":"/serverlessworkflow/1.42.0.Final/core/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Events","url":"/serverlessworkflow/1.42.0.Final/core/handling-events-on-workflows.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/1.42.0.Final/core/working-with-callbacks.html","urlType":"internal"},{"content":"jq Expressions","url":"/serverlessworkflow/1.42.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.42.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.42.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input Schema","url":"/serverlessworkflow/1.42.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom Functions","url":"/serverlessworkflow/1.42.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts","url":"/serverlessworkflow/1.42.0.Final/core/timeouts-support.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.42.0.Final/core/working-with-parallelism.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/1.42.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"OpenAPI","url":"/serverlessworkflow/1.42.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal","items":[{"content":"Advanced Configuration","url":"/serverlessworkflow/1.42.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/1.42.0.Final/service-orchestration/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"gRPC","url":"/serverlessworkflow/1.42.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Event Orchestration","items":[{"content":"AsyncAPI","url":"/serverlessworkflow/1.42.0.Final/eventing/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.42.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Quarkus","items":[{"content":"Apache Kafka","url":"/serverlessworkflow/1.42.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Knative Eventing","url":"/serverlessworkflow/1.42.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"}]}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/1.42.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/1.42.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/1.42.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Quarkus","items":[{"content":"PostgreSQL Configuration","url":"/serverlessworkflow/1.42.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"PostgreSQL Database Migration","url":"/serverlessworkflow/1.42.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"},{"content":"Integration Tests with PostgreSQL","url":"/serverlessworkflow/1.42.0.Final/persistence/integration-tests-with-postgresql.html","urlType":"internal"}]}]},{"content":"Cloud","url":"/serverlessworkflow/1.42.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/known-issues.html","urlType":"internal"},{"content":"Migration Guide","url":"/serverlessworkflow/1.42.0.Final/cloud/operator/migration-guide.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building Workflow Images","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying on Minikube","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying on Kubernetes","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Deploying on OpenShift","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Service Discovery","url":"/serverlessworkflow/1.42.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/1.42.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/1.42.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/1.42.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/1.42.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/1.42.0.Final/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/1.42.0.Final/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/1.42.0.Final/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/1.42.0.Final/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/1.42.0.Final/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/1.42.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/1.42.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.41.0.Final":{"displayVersion":"1.41","title":"Kogito Serverless Workflow Guides","version":"1.41.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito Serverless Workflow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.7.Final","quarkus_platform_version":"2.16.7.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.66.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.41.0","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.41.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.41.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.41.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating a Quarkus Workflow Project","url":"/serverlessworkflow/1.41.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"}]},{"content":"Core Concepts","items":[{"content":"Serverless Workflow Specification","url":"/serverlessworkflow/1.41.0.Final/core/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Events","url":"/serverlessworkflow/1.41.0.Final/core/handling-events-on-workflows.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/1.41.0.Final/core/working-with-callbacks.html","urlType":"internal"},{"content":"jq Expressions","url":"/serverlessworkflow/1.41.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.41.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.41.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input Schema","url":"/serverlessworkflow/1.41.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom Functions","url":"/serverlessworkflow/1.41.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts","url":"/serverlessworkflow/1.41.0.Final/core/timeouts-support.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.41.0.Final/core/working-with-parallelism.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/1.41.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"OpenAPI","url":"/serverlessworkflow/1.41.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal","items":[{"content":"Advanced Configuration","url":"/serverlessworkflow/1.41.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Callbacks","url":"/serverlessworkflow/1.41.0.Final/service-orchestration/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"gRPC","url":"/serverlessworkflow/1.41.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Event Orchestration","items":[{"content":"AsyncAPI","url":"/serverlessworkflow/1.41.0.Final/eventing/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.41.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Quarkus","items":[{"content":"Apache Kafka","url":"/serverlessworkflow/1.41.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Knative Eventing","url":"/serverlessworkflow/1.41.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"}]}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/1.41.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/1.41.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/1.41.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Quarkus","items":[{"content":"PostgreSQL Configuration","url":"/serverlessworkflow/1.41.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"PostgreSQL Database Migration","url":"/serverlessworkflow/1.41.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"},{"content":"Integration Tests with PostgreSQL","url":"/serverlessworkflow/1.41.0.Final/persistence/integration-tests-with-postgresql.html","urlType":"internal"}]}]},{"content":"Cloud","url":"/serverlessworkflow/1.41.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.41.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building Workflow Images","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying on Minikube","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying on Kubernetes","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Deploying on OpenShift","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Service Discovery","url":"/serverlessworkflow/1.41.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/1.41.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/1.41.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/1.41.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/1.41.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/1.41.0.Final/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/1.41.0.Final/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/1.41.0.Final/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/1.41.0.Final/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/1.41.0.Final/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/1.41.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/1.41.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.40.0.Final":{"displayVersion":"1.40","title":"SonataFlow Guides","version":"1.40.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.7.Final","quarkus_platform_version":"2.16.7.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.66.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.40.0","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.40.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.40.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.40.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.40.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.40.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.40.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.40.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.40.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.40.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.40.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.40.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.40.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.40.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/1.40.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.40.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.40.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.40.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.40.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.40.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.40.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.40.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.40.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.40.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.40.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/1.40.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/1.40.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/1.40.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.40.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.40.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.40.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.40.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on OpenShift","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.40.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/1.40.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/1.40.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/1.40.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/1.40.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/1.40.0.Final/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/1.40.0.Final/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/1.40.0.Final/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/1.40.0.Final/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/1.40.0.Final/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/1.40.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/1.40.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.40.0-SNAPSHOT":{"displayVersion":"1.40-RC","title":"SonataFlow Guides","version":"1.40.0-SNAPSHOT","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"SonataFlow","kogito_version_redhat":"","operator_name":"SonataFlow Operator","operator_installation_namespace":"sonataflow-operator-system","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.13.8.Final","quarkus_platform_version":"2.13.8.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.66.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.40.0","operator_openshift_keyword":"sonataflow","operator_openshift_catalog":"sonataflow-operator","operator_k8s_keyword":"sonataflow","operator_k8s_subscription":"my-sonataflow-operator","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.40.x-prod/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_guides_kafka_url":"https://quarkus.io/guides/kafka","quarkus_guides_config_reference_url":"https://quarkus.io/guides/config-reference","quarkus_guides_infinispan_client_reference_url":"https://quarkus.io/guides/infinispan-client-reference","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","docker_compose_install_url":"https://docs.docker.com/compose/install/","kn_cli_install_url":"https://knative.dev/docs/client/install-kn/","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new","ocp_local_url":"https://access.redhat.com/documentation/en-us/red_hat_openshift_local/2.17","ocp_knative_serving_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-serving.html","ocp_knative_eventing_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-knative-eventing.html","ocp_kn_cli_url":"https://docs.openshift.com/container-platform/4.12/serverless/install/installing-kn.html","serverless_workflow_vscode_extension_name":"KIE Serverless Workflow Editor"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.40.0-SNAPSHOT/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.40.0-SNAPSHOT/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.40.0-SNAPSHOT/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.40.0-SNAPSHOT/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.40.0-SNAPSHOT/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.40.0-SNAPSHOT/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Editor","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome extension for GitHub","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integration with GitHub","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integration with OpenShift","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integration with Service Registries","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deployment","url":"/serverlessworkflow/1.40.0-SNAPSHOT/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.40.0-SNAPSHOT/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.40.0-SNAPSHOT/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.40.0-SNAPSHOT/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.40.0-SNAPSHOT/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.40.0-SNAPSHOT/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Client Authentication","items":[{"content":"OpenAPI Authentication","url":"/serverlessworkflow/1.40.0-SNAPSHOT/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"OpenAPI OAuth2","url":"/serverlessworkflow/1.40.0-SNAPSHOT/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]}]},{"content":"Executing, Testing and Troubleshooting","items":[{"content":"Executing and Testing Workflows","items":[{"content":"Developer UI","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Monitoring","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-monitoring-page.html","urlType":"internal"},{"content":"Dashboards","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Command Line","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Mocking HTTP CloudEvents","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI Services","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing with REST Assured","url":"/serverlessworkflow/1.40.0-SNAPSHOT/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"}]}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.40.0-SNAPSHOT/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.40.0-SNAPSHOT/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Development Mode","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Referencing Workflow Resources","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/referencing-resource-files.html","urlType":"internal"},{"content":"Configuration","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Building and Deploying Workflow Images","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Custom Resource Status","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on OpenShift","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/deploying-on-openshift.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.40.0-SNAPSHOT/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Camel Routes","url":"/serverlessworkflow/1.40.0-SNAPSHOT/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Knative Serving","url":"/serverlessworkflow/1.40.0-SNAPSHOT/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing Prometheus Metrics","url":"/serverlessworkflow/1.40.0-SNAPSHOT/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow Data in Dashboards","url":"/serverlessworkflow/1.40.0-SNAPSHOT/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Job Service","items":[{"content":"Core Concepts","url":"/serverlessworkflow/1.40.0-SNAPSHOT/job-services/core-concepts.html","urlType":"internal"},{"content":"Quarkus Extensions","url":"/serverlessworkflow/1.40.0-SNAPSHOT/job-services/quarkus-extensions.html","urlType":"internal"}]},{"content":"Data Index","items":[{"content":"Core concepts","url":"/serverlessworkflow/1.40.0-SNAPSHOT/data-index/data-index-core-concepts.html","urlType":"internal"},{"content":"Standalone service","url":"/serverlessworkflow/1.40.0-SNAPSHOT/data-index/data-index-service.html","urlType":"internal"},{"content":"Quarkus Extension","url":"/serverlessworkflow/1.40.0-SNAPSHOT/data-index/data-index-quarkus-extension.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration","url":"/serverlessworkflow/1.40.0-SNAPSHOT/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeouts Showcase","url":"/serverlessworkflow/1.40.0-SNAPSHOT/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.39.0.Final":{"displayVersion":"1.39","title":"Kogito Serverless Workflow Guides","version":"1.39.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito Serverless Workflow","kogito_version_redhat":"","operator_name":"Kogito Serverless Workflow Operator","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.6.Final","quarkus_platform_version":"2.16.6.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.39.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.39.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.39.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.39.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.39.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.39.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.39.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.39.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.39.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.39.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.39.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.39.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.39.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.39.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.39.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.39.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.39.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Kogito Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.39.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.39.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.39.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.39.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.39.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.39.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.39.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.39.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.39.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.39.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.39.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.39.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services","url":"/serverlessworkflow/1.39.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication","url":"/serverlessworkflow/1.39.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.39.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.39.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing using REST Assured","url":"/serverlessworkflow/1.39.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Integration tests using PostgreSQL","url":"/serverlessworkflow/1.39.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.39.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.39.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.39.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Developing Workflows","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Configuring Workflows","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Workflows Status","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Building and Deploying Workflows","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.39.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.39.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.39.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.39.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.39.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.39.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services","url":"/serverlessworkflow/1.39.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.39.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.39.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Supporting Services","items":[{"content":"Job Service","url":"/serverlessworkflow/1.39.0.Final/supporting-services/jobs-service.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration Example","url":"/serverlessworkflow/1.39.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout Example","url":"/serverlessworkflow/1.39.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.38.0.Final":{"displayVersion":"1.38","title":"Kogito Serverless Workflow Guides","version":"1.38.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito Serverless Workflow","kogito_version_redhat":"","operator_name":"Kogito Serverless Workflow Operator","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.6.Final","quarkus_platform_version":"2.16.6.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.38.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.38.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.38.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.38.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.38.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.38.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.38.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.38.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.38.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.38.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.38.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.38.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.38.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.38.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.38.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.38.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.38.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Kogito Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.38.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.38.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.38.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.38.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.38.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.38.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.38.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.38.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.38.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.38.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.38.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.38.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services","url":"/serverlessworkflow/1.38.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication","url":"/serverlessworkflow/1.38.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.38.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.38.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing using REST Assured","url":"/serverlessworkflow/1.38.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Integration tests using PostgreSQL","url":"/serverlessworkflow/1.38.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.38.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.38.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.38.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Developing Workflows","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Configuring Workflows","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Workflows Status","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Building and Deploying Workflows","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.38.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.38.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.38.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.38.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.38.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.38.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services","url":"/serverlessworkflow/1.38.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.38.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.38.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Supporting Services","items":[{"content":"Job Service","url":"/serverlessworkflow/1.38.0.Final/supporting-services/jobs-service.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration Example","url":"/serverlessworkflow/1.38.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout Example","url":"/serverlessworkflow/1.38.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.37.0.Final":{"displayVersion":"1.37","title":"Kogito Serverless Workflow Guides","version":"1.37.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito Serverless Workflow","kogito_version_redhat":"","operator_name":"Kogito Serverless Workflow Operator","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.5.Final","quarkus_platform_version":"2.16.5.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.37.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","quarkus_url":"https://quarkus.io/","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io","kogito_serverless_operator_url":"https://github.com/kiegroup/kogito-serverless-operator/","docs_issues_url":"https://github.com/kiegroup/kogito-docs/issues/new"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.37.0.Final/index.html","navigation":[{"items":[{"content":"Release notes","url":"/serverlessworkflow/1.37.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.37.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.37.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with tooling","url":"/serverlessworkflow/1.37.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions","url":"/serverlessworkflow/1.37.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling","url":"/serverlessworkflow/1.37.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism","url":"/serverlessworkflow/1.37.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties","url":"/serverlessworkflow/1.37.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition","url":"/serverlessworkflow/1.37.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your workflow service","url":"/serverlessworkflow/1.37.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts Support","url":"/serverlessworkflow/1.37.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.37.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.37.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.37.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.37.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Kogito Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.37.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.37.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.37.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.37.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.37.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.37.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event State","url":"/serverlessworkflow/1.37.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.37.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.37.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event Correlation","url":"/serverlessworkflow/1.37.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback State","url":"/serverlessworkflow/1.37.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback","url":"/serverlessworkflow/1.37.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services","url":"/serverlessworkflow/1.37.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication","url":"/serverlessworkflow/1.37.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.37.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.37.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing using REST Assured","url":"/serverlessworkflow/1.37.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Integration tests using PostgreSQL","url":"/serverlessworkflow/1.37.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.37.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.37.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","url":"/serverlessworkflow/1.37.0.Final/cloud/index.html","urlType":"internal","items":[{"content":"Operator","items":[{"content":"Installation","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/install-serverless-operator.html","urlType":"internal"},{"content":"Developing Workflows","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/developing-workflows.html","urlType":"internal"},{"content":"Configuring Workflows","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/configuring-workflows.html","urlType":"internal"},{"content":"Workflows Status","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/workflow-status-conditions.html","urlType":"internal"},{"content":"Building and Deploying Workflows","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/build-and-deploy-workflows.html","urlType":"internal"},{"content":"Known Issues","url":"/serverlessworkflow/1.37.0.Final/cloud/operator/known-issues.html","urlType":"internal"}]},{"content":"Quarkus","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.37.0.Final/cloud/quarkus/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying Workflows on Minikube","url":"/serverlessworkflow/1.37.0.Final/cloud/quarkus/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying Workflows on Kubernetes","url":"/serverlessworkflow/1.37.0.Final/cloud/quarkus/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery","url":"/serverlessworkflow/1.37.0.Final/cloud/quarkus/kubernetes-service-discovery.html","urlType":"internal"}]}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.37.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services","url":"/serverlessworkflow/1.37.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.37.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.37.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga Orchestration Example","url":"/serverlessworkflow/1.37.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout Example","url":"/serverlessworkflow/1.37.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.36.1.Final":{"displayVersion":"1.36","title":"Kogito Serverless Workflow Guides","version":"1.36.1.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.4.Final","quarkus_platform_version":"2.16.4.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.36.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.36.1.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.36.1.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.36.1.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.36.1.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.36.1.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.36.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.36.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.36.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.36.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.36.1.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.36.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.36.1.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.36.1.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.36.1.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.36.1.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.36.1.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.36.1.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.36.1.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.36.1.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.36.1.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.36.1.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.36.1.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.36.1.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.36.1.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.36.1.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.36.1.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"},{"content":"Buiding and deploying a Serverless Workflow application on Kubernetes using the Kogito Serverless Operator","url":"/serverlessworkflow/1.36.1.Final/cloud/build-and-deploy-with-serverless-operator-on-kubernetes.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.36.1.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services from Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.36.1.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.36.1.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout example in Serverless Workflow","url":"/serverlessworkflow/1.36.1.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.35.0.Final":{"displayVersion":"1.35","title":"Kogito Serverless Workflow Guides","version":"1.35.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.0.Final","quarkus_platform_version":"2.16.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.35.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.35.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.35.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.35.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.35.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.35.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.35.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.35.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.35.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.35.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.35.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.35.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.35.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.35.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.35.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.35.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.35.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.35.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.35.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.35.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.35.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.35.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.35.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.35.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.35.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.35.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.35.0.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"},{"content":"Buiding and deploying a Serverless Workflow application on Kubernetes using the Kogito Serverless Operator","url":"/serverlessworkflow/1.35.0.Final/cloud/build-and-deploy-with-serverless-operator-on-kubernetes.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.35.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Invoking Knative services from Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/integrations/custom-functions-knative.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.35.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.35.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout example in Serverless Workflow","url":"/serverlessworkflow/1.35.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.34.0.Final":{"displayVersion":"1.34","title":"Kogito Serverless Workflow Guides","version":"1.34.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"main","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.34.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.34.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.34.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.34.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.34.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.34.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.34.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.34.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.34.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"},{"content":"Dashboards in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.34.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-custom-dashboard-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.34.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.34.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.34.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.34.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestrating the AsyncAPI services","url":"/serverlessworkflow/1.34.0.Final/service-orchestration/orchestration-of-asyncapi-based-services.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.34.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.34.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.34.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.34.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.34.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.34.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.34.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.34.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.34.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.34.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.34.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.34.0.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"},{"content":"Buiding and deploying a Serverless Workflow application on Kubernetes using the Kogito Serverless Operator","url":"/serverlessworkflow/1.34.0.Final/cloud/build-and-deploy-with-serverless-operator-on-kubernetes.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.34.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.34.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.34.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"},{"content":"Timeout example in Serverless Workflow","url":"/serverlessworkflow/1.34.0.Final/use-cases/timeout-showcase-example.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.33.0.Final":{"displayVersion":"1.33","title":"Kogito Serverless Workflow Guides","version":"1.33.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.16.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.33.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.33.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.33.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.33.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.33.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.33.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.33.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.33.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.33.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.33.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.33.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.33.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.33.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.33.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.33.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.33.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.33.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.33.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.33.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.33.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.33.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.33.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.33.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.33.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.33.0.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Integrating with Camel Routes","url":"/serverlessworkflow/1.33.0.Final/integrations/camel-routes-integration.html","urlType":"internal"},{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.33.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.33.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.33.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.32.0.Final":{"displayVersion":"1.32","title":"Kogito Serverless Workflow Guides","version":"1.32.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.15.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","operator_version":"v1.32.0","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.32.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","cloud_events_git_url":"https://github.com/cloudevents/spec/blob/v1.0.2/cloudevents","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","open_api_swagger_spec_url":"https://swagger.io/docs/specification","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas","camel_url":"https://camel.apache.org/","camel_extensions_url":"https://camel.apache.org/camel-quarkus/2.14.x/reference/extensions","kaoto_url":"https://marketplace.visualstudio.com/items?itemName=redhat.vscode-kaoto","minikube_url":"https://minikube.sigs.k8s.io"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.32.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.32.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.32.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.32.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.32.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.32.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.32.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.32.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.32.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.32.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.32.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.32.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.32.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.32.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.32.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/eventing/working-with-callbacks.html","urlType":"internal"},{"content":"OpenAPI Callback in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/eventing/working-with-openapi-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.32.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.32.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.32.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.32.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.32.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"},{"content":"Migrate your PostgreSQL database","url":"/serverlessworkflow/1.32.0.Final/persistence/postgresql-flyway-migration.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.32.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.32.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Kubernetes","url":"/serverlessworkflow/1.32.0.Final/cloud/deploying-on-kubernetes.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"},{"content":"Buiding and deploying a Serverless Workflow application on Kubernetes using the Kogito Serverless Operator","url":"/serverlessworkflow/1.32.0.Final/cloud/build-and-deploy-with-serverless-operator-on-kubernetes.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.32.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.32.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.32.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.31.1.Final":{"displayVersion":"1.31","title":"Kogito Serverless Workflow Guides","version":"1.31.1.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.15.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.3.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.31.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.31.1.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.31.1.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.31.1.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.31.1.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.31.1.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.31.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.31.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.31.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.31.1.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.31.1.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.31.1.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.31.1.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.31.1.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.31.1.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.31.1.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.31.1.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.31.1.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.31.1.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.31.1.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.31.1.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.31.1.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.31.1.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.31.1.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.31.1.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.31.1.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.30.0.Final":{"displayVersion":"1.30","title":"Kogito Serverless Workflow Guides","version":"1.30.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.14.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.2.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"docker_min_version":"20.10.7","docker_compose_min_version":"1.27.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.30.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","docker_compose_install_url":"https://docs.docker.com/compose/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.30.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.30.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.30.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.30.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.30.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.30.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.30.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.30.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.30.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.30.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.30.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.30.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.30.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.30.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.30.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.30.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.30.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.30.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.30.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.30.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.30.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.30.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.30.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.30.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.30.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.29.0.Final":{"displayVersion":1.29,"title":"Kogito Serverless Workflow Guides","version":"1.29.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.13.1.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.2.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.29.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","kogito_apps_url":"https://github.com/kiegroup/kogito-apps/tree/main","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.29.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.29.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.29.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.29.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.29.0.Final/core/custom-functions-support.html","urlType":"internal"},{"content":"Timeouts in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/core/timeouts-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.29.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.29.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.29.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.29.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.29.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.29.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.29.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.29.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.29.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.29.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.29.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.29.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.29.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.29.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.29.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.29.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.29.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.29.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.29.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.29.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.28.0.Final":{"displayVersion":1.28,"title":"Kogito Serverless Workflow Guides","version":"1.28.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.13.0.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.2.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.28.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.28.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.28.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.28.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.28.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.28.0.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.28.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.28.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.28.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.28.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"Integrating your Serverless Workflow project in GitHub using Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"Integrating your Serverless Workflow project with OpenShift using Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Integrating with Red Hat OpenShift Application and Data Services","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow projects using Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Enabling Kogito Serverless Workflow Visualization in Serverless Logic Web Tools","url":"/serverlessworkflow/1.28.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.28.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.28.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.28.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.28.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.28.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.28.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.28.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.28.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.28.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.28.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.28.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.28.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.28.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.28.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.28.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.27.0.Final":{"displayVersion":1.27,"title":"Kogito Serverless Workflow Guides","version":"1.27.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.7.6.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.2.0","spec_version":0.8,"vscode_version":"1.46.0","kn_cli_version":"0.21.3","kie_tools_node_min_version":"16.13.2","kie_tools_pnpm_min_version":"7.0.0","kie_tools_golang_min_version":1.19,"kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.27.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","quarkus_swagger_url":"https://quarkus.io/guides/openapi-swaggerui","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/","node_install_url":"https://nodejs.org/en/download/package-manager/","pnpm_install_url":"https://pnpm.io/installation","golang_install_url":"https://go.dev/doc/install","serverless_logic_web_tools_url":"https://start.kubesmarts.org/","serverless_logic_web_tools_name":"Serverless Logic Web Tools","github_tokens_url":"https://github.com/settings/tokens","openshift_developer_sandbox_url":"https://developers.redhat.com/developer-sandbox","openshift_application_data_services_service_account_url":"https://console.redhat.com/application-services/service-accounts","openshift_application_data_services_service_registry_url":"https://console.redhat.com/application-services/service-registry","openshift_application_data_services_apache_kafka_url":"https://console.redhat.com/application-services/streams/kafkas"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.27.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.27.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.27.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.27.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Input schema definition for Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/core/defining-an-input-schema-for-workflows.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.27.0.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.27.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.27.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.27.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.27.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"},{"content":"Serverless Logic Web Tools","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-overview.html","urlType":"internal","items":[{"content":"GitHub integration","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-github-integration.html","urlType":"internal"},{"content":"OpenShift integration","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-openshift-integration.html","urlType":"internal"},{"content":"Red Hat OpenShift Application and Data Services integration","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-redhat-application-services-integration.html","urlType":"internal"},{"content":"Deploying projects","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-deploy-projects.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Visualization","url":"/serverlessworkflow/1.27.0.Final/tooling/serverless-logic-web-tools/serverless-logic-web-tools-enable-kogito-swf-visualization.html","urlType":"internal"}]}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.27.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.27.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.27.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.27.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.27.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.27.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.27.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.27.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.27.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.27.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.27.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.27.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"},{"content":"Kubernetes service discovery in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/cloud/kubernetes-service-discovery.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Exposing workflow base metrics to Prometheus","url":"/serverlessworkflow/1.27.0.Final/integrations/expose-metrics-to-prometheus.html","urlType":"internal"},{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.27.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.27.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.26.0.Final":{"displayVersion":1.26,"title":"Kogito Serverless Workflow Guides","version":"1.26.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.11.2.Final","java_min_version":"11+","maven_min_version":"3.8.6","graalvm_min_version":"22.1.0","spec_version":0.8,"vscode_version":"1.46.0","kn-cli-version":"0.21.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.26.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.26.0.Final/index.html","navigation":[{"items":[{"content":"Release notes for Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/release_notes.html","urlType":"internal"},{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.26.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.26.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.26.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.26.0.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.26.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.26.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.26.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.26.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.26.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.26.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.26.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.26.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.26.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.26.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.26.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.26.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.26.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.26.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.26.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.26.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.26.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.26.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.26.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.26.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.26.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.25.0.Final":{"displayVersion":1.25,"title":"Kogito Serverless Workflow Guides","version":"1.25.0.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.10.2.Final","java_min_version":"11+","maven_min_version":"3.8.1","graalvm_min_version":"22.1.0","spec_version":0.8,"vscode_version":"1.46.0","kn-cli-version":"0.21.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.25.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.25.0.Final/index.html","navigation":[{"items":[{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.25.0.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.25.0.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.25.0.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.25.0.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.25.0.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.25.0.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.25.0.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.25.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.25.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.25.0.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.25.0.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.25.0.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.25.0.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.25.0.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.25.0.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.25.0.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.25.0.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.25.0.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.25.0.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.25.0.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.25.0.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.25.0.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.25.0.Final/cloud/deploying-on-minikube.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.25.0.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.25.0.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]},"serverlessworkflow/1.24.1.Final":{"displayVersion":1.24,"title":"Kogito Serverless Workflow Guides","version":"1.24.1.Final","name":"serverlessworkflow","asciidoc":{"attributes":{"env":"site","env-site":"","site-gen":"antora","site-gen-antora":"","attribute-missing":"warn","data-uri":null,"icons":"font","sectanchors":"","source-highlighter":"highlight.js","site-title":"SonataFlow Guides","toc":null,"product_name":"Kogito","context":"Serverless Workflow","kogito_version_redhat":"","quarkus_platform":"io.quarkus.platform","kogito_sw_ga":"kogito-quarkus-serverless-workflow","quarkus_version":"2.10.2.Final","java_min_version":"11+","maven_min_version":"3.8.1","graalvm_min_version":"22.1.0","spec_version":0.8,"vscode_version":"1.46.0","kn-cli-version":"0.21.2","kogito_devservices_imagename":"registry.redhat.io/openshift-serverless-1-tech-preview/logic-data-index-ephemeral-rhel8","kogito_examples_repository_url":"https://github.com/kiegroup/kogito-examples","kogito_sw_examples_url":"https://github.com/kiegroup/kogito-examples/tree/1.24.x/serverless-workflow-examples","kogito_examples_url":"https://github.com/kiegroup/kogito-examples.git","quarkus_cli_url":"https://quarkus.io/guides/cli-tooling","spec_website_url":"https://serverlessworkflow.io/","spec_doc_url":"https://github.com/serverlessworkflow/specification/blob/0.8.x/specification.md","cloud_events_url":"https://cloudevents.io/","cloud_events_sdk_url":"https://github.com/cloudevents/sdk-java","open_api_spec_url":"https://spec.openapis.org/oas/v3.1.0.html","quarkus_openapi_gen_url":"https://github.com/quarkiverse/quarkus-openapi-generator","kie_tools_releases_page_url":"https://github.com/kiegroup/kie-tools/releases","quarkus_guides_base_url":"https://quarkus.io/guides","smallrye_messaging_url":"https://smallrye.io/smallrye-reactive-messaging/smallrye-reactive-messaging/3.3","quarkus_config_url":"https://quarkus.io/guides/config","java_install":"https://www.java.com/en/download/help/download_options.html","maven_install":"https://maven.apache.org/install.html","docker_install":"https://docs.docker.com/engine/install/","podman_install":"https://docs.podman.io/en/latest/","kubectl_install":"https://kubernetes.io/docs/tasks/tools/install-kubectl","java_install_url":"https://www.java.com/en/download/help/download_options.html","maven_install_url":"https://maven.apache.org/install.html","docker_install_url":"https://docs.docker.com/engine/install/","podman_install_url":"https://docs.podman.io/en/latest/","kubectl_install_url":"https://kubernetes.io/docs/tasks/tools/install-kubectl","kn_cli_install_url":"https://github.com/knative/client/blob/main/docs/README.md#installing-kn","kafka_doc_url":"https://kafka.apache.org/documentation/"},"sourcemap":false,"extensions":[{},{}]},"url":"/serverlessworkflow/1.24.1.Final/index.html","navigation":[{"items":[{"content":"Getting Started","items":[{"content":"Creating your first workflow service","url":"/serverlessworkflow/1.24.1.Final/getting-started/create-your-first-workflow-service.html","urlType":"internal"},{"content":"CNCF Serverless Workflow specification","url":"/serverlessworkflow/1.24.1.Final/getting-started/cncf-serverless-workflow-specification-support.html","urlType":"internal"},{"content":"Getting familiar with Serverless Workflow tooling","url":"/serverlessworkflow/1.24.1.Final/getting-started/getting-familiar-with-our-tooling.html","urlType":"internal"}]},{"content":"Core","items":[{"content":"jq expressions in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/core/understanding-jq-expressions.html","urlType":"internal"},{"content":"Error handling in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/core/understanding-workflow-error-handling.html","urlType":"internal"},{"content":"Parallelism in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/core/working-with-parallelism.html","urlType":"internal"},{"content":"Configuration properties in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/core/configuration-properties.html","urlType":"internal"},{"content":"Custom functions for your Serverless Workflow service","url":"/serverlessworkflow/1.24.1.Final/core/custom-functions-support.html","urlType":"internal"}]},{"content":"Tooling","items":[{"content":"Serverless Workflow editor","url":"/serverlessworkflow/1.24.1.Final/tooling/serverless-workflow-editor/swf-editor-overview.html","urlType":"internal"},{"content":"VS Code extension for Serverless Workflow editor","url":"/serverlessworkflow/1.24.1.Final/tooling/serverless-workflow-editor/swf-editor-vscode-extension.html","urlType":"internal"},{"content":"Chrome GitHub extension for Serverless Workflow editor","url":"/serverlessworkflow/1.24.1.Final/tooling/serverless-workflow-editor/swf-editor-chrome-extension.html","urlType":"internal"},{"content":"Kogito Serverless Workflow Tools extension in Quarkus Dev UI","url":"/serverlessworkflow/1.24.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-overview.html","urlType":"internal","items":[{"content":"Workflow Instances in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.24.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-instances-page.html","urlType":"internal"},{"content":"Workflow Definitions in Kogito Serverless Workflow Tools extension","url":"/serverlessworkflow/1.24.1.Final/tooling/quarkus-dev-ui-extension/quarkus-dev-ui-workflow-definition-page.html","urlType":"internal"}]},{"content":"Serverless Workflow plug-in for Knative CLI","url":"/serverlessworkflow/1.24.1.Final/tooling/kn-plugin-workflow-overview.html","urlType":"internal"}]},{"content":"Service Orchestration","items":[{"content":"Orchestrating the OpenAPI services","url":"/serverlessworkflow/1.24.1.Final/service-orchestration/orchestration-of-openapi-based-services.html","urlType":"internal"},{"content":"Configuring the OpenAPI services endpoints","url":"/serverlessworkflow/1.24.1.Final/service-orchestration/configuring-openapi-services-endpoints.html","urlType":"internal"},{"content":"Orchestration of gRPC based services","url":"/serverlessworkflow/1.24.1.Final/service-orchestration/orchestration-of-grpc-services.html","urlType":"internal"}]},{"content":"Eventing","items":[{"content":"Event state in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/eventing/handling-events-on-workflows.html","urlType":"internal"},{"content":"Consuming and producing events using Apache Kafka","url":"/serverlessworkflow/1.24.1.Final/eventing/consume-producing-events-with-kafka.html","urlType":"internal"},{"content":"Consuming and producing events on Knative Eventing","url":"/serverlessworkflow/1.24.1.Final/eventing/consume-produce-events-with-knative-eventing.html","urlType":"internal"},{"content":"Event correlation in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/eventing/event-correlation-with-workflows.html","urlType":"internal"},{"content":"Callback state in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/eventing/working-with-callbacks.html","urlType":"internal"}]},{"content":"Security","items":[{"content":"Authentication for OpenAPI services in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/security/authention-support-for-openapi-services.html","urlType":"internal"},{"content":"Orchestration of third-party services using OAuth 2.0 authentication in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/security/orchestrating-third-party-services-with-oauth2.html","urlType":"internal"}]},{"content":"Testing and Troubleshooting","items":[{"content":"Mocking HTTP CloudEvents sink using WireMock","url":"/serverlessworkflow/1.24.1.Final/testing-and-troubleshooting/mocking-http-cloudevents-with-wiremock.html","urlType":"internal"},{"content":"Mocking OpenAPI services using WireMock","url":"/serverlessworkflow/1.24.1.Final/testing-and-troubleshooting/mocking-openapi-services-with-wiremock.html","urlType":"internal"},{"content":"Testing your workflow application using REST Assured","url":"/serverlessworkflow/1.24.1.Final/testing-and-troubleshooting/basic-integration-tests-with-restassured.html","urlType":"internal"},{"content":"Serverless Workflow integration test using PostgreSQL","url":"/serverlessworkflow/1.24.1.Final/testing-and-troubleshooting/integration-tests-with-postgresql.html","urlType":"internal"}]},{"content":"Persistence","items":[{"content":"Running a workflow service using PostgreSQL","url":"/serverlessworkflow/1.24.1.Final/persistence/persistence-with-postgresql.html","urlType":"internal"}]},{"content":"Cloud","items":[{"content":"Building workflow images using Quarkus CLI","url":"/serverlessworkflow/1.24.1.Final/cloud/build-workflow-image-with-quarkus-cli.html","urlType":"internal"},{"content":"Deploying your Serverless Workflow application on Minikube","url":"/serverlessworkflow/1.24.1.Final/cloud/deploying-on-minikube.html","urlType":"internal"}]},{"content":"Integrations","items":[{"content":"Displaying workflow data in dashboards","url":"/serverlessworkflow/1.24.1.Final/integrations/serverless-dashboard-with-runtime-data.html","urlType":"internal"}]},{"content":"Use Cases","items":[{"content":"Saga orchestration example in Serverless Workflow","url":"/serverlessworkflow/1.24.1.Final/use-cases/orchestration-based-saga-pattern.html","urlType":"internal"}]}],"root":true,"order":0}]}}}})
\ No newline at end of file
diff --git a/serverlessworkflow/main/data-index/data-index-service.html b/serverlessworkflow/main/data-index/data-index-service.html
index 644df0c67..84a788999 100644
--- a/serverlessworkflow/main/data-index/data-index-service.html
+++ b/serverlessworkflow/main/data-index/data-index-service.html
@@ -559,6 +559,46 @@
+
+
+
+ |
+
+
+ You must prepare the SonataFlow workflow to support the full communication with an external Data Index service.
+For this purpose, it is important to make sure the following addons are included:
+
+
+ SonataFlow workflow addon dependencies to support the connection with external Data Index
+
+ <dependency>
+ <groupId>org.kie.kogito</groupId>
+ <artifactId>kogito-addons-quarkus-events-process</artifactId> (1)
+</dependency>
+<dependency>
+ <groupId>org.kie.kogito</groupId>
+ <artifactId>kogito-addons-quarkus-process-management</artifactId> (2)
+</dependency>
+
+
+
+
+
+1 |
+Allows the workflow to send the events that can be consumed by the Data Index service. |
+
+
+2 |
+Creates the endpoints that allow management operations on process instances. |
+
+
+
+ |
+
+
+
Data Index deployment resource example using Kafka eventing: