From 0bcbfd48aa9adc6ccb680a26c5b11b075e8bd4be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 14:33:24 +0000 Subject: [PATCH 01/34] Bump coverage from 7.6.2 to 7.6.8 in /spiffworkflow-backend (#2160) Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.2 to 7.6.8. - [Release notes](https://github.com/nedbat/coveragepy/releases) - [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst) - [Commits](https://github.com/nedbat/coveragepy/compare/7.6.2...7.6.8) --- updated-dependencies: - dependency-name: coverage dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 126 +++++++++++++++--------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index 19d653ad1..2fb9f43be 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -616,73 +616,73 @@ tests = ["MarkupSafe (>=0.23)", "aiohttp (>=2.3.10,<4)", "aiohttp-jinja2 (>=0.14 [[package]] name = "coverage" -version = "7.6.2" +version = "7.6.8" description = "Code coverage measurement for Python" optional = false python-versions = ">=3.9" files = [ - {file = "coverage-7.6.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c9df1950fb92d49970cce38100d7e7293c84ed3606eaa16ea0b6bc27175bb667"}, - {file = "coverage-7.6.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:24500f4b0e03aab60ce575c85365beab64b44d4db837021e08339f61d1fbfe52"}, - {file = "coverage-7.6.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a663b180b6669c400b4630a24cc776f23a992d38ce7ae72ede2a397ce6b0f170"}, - {file = "coverage-7.6.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfde025e2793a22efe8c21f807d276bd1d6a4bcc5ba6f19dbdfc4e7a12160909"}, - {file = "coverage-7.6.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:087932079c065d7b8ebadd3a0160656c55954144af6439886c8bcf78bbbcde7f"}, - {file = "coverage-7.6.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9c6b0c1cafd96213a0327cf680acb39f70e452caf8e9a25aeb05316db9c07f89"}, - {file = "coverage-7.6.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6e85830eed5b5263ffa0c62428e43cb844296f3b4461f09e4bdb0d44ec190bc2"}, - {file = "coverage-7.6.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:62ab4231c01e156ece1b3a187c87173f31cbeee83a5e1f6dff17f288dca93345"}, - {file = "coverage-7.6.2-cp310-cp310-win32.whl", hash = "sha256:7b80fbb0da3aebde102a37ef0138aeedff45997e22f8962e5f16ae1742852676"}, - {file = "coverage-7.6.2-cp310-cp310-win_amd64.whl", hash = "sha256:d20c3d1f31f14d6962a4e2f549c21d31e670b90f777ef4171be540fb7fb70f02"}, - {file = "coverage-7.6.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bb21bac7783c1bf6f4bbe68b1e0ff0d20e7e7732cfb7995bc8d96e23aa90fc7b"}, - {file = "coverage-7.6.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a7b2e437fbd8fae5bc7716b9c7ff97aecc95f0b4d56e4ca08b3c8d8adcaadb84"}, - {file = "coverage-7.6.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:536f77f2bf5797983652d1d55f1a7272a29afcc89e3ae51caa99b2db4e89d658"}, - {file = "coverage-7.6.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f361296ca7054f0936b02525646b2731b32c8074ba6defab524b79b2b7eeac72"}, - {file = "coverage-7.6.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7926d8d034e06b479797c199747dd774d5e86179f2ce44294423327a88d66ca7"}, - {file = "coverage-7.6.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0bbae11c138585c89fb4e991faefb174a80112e1a7557d507aaa07675c62e66b"}, - {file = "coverage-7.6.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fcad7d5d2bbfeae1026b395036a8aa5abf67e8038ae7e6a25c7d0f88b10a8e6a"}, - {file = "coverage-7.6.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f01e53575f27097d75d42de33b1b289c74b16891ce576d767ad8c48d17aeb5e0"}, - {file = "coverage-7.6.2-cp311-cp311-win32.whl", hash = "sha256:7781f4f70c9b0b39e1b129b10c7d43a4e0c91f90c60435e6da8288efc2b73438"}, - {file = "coverage-7.6.2-cp311-cp311-win_amd64.whl", hash = "sha256:9bcd51eeca35a80e76dc5794a9dd7cb04b97f0e8af620d54711793bfc1fbba4b"}, - {file = "coverage-7.6.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ebc94fadbd4a3f4215993326a6a00e47d79889391f5659bf310f55fe5d9f581c"}, - {file = "coverage-7.6.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9681516288e3dcf0aa7c26231178cc0be6cac9705cac06709f2353c5b406cfea"}, - {file = "coverage-7.6.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d9c5d13927d77af4fbe453953810db766f75401e764727e73a6ee4f82527b3e"}, - {file = "coverage-7.6.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b92f9ca04b3e719d69b02dc4a69debb795af84cb7afd09c5eb5d54b4a1ae2191"}, - {file = "coverage-7.6.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ff2ef83d6d0b527b5c9dad73819b24a2f76fdddcfd6c4e7a4d7e73ecb0656b4"}, - {file = "coverage-7.6.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:47ccb6e99a3031ffbbd6e7cc041e70770b4fe405370c66a54dbf26a500ded80b"}, - {file = "coverage-7.6.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a867d26f06bcd047ef716175b2696b315cb7571ccb951006d61ca80bbc356e9e"}, - {file = "coverage-7.6.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cdfcf2e914e2ba653101157458afd0ad92a16731eeba9a611b5cbb3e7124e74b"}, - {file = "coverage-7.6.2-cp312-cp312-win32.whl", hash = "sha256:f9035695dadfb397bee9eeaf1dc7fbeda483bf7664a7397a629846800ce6e276"}, - {file = "coverage-7.6.2-cp312-cp312-win_amd64.whl", hash = "sha256:5ed69befa9a9fc796fe015a7040c9398722d6b97df73a6b608e9e275fa0932b0"}, - {file = "coverage-7.6.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:4eea60c79d36a8f39475b1af887663bc3ae4f31289cd216f514ce18d5938df40"}, - {file = "coverage-7.6.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa68a6cdbe1bc6793a9dbfc38302c11599bbe1837392ae9b1d238b9ef3dafcf1"}, - {file = "coverage-7.6.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ec528ae69f0a139690fad6deac8a7d33629fa61ccce693fdd07ddf7e9931fba"}, - {file = "coverage-7.6.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed5ac02126f74d190fa2cc14a9eb2a5d9837d5863920fa472b02eb1595cdc925"}, - {file = "coverage-7.6.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21c0ea0d4db8a36b275cb6fb2437a3715697a4ba3cb7b918d3525cc75f726304"}, - {file = "coverage-7.6.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:35a51598f29b2a19e26d0908bd196f771a9b1c5d9a07bf20be0adf28f1ad4f77"}, - {file = "coverage-7.6.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c9192925acc33e146864b8cf037e2ed32a91fdf7644ae875f5d46cd2ef086a5f"}, - {file = "coverage-7.6.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf4eeecc9e10f5403ec06138978235af79c9a79af494eb6b1d60a50b49ed2869"}, - {file = "coverage-7.6.2-cp313-cp313-win32.whl", hash = "sha256:e4ee15b267d2dad3e8759ca441ad450c334f3733304c55210c2a44516e8d5530"}, - {file = "coverage-7.6.2-cp313-cp313-win_amd64.whl", hash = "sha256:c71965d1ced48bf97aab79fad56df82c566b4c498ffc09c2094605727c4b7e36"}, - {file = "coverage-7.6.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7571e8bbecc6ac066256f9de40365ff833553e2e0c0c004f4482facb131820ef"}, - {file = "coverage-7.6.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:078a87519057dacb5d77e333f740708ec2a8f768655f1db07f8dfd28d7a005f0"}, - {file = "coverage-7.6.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e5e92e3e84a8718d2de36cd8387459cba9a4508337b8c5f450ce42b87a9e760"}, - {file = "coverage-7.6.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ebabdf1c76593a09ee18c1a06cd3022919861365219ea3aca0247ededf6facd6"}, - {file = "coverage-7.6.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12179eb0575b8900912711688e45474f04ab3934aaa7b624dea7b3c511ecc90f"}, - {file = "coverage-7.6.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:39d3b964abfe1519b9d313ab28abf1d02faea26cd14b27f5283849bf59479ff5"}, - {file = "coverage-7.6.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:84c4315577f7cd511d6250ffd0f695c825efe729f4205c0340f7004eda51191f"}, - {file = "coverage-7.6.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ff797320dcbff57caa6b2301c3913784a010e13b1f6cf4ab3f563f3c5e7919db"}, - {file = "coverage-7.6.2-cp313-cp313t-win32.whl", hash = "sha256:2b636a301e53964550e2f3094484fa5a96e699db318d65398cfba438c5c92171"}, - {file = "coverage-7.6.2-cp313-cp313t-win_amd64.whl", hash = "sha256:d03a060ac1a08e10589c27d509bbdb35b65f2d7f3f8d81cf2fa199877c7bc58a"}, - {file = "coverage-7.6.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c37faddc8acd826cfc5e2392531aba734b229741d3daec7f4c777a8f0d4993e5"}, - {file = "coverage-7.6.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ab31fdd643f162c467cfe6a86e9cb5f1965b632e5e65c072d90854ff486d02cf"}, - {file = "coverage-7.6.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97df87e1a20deb75ac7d920c812e9326096aa00a9a4b6d07679b4f1f14b06c90"}, - {file = "coverage-7.6.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:343056c5e0737487a5291f5691f4dfeb25b3e3c8699b4d36b92bb0e586219d14"}, - {file = "coverage-7.6.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad4ef1c56b47b6b9024b939d503ab487231df1f722065a48f4fc61832130b90e"}, - {file = "coverage-7.6.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7fca4a92c8a7a73dee6946471bce6d1443d94155694b893b79e19ca2a540d86e"}, - {file = "coverage-7.6.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:69f251804e052fc46d29d0e7348cdc5fcbfc4861dc4a1ebedef7e78d241ad39e"}, - {file = "coverage-7.6.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e8ea055b3ea046c0f66217af65bc193bbbeca1c8661dc5fd42698db5795d2627"}, - {file = "coverage-7.6.2-cp39-cp39-win32.whl", hash = "sha256:6c2ba1e0c24d8fae8f2cf0aeb2fc0a2a7f69b6d20bd8d3749fd6b36ecef5edf0"}, - {file = "coverage-7.6.2-cp39-cp39-win_amd64.whl", hash = "sha256:2186369a654a15628e9c1c9921409a6b3eda833e4b91f3ca2a7d9f77abb4987c"}, - {file = "coverage-7.6.2-pp39.pp310-none-any.whl", hash = "sha256:667952739daafe9616db19fbedbdb87917eee253ac4f31d70c7587f7ab531b4e"}, - {file = "coverage-7.6.2.tar.gz", hash = "sha256:a5f81e68aa62bc0cfca04f7b19eaa8f9c826b53fc82ab9e2121976dc74f131f3"}, + {file = "coverage-7.6.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b39e6011cd06822eb964d038d5dff5da5d98652b81f5ecd439277b32361a3a50"}, + {file = "coverage-7.6.8-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:63c19702db10ad79151a059d2d6336fe0c470f2e18d0d4d1a57f7f9713875dcf"}, + {file = "coverage-7.6.8-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3985b9be361d8fb6b2d1adc9924d01dec575a1d7453a14cccd73225cb79243ee"}, + {file = "coverage-7.6.8-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:644ec81edec0f4ad17d51c838a7d01e42811054543b76d4ba2c5d6af741ce2a6"}, + {file = "coverage-7.6.8-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f188a2402f8359cf0c4b1fe89eea40dc13b52e7b4fd4812450da9fcd210181d"}, + {file = "coverage-7.6.8-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e19122296822deafce89a0c5e8685704c067ae65d45e79718c92df7b3ec3d331"}, + {file = "coverage-7.6.8-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:13618bed0c38acc418896005732e565b317aa9e98d855a0e9f211a7ffc2d6638"}, + {file = "coverage-7.6.8-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:193e3bffca48ad74b8c764fb4492dd875038a2f9925530cb094db92bb5e47bed"}, + {file = "coverage-7.6.8-cp310-cp310-win32.whl", hash = "sha256:3988665ee376abce49613701336544041f2117de7b7fbfe91b93d8ff8b151c8e"}, + {file = "coverage-7.6.8-cp310-cp310-win_amd64.whl", hash = "sha256:f56f49b2553d7dd85fd86e029515a221e5c1f8cb3d9c38b470bc38bde7b8445a"}, + {file = "coverage-7.6.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:86cffe9c6dfcfe22e28027069725c7f57f4b868a3f86e81d1c62462764dc46d4"}, + {file = "coverage-7.6.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d82ab6816c3277dc962cfcdc85b1efa0e5f50fb2c449432deaf2398a2928ab94"}, + {file = "coverage-7.6.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13690e923a3932e4fad4c0ebfb9cb5988e03d9dcb4c5150b5fcbf58fd8bddfc4"}, + {file = "coverage-7.6.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4be32da0c3827ac9132bb488d331cb32e8d9638dd41a0557c5569d57cf22c9c1"}, + {file = "coverage-7.6.8-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44e6c85bbdc809383b509d732b06419fb4544dca29ebe18480379633623baafb"}, + {file = "coverage-7.6.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:768939f7c4353c0fac2f7c37897e10b1414b571fd85dd9fc49e6a87e37a2e0d8"}, + {file = "coverage-7.6.8-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e44961e36cb13c495806d4cac67640ac2866cb99044e210895b506c26ee63d3a"}, + {file = "coverage-7.6.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3ea8bb1ab9558374c0ab591783808511d135a833c3ca64a18ec927f20c4030f0"}, + {file = "coverage-7.6.8-cp311-cp311-win32.whl", hash = "sha256:629a1ba2115dce8bf75a5cce9f2486ae483cb89c0145795603d6554bdc83e801"}, + {file = "coverage-7.6.8-cp311-cp311-win_amd64.whl", hash = "sha256:fb9fc32399dca861584d96eccd6c980b69bbcd7c228d06fb74fe53e007aa8ef9"}, + {file = "coverage-7.6.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e683e6ecc587643f8cde8f5da6768e9d165cd31edf39ee90ed7034f9ca0eefee"}, + {file = "coverage-7.6.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1defe91d41ce1bd44b40fabf071e6a01a5aa14de4a31b986aa9dfd1b3e3e414a"}, + {file = "coverage-7.6.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7ad66e8e50225ebf4236368cc43c37f59d5e6728f15f6e258c8639fa0dd8e6d"}, + {file = "coverage-7.6.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fe47da3e4fda5f1abb5709c156eca207eacf8007304ce3019eb001e7a7204cb"}, + {file = "coverage-7.6.8-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:202a2d645c5a46b84992f55b0a3affe4f0ba6b4c611abec32ee88358db4bb649"}, + {file = "coverage-7.6.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4674f0daa1823c295845b6a740d98a840d7a1c11df00d1fd62614545c1583787"}, + {file = "coverage-7.6.8-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:74610105ebd6f33d7c10f8907afed696e79c59e3043c5f20eaa3a46fddf33b4c"}, + {file = "coverage-7.6.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:37cda8712145917105e07aab96388ae76e787270ec04bcb9d5cc786d7cbb8443"}, + {file = "coverage-7.6.8-cp312-cp312-win32.whl", hash = "sha256:9e89d5c8509fbd6c03d0dd1972925b22f50db0792ce06324ba069f10787429ad"}, + {file = "coverage-7.6.8-cp312-cp312-win_amd64.whl", hash = "sha256:379c111d3558272a2cae3d8e57e6b6e6f4fe652905692d54bad5ea0ca37c5ad4"}, + {file = "coverage-7.6.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0b0c69f4f724c64dfbfe79f5dfb503b42fe6127b8d479b2677f2b227478db2eb"}, + {file = "coverage-7.6.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c15b32a7aca8038ed7644f854bf17b663bc38e1671b5d6f43f9a2b2bd0c46f63"}, + {file = "coverage-7.6.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63068a11171e4276f6ece913bde059e77c713b48c3a848814a6537f35afb8365"}, + {file = "coverage-7.6.8-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f4548c5ead23ad13fb7a2c8ea541357474ec13c2b736feb02e19a3085fac002"}, + {file = "coverage-7.6.8-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b4b4299dd0d2c67caaaf286d58aef5e75b125b95615dda4542561a5a566a1e3"}, + {file = "coverage-7.6.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9ebfb2507751f7196995142f057d1324afdab56db1d9743aab7f50289abd022"}, + {file = "coverage-7.6.8-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c1b4474beee02ede1eef86c25ad4600a424fe36cff01a6103cb4533c6bf0169e"}, + {file = "coverage-7.6.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d9fd2547e6decdbf985d579cf3fc78e4c1d662b9b0ff7cc7862baaab71c9cc5b"}, + {file = "coverage-7.6.8-cp313-cp313-win32.whl", hash = "sha256:8aae5aea53cbfe024919715eca696b1a3201886ce83790537d1c3668459c7146"}, + {file = "coverage-7.6.8-cp313-cp313-win_amd64.whl", hash = "sha256:ae270e79f7e169ccfe23284ff5ea2d52a6f401dc01b337efb54b3783e2ce3f28"}, + {file = "coverage-7.6.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:de38add67a0af869b0d79c525d3e4588ac1ffa92f39116dbe0ed9753f26eba7d"}, + {file = "coverage-7.6.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b07c25d52b1c16ce5de088046cd2432b30f9ad5e224ff17c8f496d9cb7d1d451"}, + {file = "coverage-7.6.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62a66ff235e4c2e37ed3b6104d8b478d767ff73838d1222132a7a026aa548764"}, + {file = "coverage-7.6.8-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09b9f848b28081e7b975a3626e9081574a7b9196cde26604540582da60235fdf"}, + {file = "coverage-7.6.8-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:093896e530c38c8e9c996901858ac63f3d4171268db2c9c8b373a228f459bbc5"}, + {file = "coverage-7.6.8-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9a7b8ac36fd688c8361cbc7bf1cb5866977ece6e0b17c34aa0df58bda4fa18a4"}, + {file = "coverage-7.6.8-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:38c51297b35b3ed91670e1e4efb702b790002e3245a28c76e627478aa3c10d83"}, + {file = "coverage-7.6.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2e4e0f60cb4bd7396108823548e82fdab72d4d8a65e58e2c19bbbc2f1e2bfa4b"}, + {file = "coverage-7.6.8-cp313-cp313t-win32.whl", hash = "sha256:6535d996f6537ecb298b4e287a855f37deaf64ff007162ec0afb9ab8ba3b8b71"}, + {file = "coverage-7.6.8-cp313-cp313t-win_amd64.whl", hash = "sha256:c79c0685f142ca53256722a384540832420dff4ab15fec1863d7e5bc8691bdcc"}, + {file = "coverage-7.6.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3ac47fa29d8d41059ea3df65bd3ade92f97ee4910ed638e87075b8e8ce69599e"}, + {file = "coverage-7.6.8-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:24eda3a24a38157eee639ca9afe45eefa8d2420d49468819ac5f88b10de84f4c"}, + {file = "coverage-7.6.8-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4c81ed2820b9023a9a90717020315e63b17b18c274a332e3b6437d7ff70abe0"}, + {file = "coverage-7.6.8-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd55f8fc8fa494958772a2a7302b0354ab16e0b9272b3c3d83cdb5bec5bd1779"}, + {file = "coverage-7.6.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f39e2f3530ed1626c66e7493be7a8423b023ca852aacdc91fb30162c350d2a92"}, + {file = "coverage-7.6.8-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:716a78a342679cd1177bc8c2fe957e0ab91405bd43a17094324845200b2fddf4"}, + {file = "coverage-7.6.8-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:177f01eeaa3aee4a5ffb0d1439c5952b53d5010f86e9d2667963e632e30082cc"}, + {file = "coverage-7.6.8-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:912e95017ff51dc3d7b6e2be158dedc889d9a5cc3382445589ce554f1a34c0ea"}, + {file = "coverage-7.6.8-cp39-cp39-win32.whl", hash = "sha256:4db3ed6a907b555e57cc2e6f14dc3a4c2458cdad8919e40b5357ab9b6db6c43e"}, + {file = "coverage-7.6.8-cp39-cp39-win_amd64.whl", hash = "sha256:428ac484592f780e8cd7b6b14eb568f7c85460c92e2a37cb0c0e5186e1a0d076"}, + {file = "coverage-7.6.8-pp39.pp310-none-any.whl", hash = "sha256:5c52a036535d12590c32c49209e79cabaad9f9ad8aa4cbd875b68c4d67a9cbce"}, + {file = "coverage-7.6.8.tar.gz", hash = "sha256:8b2b8503edb06822c86d82fa64a4a5cb0760bb8f31f26e138ec743f422f37cfc"}, ] [package.dependencies] From a0a99433287bfde529614bf8f53e8a3dd92e8ba9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Nov 2024 15:06:46 +0000 Subject: [PATCH 02/34] Bump docker/build-push-action from 6.9.0 to 6.10.0 (#2161) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.9.0 to 6.10.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v6.9.0...v6.10.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build_docker_images.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_docker_images.yml b/.github/workflows/build_docker_images.yml index e166e83b3..a021ffc54 100644 --- a/.github/workflows/build_docker_images.yml +++ b/.github/workflows/build_docker_images.yml @@ -79,7 +79,7 @@ jobs: working-directory: spiffworkflow-frontend run: echo "$DOCKER_METADATA_OUTPUT_JSON" | jq '.labels' > version_info.json - name: Build and push Frontend Docker image - uses: docker/build-push-action@v6.9.0 + uses: docker/build-push-action@v6.10.0 with: # this action doesn't seem to respect working-directory so set context context: spiffworkflow-frontend @@ -135,7 +135,7 @@ jobs: working-directory: spiffworkflow-backend run: echo "$DOCKER_METADATA_OUTPUT_JSON" | jq '.labels' > version_info.json - name: Build and push Backend Docker image - uses: docker/build-push-action@v6.9.0 + uses: docker/build-push-action@v6.10.0 with: # this action doesn't seem to respect working-directory so set context context: spiffworkflow-backend @@ -189,7 +189,7 @@ jobs: type=ref,event=tag,enable=true,format=latest - name: Build and push the connector proxy - uses: docker/build-push-action@v6.9.0 + uses: docker/build-push-action@v6.10.0 with: # this action doesn't seem to respect working-directory so set context context: connector-proxy-demo From ee3d545cf48c437ec10519bf61a7c206d5350af9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 14:51:39 +0000 Subject: [PATCH 03/34] Bump safety from 3.2.7 to 3.2.11 in /spiffworkflow-backend (#2164) Bumps [safety](https://github.com/pyupio/safety) from 3.2.7 to 3.2.11. - [Release notes](https://github.com/pyupio/safety/releases) - [Changelog](https://github.com/pyupio/safety/blob/main/CHANGELOG.md) - [Commits](https://github.com/pyupio/safety/compare/3.2.7...3.2.11) --- updated-dependencies: - dependency-name: safety dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 30 ++++++++++++++-------------- spiffworkflow-backend/pyproject.toml | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index 2fb9f43be..d44a9a8ba 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -775,13 +775,13 @@ files = [ [[package]] name = "dparse" -version = "0.6.4b0" +version = "0.6.4" description = "A parser for Python dependency files" optional = false python-versions = ">=3.7" files = [ - {file = "dparse-0.6.4b0-py3-none-any.whl", hash = "sha256:592ff183348b8a5ea0a18442a7965e29445d3a26063654ec2c7e8ef42cd5753c"}, - {file = "dparse-0.6.4b0.tar.gz", hash = "sha256:f8d49b41a527f3d16a269f854e6665245b325e50e41d2c213810cb984553e5c8"}, + {file = "dparse-0.6.4-py3-none-any.whl", hash = "sha256:fbab4d50d54d0e739fbb4dedfc3d92771003a5b9aa8545ca7a7045e3b174af57"}, + {file = "dparse-0.6.4.tar.gz", hash = "sha256:90b29c39e3edc36c6284c82c4132648eaf28a01863eb3c231c2512196132201a"}, ] [package.dependencies] @@ -789,7 +789,7 @@ packaging = "*" tomli = {version = "*", markers = "python_version < \"3.11\""} [package.extras] -all = ["dparse[conda]", "dparse[pipenv]", "dparse[poetry]"] +all = ["pipenv", "poetry", "pyyaml"] conda = ["pyyaml"] pipenv = ["pipenv"] poetry = ["poetry"] @@ -2714,19 +2714,19 @@ files = [ [[package]] name = "safety" -version = "3.2.7" +version = "3.2.11" description = "Checks installed dependencies for known vulnerabilities and licenses." optional = false python-versions = ">=3.7" files = [ - {file = "safety-3.2.7-py3-none-any.whl", hash = "sha256:7f111b689901f2e65f7dd524e4c84158c368bcbbdbb38cbbb06ba1249250da11"}, - {file = "safety-3.2.7.tar.gz", hash = "sha256:cd6093b82d84e85815f037334f1b83ed89d31f767b7b324bfed6228c434f2667"}, + {file = "safety-3.2.11-py3-none-any.whl", hash = "sha256:3c339c380c9ea6a2d3ab09e88c01ee7ecaabaf963a1c98c021e13aacb9eeea3a"}, + {file = "safety-3.2.11.tar.gz", hash = "sha256:70a3b7cc75ba41907bf1705bcbbeab232688657c21088e108712ecb601fe0f20"}, ] [package.dependencies] Authlib = ">=1.2.0" Click = ">=8.0.2" -dparse = ">=0.6.4b0" +dparse = ">=0.6.4" filelock = ">=3.12.2,<3.13.0" jinja2 = ">=3.1.0" marshmallow = ">=3.15.0" @@ -2736,7 +2736,7 @@ pydantic = ">=1.10.12" requests = "*" rich = "*" "ruamel.yaml" = ">=0.17.21" -safety-schemas = ">=0.0.4" +safety-schemas = ">=0.0.8" setuptools = ">=65.5.1" typer = "*" typing-extensions = ">=4.7.1" @@ -2749,19 +2749,19 @@ spdx = ["spdx-tools (>=0.8.2)"] [[package]] name = "safety-schemas" -version = "0.0.4" +version = "0.0.9" description = "Schemas for Safety tools" optional = false python-versions = ">=3.7" files = [ - {file = "safety_schemas-0.0.4-py3-none-any.whl", hash = "sha256:b8b93e447bbffe62e4bd4364877f8ac0dc9688056911b2618d6f48773f9c9011"}, - {file = "safety_schemas-0.0.4.tar.gz", hash = "sha256:5ec6a8e2a80620a829a9d236165cce9d9e864b0345345d1fc983397eb5d2ac65"}, + {file = "safety_schemas-0.0.9-py3-none-any.whl", hash = "sha256:bf1f7d7c3149b8c4fcbb7f4f859da10c8e5008aa569294f8692c22534d6ef119"}, + {file = "safety_schemas-0.0.9.tar.gz", hash = "sha256:23044f88aa21213980b00e6002cf56229e1efc2b6cbdde3e90fc781ca6bbc217"}, ] [package.dependencies] -dparse = ">=0.6.4b0" +dparse = ">=0.6.4" packaging = ">=21.0" -pydantic = "*" +pydantic = ">=2.6.0,<2.10.0" ruamel-yaml = ">=0.17.21" typing-extensions = ">=4.7.1" @@ -3521,4 +3521,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "b4eecf306fd8695de48d6fce2d86d8ab33edfa3d6ccef36f109e22bd5bf2f9f9" +content-hash = "1baa668839c9026a3040116c5cb53d79b5a5d0a632dfa0ea2f16051f4914c966" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index 28afdc6bc..bcf42621d 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -94,7 +94,7 @@ spiffworkflow-backend = "spiffworkflow_backend.__main__:main" [tool.poetry.group.dev.dependencies] pytest = "^8.3.3" coverage = {extras = ["toml"], version = "^7.6"} -safety = "^3.2.7" +safety = "^3.2.11" mypy = ">=0.961" typeguard = "^4" xdoctest = {extras = ["colors"], version = "^1.2.0"} From def33b235fda142f67eef872e12fc24fcba66529 Mon Sep 17 00:00:00 2001 From: jasquat <2487833+jasquat@users.noreply.github.com> Date: Mon, 2 Dec 2024 11:10:10 -0500 Subject: [PATCH 04/34] Message race (#2165) * repro message race condition * some more debugging w/ burnettk * safe exception handling * more deubbing w/ burnettk * add failure log * load script * current state, db.session.begin did not actually help w/ burnettk * do not save items on message start event w/ burnettk * fixed tests w/ burnettk * some cleanup w/ burnettk * avoid test load script w/ burnettk --------- Co-authored-by: burnettk Co-authored-by: jasquat --- .pre-commit-config.yaml | 2 +- .../bin/load_test_message_start_event.py | 112 ++++++++++++++++++ spiffworkflow-backend/bin/login_with_user | 7 +- spiffworkflow-backend/pyproject.toml | 3 +- .../models/process_instance_queue.py | 3 + .../services/message_service.py | 88 ++++++++++---- .../services/process_instance_processor.py | 6 +- .../process_instance_queue_service.py | 65 +++++----- .../services/process_instance_service.py | 9 +- .../services/workflow_execution_service.py | 10 +- 10 files changed, 239 insertions(+), 66 deletions(-) create mode 100755 spiffworkflow-backend/bin/load_test_message_start_event.py diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7d5637d04..b62abdd23 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -35,7 +35,7 @@ repos: require_serial: true # this is also specified in spiffworkflow-backend/pyproject.toml but we run pre-commit # with all-files which ignores that - exclude: "/migrations/" + exclude: "/migrations/|bin/load_test_message_start_event.py" - id: ruff-format args: [format] files: ^spiffworkflow-backend/ diff --git a/spiffworkflow-backend/bin/load_test_message_start_event.py b/spiffworkflow-backend/bin/load_test_message_start_event.py new file mode 100755 index 000000000..37d7d6dcd --- /dev/null +++ b/spiffworkflow-backend/bin/load_test_message_start_event.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python3 +import concurrent.futures +import json +import os +import subprocess +import sys + + +def get_access_token(script_dir, username="admin", password="admin", realm_name="spiffworkflow"): + """ + Get access token once + """ + get_token_cmd = f"{script_dir}/get_token {username} {password} {realm_name}" + return subprocess.check_output(get_token_cmd, shell=True, text=True).strip() + + +def run_curl_command(message_identifier, access_token, backend_base_url): + """ + Execute the curl command for load testing + + :return: Tuple of (success, result) + """ + try: + # Login command + login_cmd = f"curl --silent -X POST '{backend_base_url}/v1.0/login_with_access_token?access_token={access_token}' -H 'Authorization: Bearer {access_token}' >/dev/null" + subprocess.run(login_cmd, shell=True, check=True) + + # Message sending command + message_cmd = f"curl --silent -X POST '{backend_base_url}/v1.0/messages/{message_identifier}?execution_mode=asynchronous' -H 'Authorization: Bearer {access_token}' -d '{{\"payload\": {{\"email\": \"HEY@example.com\"}}}}' -H 'Content-type: application/json'" + result = subprocess.check_output(message_cmd, shell=True, text=True) + + # Check for errors + try: + error_code = json.loads(result).get("error_code") + if error_code is not None and error_code != "null": + return False, result + except json.JSONDecodeError: + pass + + return True, result + + except subprocess.CalledProcessError as e: + return False, str(e) + except Exception as e: + return False, str(e) + + +def load_test(message_identifier, num_requests=10, max_workers=5, username="admin", password="admin", realm_name="spiffworkflow"): + """ + Perform load testing with concurrent requests and failure logging + """ + script_dir = os.path.dirname(os.path.abspath(__file__)) + backend_base_url = os.environ.get("BACKEND_BASE_URL", "http://localhost:7000") + + # Get access token once + access_token = get_access_token(script_dir, username, password, realm_name) + + successful_requests = 0 + failed_requests = 0 + failure_log = [] + + # Use ThreadPoolExecutor for I/O-bound tasks like network requests + with concurrent.futures.ThreadPoolExecutor(max_workers=max_workers) as executor: + # Create futures for all requests + futures = [ + executor.submit(run_curl_command, message_identifier, access_token, backend_base_url) for _ in range(num_requests) + ] + + # Collect and process results + for i, future in enumerate(concurrent.futures.as_completed(futures), 1): + success, result = future.result() + if success: + successful_requests += 1 + print(f"Request {i}: Success") + else: + failed_requests += 1 + failure_log.append({"request_number": i, "error_message": result}) + print(f"Request {i}: Failure") + + # Log failures to a file if any exist + if failure_log: + filename = "failure_log.json" + with open(filename, "w") as f: + json.dump(failure_log, f, indent=2) + print(f"\nFailure details logged to {filename}") + + # Print summary + print("\nLoad Test Summary:") + print(f"Total Requests: {num_requests}") + print(f"Successful Requests: {successful_requests}") + print(f"Failed Requests: {failed_requests}") + print(f"Success Rate: {successful_requests/num_requests*100:.2f}%") + + +def main(): + # Parse command-line arguments + if len(sys.argv) < 2: + print("Usage: python load_test.py [num_requests] [max_workers] [username] [password] [realm_name]") + sys.exit(1) + + message_identifier = sys.argv[1] + num_requests = int(sys.argv[2]) if len(sys.argv) > 2 else 10 + max_workers = int(sys.argv[3]) if len(sys.argv) > 3 else 5 + username = sys.argv[4] if len(sys.argv) > 4 else "admin" + password = sys.argv[5] if len(sys.argv) > 5 else "admin" + realm_name = sys.argv[6] if len(sys.argv) > 6 else "spiffworkflow" + + load_test(message_identifier, num_requests, max_workers, username, password, realm_name) + + +if __name__ == "__main__": + main() diff --git a/spiffworkflow-backend/bin/login_with_user b/spiffworkflow-backend/bin/login_with_user index b8b7a3981..026195921 100755 --- a/spiffworkflow-backend/bin/login_with_user +++ b/spiffworkflow-backend/bin/login_with_user @@ -18,7 +18,10 @@ if [[ -z "${1:-}" ]]; then exit 1 fi -script_dir="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" +script_dir="$( + cd -- "$(dirname "$0")" >/dev/null 2>&1 + pwd -P +)" if [[ -z "${REALM_NAME:-}" ]]; then REALM_NAME=spiffworkflow @@ -30,5 +33,5 @@ if [[ -z "$access_token" || "$access_token" == "null" ]]; then else echo "access_token: ${access_token}" - curl -v -X POST "${BACKEND_BASE_URL}/v1.0/login_with_access_token?access_token=${access_token}&authentication_identifier=default" -H "Authorization: Bearer $access_token" + curl -v -X POST "${BACKEND_BASE_URL:-http://localhost:7000}/v1.0/login_with_access_token?access_token=${access_token}&authentication_identifier=default" -H "Authorization: Bearer $access_token" fi diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index bcf42621d..68b209d93 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -227,7 +227,8 @@ line-length = 130 target-version = "py310" exclude = [ - "migrations" + "migrations", + "bin/load_test_message_start_event.py" ] [tool.ruff.lint.per-file-ignores] diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/models/process_instance_queue.py b/spiffworkflow-backend/src/spiffworkflow_backend/models/process_instance_queue.py index babd8c42a..61456cafb 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/models/process_instance_queue.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/models/process_instance_queue.py @@ -1,6 +1,7 @@ from dataclasses import dataclass from sqlalchemy import ForeignKey +from sqlalchemy.orm import relationship from spiffworkflow_backend.models.db import SpiffworkflowBaseDBModel from spiffworkflow_backend.models.db import db @@ -18,6 +19,8 @@ class ProcessInstanceQueueModel(SpiffworkflowBaseDBModel): locked_at_in_seconds: int | None = db.Column(db.Integer, index=True, nullable=True) status: str = db.Column(db.String(50), index=True) + process_instance = relationship(ProcessInstanceModel) + # for timers. right now the apscheduler jobs without celery check for waiting process instances. # if the instance's run_at_in_seconds is now or earlier, the instance will run. # so we can save some effort if we detect that it is scheduled to run later. diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/message_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/message_service.py index 0ca8ef8d7..7378abea3 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/message_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/message_service.py @@ -59,10 +59,13 @@ def correlate_send_message( message_type=MessageTypes.receive.value, ).all() message_instance_receive: MessageInstanceModel | None = None + processor_receive = None try: for message_instance in available_receive_messages: if message_instance.correlates(message_instance_send, CustomBpmnScriptEngine()): message_instance_receive = message_instance + message_triggerable_process_model = None + receiving_process_instance = None if message_instance_receive is None: # Check for a message triggerable process and start that to create a new message_instance_receive message_triggerable_process_model = MessageTriggerableProcessModel.query.filter_by( @@ -72,7 +75,7 @@ def correlate_send_message( user: UserModel | None = message_instance_send.user if user is None: user = UserService.find_or_create_system_user() - receiving_process_instance = MessageService.start_process_with_message( + receiving_process_instance, processor_receive = MessageService.start_process_with_message( message_triggerable_process_model, user, message_instance_send=message_instance_send, @@ -86,20 +89,37 @@ def correlate_send_message( else: receiving_process_instance = MessageService.get_process_instance_for_message_instance(message_instance_receive) - # Assure we can send the message, otherwise keep going. - if message_instance_receive is None or not receiving_process_instance.can_receive_message(): + if processor_receive is None and message_instance_receive is not None: + # Set the receiving message to running, so it is not altered elswhere ... + message_instance_receive.status = "running" + db.session.add(message_instance_receive) + db.session.commit() + + if ( + message_instance_receive is None + or receiving_process_instance is None + or not receiving_process_instance.can_receive_message() + ): + # Assure we can send the message, otherwise keep going. message_instance_send.status = "ready" db.session.add(message_instance_send) - db.session.commit() + if message_instance_receive is not None: + message_instance_receive.status = "ready" + db.session.add(message_instance_receive) + if processor_receive is not None: + processor_receive.save() + else: + db.session.commit() return None try: - with ProcessInstanceQueueService.dequeued(receiving_process_instance): - # Set the receiving message to running, so it is not altered elswhere ... - message_instance_receive.status = "running" - + with ProcessInstanceQueueService.dequeued(receiving_process_instance, needs_dequeue=False): cls.process_message_receive( - receiving_process_instance, message_instance_receive, message_instance_send, execution_mode=execution_mode + receiving_process_instance, + message_instance_receive, + message_instance_send, + execution_mode=execution_mode, + processor_receive=processor_receive, ) message_instance_receive.status = "completed" message_instance_receive.counterpart_id = message_instance_send.id @@ -107,7 +127,10 @@ def correlate_send_message( message_instance_send.status = "completed" message_instance_send.counterpart_id = message_instance_receive.id db.session.add(message_instance_send) - db.session.commit() + if processor_receive is not None: + processor_receive.save() + else: + db.session.commit() if should_queue_process_instance(receiving_process_instance, execution_mode=execution_mode): queue_process_instance_if_appropriate(receiving_process_instance, execution_mode=execution_mode) return message_instance_receive @@ -115,7 +138,13 @@ def correlate_send_message( except ProcessInstanceIsAlreadyLockedError: message_instance_send.status = "ready" db.session.add(message_instance_send) - db.session.commit() + if message_instance_receive is not None: + message_instance_receive.status = "ready" + db.session.add(message_instance_receive) + if processor_receive is not None: + processor_receive.save() + else: + db.session.commit() return None except Exception as exception: @@ -127,7 +156,10 @@ def correlate_send_message( message_instance_receive.status = "failed" message_instance_receive.failure_cause = str(exception) db.session.add(message_instance_receive) - db.session.commit() + if processor_receive is not None: + processor_receive.save() + else: + db.session.commit() raise exception @classmethod @@ -152,16 +184,14 @@ def start_process_with_message( user: UserModel, message_instance_send: MessageInstanceModel | None = None, execution_mode: str | None = None, - ) -> ProcessInstanceModel: + ) -> tuple[ProcessInstanceModel, ProcessInstanceProcessor]: """Start up a process instance, so it is ready to catch the event.""" receiving_process_instance = ProcessInstanceService.create_process_instance_from_process_model_identifier( - message_triggerable_process_model.process_model_identifier, - user, + message_triggerable_process_model.process_model_identifier, user, commit_db=False ) - with ProcessInstanceQueueService.dequeued(receiving_process_instance): + with ProcessInstanceQueueService.dequeued(receiving_process_instance, needs_dequeue=False): processor_receive = ProcessInstanceProcessor(receiving_process_instance) cls._cancel_non_matching_start_events(processor_receive, message_triggerable_process_model) - processor_receive.save() execution_strategy_name = None if execution_mode == ProcessInstanceExecutionMode.synchronous.value: @@ -176,9 +206,9 @@ def start_process_with_message( ): processor_receive.bpmn_process_instance.correlations = message_instance_send.correlation_keys - processor_receive.do_engine_steps(save=True, execution_strategy_name=execution_strategy_name) + processor_receive.do_engine_steps(save=False, execution_strategy_name=execution_strategy_name, needs_dequeue=False) - return receiving_process_instance + return (receiving_process_instance, processor_receive) @staticmethod def process_message_receive( @@ -186,6 +216,7 @@ def process_message_receive( message_instance_receive: MessageInstanceModel, message_instance_send: MessageInstanceModel, execution_mode: str | None = None, + processor_receive: ProcessInstanceProcessor | None = None, ) -> None: correlation_properties = [] for cr in message_instance_receive.correlation_rules: @@ -205,22 +236,31 @@ def process_message_receive( payload=message_instance_send.payload, correlations=message_instance_send.correlation_keys, ) - processor_receive = ProcessInstanceProcessor(receiving_process_instance) - processor_receive.bpmn_process_instance.send_event(bpmn_event) + processor_receive_to_use = processor_receive + save_engine_steps = False + if processor_receive_to_use is None: + processor_receive_to_use = ProcessInstanceProcessor(receiving_process_instance) + save_engine_steps = True + processor_receive_to_use.bpmn_process_instance.send_event(bpmn_event) execution_strategy_name = None if should_queue_process_instance(receiving_process_instance, execution_mode=execution_mode): # even if we are queueing, we ran a "send_event" call up above, and it updated some tasks. # we need to serialize these task updates to the db. do_engine_steps with save does that. - processor_receive.do_engine_steps(save=True, execution_strategy_name="run_current_ready_tasks") + processor_receive_to_use.do_engine_steps( + save=save_engine_steps, execution_strategy_name="run_current_ready_tasks", needs_dequeue=save_engine_steps + ) elif not ProcessInstanceTmpService.is_enqueued_to_run_in_the_future(receiving_process_instance): execution_strategy_name = None if execution_mode == ProcessInstanceExecutionMode.synchronous.value: execution_strategy_name = "greedy" - processor_receive.do_engine_steps(save=True, execution_strategy_name=execution_strategy_name) + processor_receive_to_use.do_engine_steps( + save=save_engine_steps, execution_strategy_name=execution_strategy_name, needs_dequeue=save_engine_steps + ) message_instance_receive.status = MessageStatuses.completed.value db.session.add(message_instance_receive) - db.session.commit() + if save_engine_steps: + db.session.commit() @classmethod def find_message_triggerable_process_model(cls, modified_message_name: str) -> MessageTriggerableProcessModel: diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_processor.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_processor.py index 25d5ea4d4..05ebe9541 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_processor.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_processor.py @@ -1575,6 +1575,7 @@ def do_engine_steps( execution_strategy: ExecutionStrategy | None = None, should_schedule_waiting_timer_events: bool = True, ignore_cannot_be_run_error: bool = False, + needs_dequeue: bool = True, ) -> TaskRunnability: if not ignore_cannot_be_run_error and not self.process_instance_model.allowed_to_run(): raise ProcessInstanceCannotBeRunError( @@ -1582,7 +1583,7 @@ def do_engine_steps( f"'{self.process_instance_model.status}' and therefore cannot run." ) if self.process_instance_model.persistence_level != "none": - with ProcessInstanceQueueService.dequeued(self.process_instance_model): + with ProcessInstanceQueueService.dequeued(self.process_instance_model, needs_dequeue=needs_dequeue): # TODO: ideally we just lock in the execution service, but not sure # about _add_bpmn_process_definitions and if that needs to happen in # the same lock like it does on main @@ -1592,6 +1593,7 @@ def do_engine_steps( execution_strategy_name, execution_strategy, should_schedule_waiting_timer_events=should_schedule_waiting_timer_events, + needs_dequeue=needs_dequeue, ) else: return self._do_engine_steps( @@ -1609,6 +1611,7 @@ def _do_engine_steps( execution_strategy_name: str | None = None, execution_strategy: ExecutionStrategy | None = None, should_schedule_waiting_timer_events: bool = True, + needs_dequeue: bool = True, ) -> TaskRunnability: self._add_bpmn_process_definitions( self.serialize(), @@ -1645,6 +1648,7 @@ def _do_engine_steps( save, should_schedule_waiting_timer_events=should_schedule_waiting_timer_events, # profile=True, + needs_dequeue=needs_dequeue, ) self.task_model_mapping, self.bpmn_subprocess_mapping = task_model_delegate.get_guid_to_db_object_mappings() self.check_all_tasks() diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_queue_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_queue_service.py index c58f26728..a9ba54909 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_queue_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_queue_service.py @@ -33,11 +33,10 @@ def _configure_and_save_queue_entry( queue_entry.locked_at_in_seconds = None db.session.add(queue_entry) - db.session.commit() @classmethod def enqueue_new_process_instance(cls, process_instance: ProcessInstanceModel, run_at_in_seconds: int) -> None: - queue_entry = ProcessInstanceQueueModel(process_instance_id=process_instance.id, run_at_in_seconds=run_at_in_seconds) + queue_entry = ProcessInstanceQueueModel(process_instance=process_instance, run_at_in_seconds=run_at_in_seconds) cls._configure_and_save_queue_entry(process_instance, queue_entry) @classmethod @@ -50,6 +49,7 @@ def _enqueue(cls, process_instance: ProcessInstanceModel) -> None: if current_time > queue_entry.run_at_in_seconds: queue_entry.run_at_in_seconds = current_time cls._configure_and_save_queue_entry(process_instance, queue_entry) + db.session.commit() @classmethod def _dequeue(cls, process_instance: ProcessInstanceModel) -> None: @@ -74,6 +74,7 @@ def _dequeue(cls, process_instance: ProcessInstanceModel) -> None: ) .first() ) + db.session.refresh(queue_entry) if queue_entry is None: raise ProcessInstanceIsNotEnqueuedError( @@ -85,7 +86,7 @@ def _dequeue(cls, process_instance: ProcessInstanceModel) -> None: if queue_entry.locked_by is None: message = "It was locked by something else when we tried to lock it in the db, but it has since been unlocked." raise ProcessInstanceIsAlreadyLockedError( - f"{locked_by} cannot lock process instance {process_instance.id}. {message}" + f"{locked_by} cannot lock process instance {process_instance.id}. {queue_entry.locked_by}. {message}" ) ProcessInstanceLockService.lock(process_instance.id, queue_entry) @@ -114,34 +115,42 @@ def dequeued( process_instance: ProcessInstanceModel, max_attempts: int = 1, ignore_cannot_be_run_error: bool = False, + needs_dequeue: bool = True, ) -> Generator[None, None, None]: - reentering_lock = ProcessInstanceLockService.has_lock(process_instance.id) + # needs_dequeue is more of a hack so we can avoid db commits in special code paths. + # ideally all commits would happen at the top level such as in controllers or in background + # service entry paths and then we can lock from those same or closer locations when necessary. + if needs_dequeue: + reentering_lock = ProcessInstanceLockService.has_lock(process_instance.id) - if not reentering_lock: - # this can blow up with ProcessInstanceIsNotEnqueuedError or ProcessInstanceIsAlreadyLockedError - # that's fine, let it bubble up. and in that case, there's no need to _enqueue / unlock - cls._dequeue_with_retries(process_instance, max_attempts=max_attempts) - try: - yield - except ProcessInstanceCannotBeRunError as ex: - if not ignore_cannot_be_run_error: - raise ex - except Exception as ex: - # these events are handled in the WorkflowExecutionService. - # that is, we don't need to add error_detail records here, etc. - if not isinstance(ex, WorkflowExecutionServiceError): - ProcessInstanceTmpService.add_event_to_process_instance( - process_instance, ProcessInstanceEventType.process_instance_error.value, exception=ex - ) - - # we call dequeued multiple times but we want this code to only happen once. - # assume that if we are not reentering_lock then this is the top level call and should be the one to handle the error. if not reentering_lock: - ErrorHandlingService.handle_error(process_instance, ex) - raise ex - finally: - if not reentering_lock: - cls._enqueue(process_instance) + # this can blow up with ProcessInstanceIsNotEnqueuedError or ProcessInstanceIsAlreadyLockedError + # that's fine, let it bubble up. and in that case, there's no need to _enqueue / unlock + cls._dequeue_with_retries(process_instance, max_attempts=max_attempts) + try: + yield + except ProcessInstanceCannotBeRunError as ex: + if not ignore_cannot_be_run_error: + raise ex + except Exception as ex: + # these events are handled in the WorkflowExecutionService. + # that is, we don't need to add error_detail records here, etc. + if not isinstance(ex, WorkflowExecutionServiceError): + ProcessInstanceTmpService.add_event_to_process_instance( + process_instance, ProcessInstanceEventType.process_instance_error.value, exception=ex + ) + + # we call dequeued multiple times but we want this code to only happen once. + # assume that if we are not reentering_lock then this is the top level call and + # should be the one to handle the error. + if not reentering_lock: + ErrorHandlingService.handle_error(process_instance, ex) + raise ex + finally: + if not reentering_lock: + cls._enqueue(process_instance) + else: + yield @classmethod def entries_with_status( diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_service.py index d73972c3a..6449dc277 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/process_instance_service.py @@ -129,8 +129,6 @@ def create_process_instance( user: UserModel, start_configuration: StartConfiguration | None = None, ) -> tuple[ProcessInstanceModel, StartConfiguration]: - # FIXME: this should not be necessary. fix the code paths that make this necessary - db.session.commit() git_revision_error = None try: current_git_revision = GitService.get_current_revision() @@ -147,7 +145,6 @@ def create_process_instance( bpmn_version_control_identifier=current_git_revision, ) db.session.add(process_instance_model) - db.session.commit() if git_revision_error is not None: message = ( @@ -381,10 +378,13 @@ def create_process_instance_from_process_model_identifier( cls, process_model_identifier: str, user: UserModel, + commit_db: bool = True, ) -> ProcessInstanceModel: process_model = ProcessModelService.get_process_model(process_model_identifier) process_instance_model, (cycle_count, _, duration_in_seconds) = cls.create_process_instance(process_model, user) cls.register_process_model_cycles(process_model_identifier, cycle_count, duration_in_seconds) + if commit_db: + db.session.commit() return process_instance_model @classmethod @@ -398,8 +398,6 @@ def register_process_model_cycles(cls, process_model_identifier: str, cycle_coun for cycle in cycles: db.session.delete(cycle) - db.session.commit() - if cycle_count != 0: if duration_in_seconds == 0: raise ApiError( @@ -414,7 +412,6 @@ def register_process_model_cycles(cls, process_model_identifier: str, cycle_coun current_cycle=0, ) db.session.add(cycle) - db.session.commit() @classmethod def schedule_next_process_model_cycle(cls, process_instance_model: ProcessInstanceModel) -> None: diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/workflow_execution_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/workflow_execution_service.py index ae811cc31..6cc1040bf 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/workflow_execution_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/workflow_execution_service.py @@ -509,6 +509,7 @@ def run_and_save( save: bool = False, should_schedule_waiting_timer_events: bool = True, profile: bool = False, + needs_dequeue: bool = True, ) -> TaskRunnability: if profile: import cProfile @@ -516,19 +517,22 @@ def run_and_save( task_runnability = TaskRunnability.unknown_if_ready_tasks with cProfile.Profile() as pr: - task_runnability = self._run_and_save(exit_at, save, should_schedule_waiting_timer_events) + task_runnability = self._run_and_save( + exit_at, save, should_schedule_waiting_timer_events, needs_dequeue=needs_dequeue + ) pr.print_stats(sort=SortKey.CUMULATIVE) return task_runnability - return self._run_and_save(exit_at, save, should_schedule_waiting_timer_events) + return self._run_and_save(exit_at, save, should_schedule_waiting_timer_events, needs_dequeue=needs_dequeue) def _run_and_save( self, exit_at: None = None, save: bool = False, should_schedule_waiting_timer_events: bool = True, + needs_dequeue: bool = True, ) -> TaskRunnability: - if self.process_instance_model.persistence_level != "none": + if needs_dequeue and self.process_instance_model.persistence_level != "none": with safe_assertion(ProcessInstanceLockService.has_lock(self.process_instance_model.id)) as tripped: if tripped: raise AssertionError( From 48532485f751f5a3f5d8c7ad09fb0e835130377b Mon Sep 17 00:00:00 2001 From: jasquat <2487833+jasquat@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:26:53 -0500 Subject: [PATCH 05/34] remove the version restriction for gunicorn (#2170) * remove the version restriction for gunicorn w/ burnettk * ignore werkzeug safety issues w/ burnettk --------- Co-authored-by: jasquat --- spiffworkflow-backend/bin/run_ci_session | 9 +++++- .../bin/wait_for_backend_to_be_up | 11 ++----- spiffworkflow-backend/poetry.lock | 29 +++++-------------- spiffworkflow-backend/pyproject.toml | 5 +--- 4 files changed, 18 insertions(+), 36 deletions(-) diff --git a/spiffworkflow-backend/bin/run_ci_session b/spiffworkflow-backend/bin/run_ci_session index 4164953cc..b96b6d472 100755 --- a/spiffworkflow-backend/bin/run_ci_session +++ b/spiffworkflow-backend/bin/run_ci_session @@ -72,7 +72,14 @@ elif [[ "${session_type}" == "mypy" ]]; then elif [[ "${session_type}" == "safety" ]]; then # 72731 because flask-cors 5 actually fixes but safety just doesn't know: allows the Access-Control-Allow-Private-Network CORS header to be set to true by default - poetry run safety check --full-report --ignore=70624 --ignore=70612 --ignore=71600 --ignore=71594 --ignore=72731 + poetry run safety check --full-report \ + --ignore=70624 \ + --ignore=70612 \ + --ignore=71600 \ + --ignore=71594 \ + --ignore=73969 \ + --ignore=73889 \ + --ignore=72731 elif [[ "${session_type}" == "coverage" ]]; then if ls .coverage.* 1>/dev/null 2>&1; then diff --git a/spiffworkflow-backend/bin/wait_for_backend_to_be_up b/spiffworkflow-backend/bin/wait_for_backend_to_be_up index f9159d1cd..d9f0dd490 100755 --- a/spiffworkflow-backend/bin/wait_for_backend_to_be_up +++ b/spiffworkflow-backend/bin/wait_for_backend_to_be_up @@ -1,7 +1,7 @@ #!/usr/bin/env bash function error_handler() { - >&2 echo "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}." + echo >&2 "Exited with BAD EXIT CODE '${2}' in ${0} script at line: ${1}." exit "$2" } trap 'error_handler ${LINENO} $?' ERR @@ -15,18 +15,11 @@ backend_base_url="http://localhost:${port}" echo "waiting for backend to come up at ${backend_base_url} ..." while [[ "$(curl -s -o /dev/null -w '%{http_code}' "${backend_base_url}/v1.0/status")" != "200" ]]; do if [[ "$attempts" -gt "$max_attempts" ]]; then - >&2 echo "ERROR: Server not up after $max_attempts attempts. There is probably a problem" + echo >&2 "ERROR: Server not up after $max_attempts attempts. There is probably a problem" exit 1 fi attempts=$((attempts + 1)) sleep 1 done -echo "attempting to hit backend with SCRIPT_NAME as well, just to make sure that works, since gunicorn broke this in 22.0.0" -status_code_for_script_name_check="$(curl -s -o /dev/null -w '%{http_code}' -H "SCRIPT_NAME: /api" "${backend_base_url}/api/v1.0/status")" -if [[ "$status_code_for_script_name_check" != "200" ]]; then - >&2 echo "ERROR: Server came up, but the additional check for hitting it at /api with a SCRIPT_NAME header failed. This probably means that celery was upgraded past 22.0.0 and they still haven't fixed the bug linked in pyproject.toml. status code was: ${status_code_for_script_name_check}" - exit 1 -fi - echo "backend up" diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index d44a9a8ba..622fb246f 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -2258,7 +2258,6 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -2635,51 +2634,37 @@ python-versions = ">=3.6" files = [ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:d92f81886165cb14d7b067ef37e142256f1c6a90a65cd156b063a43da1708cfd"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b5edda50e5e9e15e54a6a8a0070302b00c518a9d32accc2346ad6c984aacd279"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:7048c338b6c86627afb27faecf418768acb6331fc24cfa56c93e8c9780f815fa"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:3fcc54cb0c8b811ff66082de1680b4b14cf8a81dce0d4fbf665c2265a81e07a1"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:665f58bfd29b167039f714c6998178d27ccd83984084c286110ef26b230f259f"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:9eb5dee2772b0f704ca2e45b1713e4e5198c18f515b52743576d196348f374d3"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, @@ -3521,4 +3506,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "1baa668839c9026a3040116c5cb53d79b5a5d0a632dfa0ea2f16051f4914c966" +content-hash = "8ffd79f5a1c48f92b09c5b2595a4adc653f7bc78fc1066994cd0c5ac2bbd4431" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index 68b209d93..9df291c11 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -53,10 +53,7 @@ Jinja2 = "^3.1.3" RestrictedPython = "^7.4" Flask-SQLAlchemy = "^3" -# 22.0.0 breaks passing in SCRIPT_NAME as a header which breaks status environments -# https://github.com/benoitc/gunicorn/issues/3200 -# https://github.com/benoitc/gunicorn/issues/2650 -gunicorn = "23.0.0" +gunicorn = "^23.0.0" # https://github.com/dropbox/sqlalchemy-stubs/pull/251 # someday get off github From 995a9800070f8ef1ddd511138f6d20d09541c050 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 19:52:05 +0000 Subject: [PATCH 06/34] Bump flask-jwt-extended from 4.6.0 to 4.7.1 in /spiffworkflow-backend (#2167) Bumps [flask-jwt-extended](https://github.com/vimalloc/flask-jwt-extended) from 4.6.0 to 4.7.1. - [Release notes](https://github.com/vimalloc/flask-jwt-extended/releases) - [Commits](https://github.com/vimalloc/flask-jwt-extended/compare/4.6.0...4.7.1) --- updated-dependencies: - dependency-name: flask-jwt-extended dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 37 +++++++++++++++++++--------- spiffworkflow-backend/pyproject.toml | 2 +- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index 622fb246f..0d2159c03 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -909,13 +909,13 @@ Flask = ">=0.9" [[package]] name = "flask-jwt-extended" -version = "4.6.0" +version = "4.7.1" description = "Extended JWT integration with Flask" optional = false -python-versions = ">=3.7,<4" +python-versions = "<4,>=3.9" files = [ - {file = "Flask-JWT-Extended-4.6.0.tar.gz", hash = "sha256:9215d05a9413d3855764bcd67035e75819d23af2fafb6b55197eb5a3313fdfb2"}, - {file = "Flask_JWT_Extended-4.6.0-py2.py3-none-any.whl", hash = "sha256:63a28fc9731bcc6c4b8815b6f954b5904caa534fc2ae9b93b1d3ef12930dca95"}, + {file = "Flask_JWT_Extended-4.7.1-py2.py3-none-any.whl", hash = "sha256:52f35bf0985354d7fb7b876e2eb0e0b141aaff865a22ff6cc33d9a18aa987978"}, + {file = "flask_jwt_extended-4.7.1.tar.gz", hash = "sha256:8085d6757505b6f3291a2638c84d207e8f0ad0de662d1f46aa2f77e658a0c976"}, ] [package.dependencies] @@ -2258,6 +2258,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -2634,37 +2635,51 @@ python-versions = ">=3.6" files = [ {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, - {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:d92f81886165cb14d7b067ef37e142256f1c6a90a65cd156b063a43da1708cfd"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, - {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:b5edda50e5e9e15e54a6a8a0070302b00c518a9d32accc2346ad6c984aacd279"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, - {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:7048c338b6c86627afb27faecf418768acb6331fc24cfa56c93e8c9780f815fa"}, {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, - {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:3fcc54cb0c8b811ff66082de1680b4b14cf8a81dce0d4fbf665c2265a81e07a1"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, - {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:665f58bfd29b167039f714c6998178d27ccd83984084c286110ef26b230f259f"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, - {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:9eb5dee2772b0f704ca2e45b1713e4e5198c18f515b52743576d196348f374d3"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, @@ -3506,4 +3521,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "8ffd79f5a1c48f92b09c5b2595a4adc653f7bc78fc1066994cd0c5ac2bbd4431" +content-hash = "f1414a5dedc7f9375c4011eb902a3c16668e5d0347d14d1d2e47732335e366b0" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index 9df291c11..4d5dc0163 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -21,7 +21,7 @@ flask = "2.2.5" flask-admin = "*" flask-bcrypt = "*" flask-cors = "*" -flask-jwt-extended = "^4.4.4" +flask-jwt-extended = "^4.7.1" flask-marshmallow = "*" flask-migrate = "*" flask-restful = "*" From a3c5219a942729482c4797336aa8218de6502d09 Mon Sep 17 00:00:00 2001 From: Bret Mogilefsky Date: Tue, 3 Dec 2024 03:48:56 -0800 Subject: [PATCH 07/34] Enable using read-only HTTPS repositories (#2171) * Enable using read-only HTTPS repositories If someone wants to clone read-only from an `https://github.com/...` URL, that should be permitted, and in that case they shouldn't be required to provide an SSH key. * Add comment on ssh vs https behavior --- spiffworkflow-backend/bin/clone_process_models | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/spiffworkflow-backend/bin/clone_process_models b/spiffworkflow-backend/bin/clone_process_models index 90fee5f7f..99937cf62 100755 --- a/spiffworkflow-backend/bin/clone_process_models +++ b/spiffworkflow-backend/bin/clone_process_models @@ -24,18 +24,23 @@ fi if [[ -z "${SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY_PATH:-}" ]]; then if [[ -n "${SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY:-}" ]]; then - export SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY_PATH=$(mktemp /tmp/ssh_private_key.XXXXXX) + SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY_PATH=$(mktemp /tmp/ssh_private_key.XXXXXX) + export SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY_PATH chmod 600 "${SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY_PATH}" echo "${SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY}" >"${SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY_PATH}" fi fi +# Only configure SSH if a private key is available; CLONE_URL might be HTTPS, which is still valid +if [[ -n "${SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY_PATH}" ]]; then + export GIT_SSH_COMMAND="ssh -F /dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ${SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY_PATH}" +fi + if [[ ! -d "${SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR}/.git" ]]; then # otherwise git clone will not clone since the directory is not empty if [[ -d "${SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR}/lost+found" ]]; then rm -r "${SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR}/lost+found" fi - export GIT_SSH_COMMAND="ssh -F /dev/null -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ${SPIFFWORKFLOW_BACKEND_GIT_SSH_PRIVATE_KEY_PATH}" git clone -b "$SPIFFWORKFLOW_BACKEND_GIT_SOURCE_BRANCH" "$SPIFFWORKFLOW_BACKEND_GIT_PUBLISH_CLONE_URL" "$SPIFFWORKFLOW_BACKEND_BPMN_SPEC_ABSOLUTE_DIR" fi From bdb010fda1d17280863643ea3b573e27de9ff2b2 Mon Sep 17 00:00:00 2001 From: jasquat <2487833+jasquat@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:44:08 -0500 Subject: [PATCH 08/34] updated snyk configs to ignore werkzeug issues since we cannot upgrade it w/ burnettk (#2173) Co-authored-by: jasquat --- spiffworkflow-backend/.snyk | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/spiffworkflow-backend/.snyk b/spiffworkflow-backend/.snyk index ad0974d1e..dcde9ceba 100644 --- a/spiffworkflow-backend/.snyk +++ b/spiffworkflow-backend/.snyk @@ -31,8 +31,18 @@ ignore: SNYK-PYTHON-WERKZEUG-6808933: - '*': reason: unable to upgrade. see above comment. - expires: 2024-11-01T00:00:00.000Z + expires: 2025-11-01T00:00:00.000Z created: 2024-05-13T17:22:47.098Z + SNYK-PYTHON-WERKZEUG-8309091: + - '*': + reason: unable to upgrade. see above comment. + expires: 2025-11-01T00:00:00.000Z + created: 2024-12-03T17:22:47.098Z + SNYK-PYTHON-WERKZEUG-8309092: + - '*': + reason: unable to upgrade. see above comment. + expires: 2025-11-01T00:00:00.000Z + created: 2024-12-03T17:22:47.098Z patch: {} From 7cd38a3a22bf62a051aba8f14391643603ce81f4 Mon Sep 17 00:00:00 2001 From: Twentyninehairs Date: Wed, 4 Dec 2024 06:39:12 -0800 Subject: [PATCH 09/34] Changed recreate_db to skip non sqlite attributes (#2168) * Changed recreate_db to skip non sqlite attributes * reverted package-lock.json * reverted poetry.lock * reverted pyproject.toml * reverted frontend config.tsx and vite.config.ts * Removed my personal debugging echo statements from recreate_db --- spiffworkflow-backend/bin/recreate_db | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/spiffworkflow-backend/bin/recreate_db b/spiffworkflow-backend/bin/recreate_db index 499762f54..b9ed10401 100755 --- a/spiffworkflow-backend/bin/recreate_db +++ b/spiffworkflow-backend/bin/recreate_db @@ -37,17 +37,19 @@ database_username="root" database_password="" databases_to_run_on="spiffworkflow_backend_local_development spiffworkflow_backend_unit_testing" database_name_from_uri="" -if [[ -n "${SPIFFWORKFLOW_BACKEND_DATABASE_URI:-}" ]]; then - database_host_and_port=$(grep -oP "^[^:]+://.*@\K(.+?)[/]" <<<"$SPIFFWORKFLOW_BACKEND_DATABASE_URI" | sed -E 's/[\/]$//') - database_host=$(awk -F ':' '{print $1}' <<<"$database_host_and_port") - database_port=$(awk -F ':' '{print $2}' <<<"$database_host_and_port") - database_username_and_password=$(grep -oP "^[^:]+://\K([^@]+)[@]" <<<"$SPIFFWORKFLOW_BACKEND_DATABASE_URI" | sed -E 's/[@]$//') - database_username=$(awk -F ':' '{print $1}' <<<"$database_username_and_password") - database_password=$(awk -F ':' '{print $2}' <<<"$database_username_and_password") - database_name_from_uri=$(grep -oP "/\K(\w+)$" <<<"$SPIFFWORKFLOW_BACKEND_DATABASE_URI") - if ! grep "\<$database_name_from_uri\>" <<<"$databases_to_run_on"; then - databases_to_run_on="$database_name_from_uri" - fi +if [[ "${SPIFFWORKFLOW_BACKEND_DATABASE_TYPE:-mysql}" != "sqlite" ]]; then + if [[ -n "${SPIFFWORKFLOW_BACKEND_DATABASE_URI:-}" ]]; then + database_host_and_port=$(grep -oP "^[^:]+://.*@\K(.+?)[/]" <<<"$SPIFFWORKFLOW_BACKEND_DATABASE_URI" | sed -E 's/[\/]$//') + database_host=$(awk -F ':' '{print $1}' <<<"$database_host_and_port") + database_port=$(awk -F ':' '{print $2}' <<<"$database_host_and_port") + database_username_and_password=$(grep -oP "^[^:]+://\K([^@]+)[@]" <<<"$SPIFFWORKFLOW_BACKEND_DATABASE_URI" | sed -E 's/[@]$//') + database_username=$(awk -F ':' '{print $1}' <<<"$database_username_and_password") + database_password=$(awk -F ':' '{print $2}' <<<"$database_username_and_password") + database_name_from_uri=$(grep -oP "/\K(\w+)$" <<<"$SPIFFWORKFLOW_BACKEND_DATABASE_URI") + if ! grep "\<$database_name_from_uri\>" <<<"$databases_to_run_on"; then + databases_to_run_on="$database_name_from_uri" + fi + fi fi database_host_args="-h $database_host -u $database_username" From 4c24a6c53cdf3a020f6e3acd127d8581eaba5696 Mon Sep 17 00:00:00 2001 From: Bret Mogilefsky Date: Wed, 4 Dec 2024 07:56:46 -0800 Subject: [PATCH 10/34] Refactor image build to use a matrix build, add security scanning (#2174) * Refactor image build GH Action to use a matrix build With a little help from Claude.AI * Improve description of connector-proxy-demo image Per suggestion from CodeRabbit.AI * Add caching to image build step Another suggestion from CodeRabbit.AI... I haven't seen this feature in use, but it seems reasonable to try it! * Scan for vulns before pushing images Don't push if there are Critical or High findings * Comment on the new permission required A suggestion from CodeRabbit.AI --- .github/workflows/build_docker_images.yml | 161 +++++++--------------- 1 file changed, 47 insertions(+), 114 deletions(-) diff --git a/.github/workflows/build_docker_images.yml b/.github/workflows/build_docker_images.yml index a021ffc54..bcf713d37 100644 --- a/.github/workflows/build_docker_images.yml +++ b/.github/workflows/build_docker_images.yml @@ -34,71 +34,29 @@ on: tags: [v*] jobs: - create_frontend_docker_image: + create_docker_images: runs-on: ubuntu-latest - env: - REGISTRY: ghcr.io - IMAGE_NAME: sartography/spiffworkflow-frontend - BRANCH_NAME: ${{ github.head_ref || github.ref_name }} - permissions: - contents: read - packages: write - steps: - - name: Check out the repository - uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Log in to the Container registry - uses: docker/login-action@v3.3.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Get current date - id: date - run: echo "date=$(date -u +'%Y-%m-%d_%H-%M-%S')" >> "$GITHUB_OUTPUT" - - name: Get short commit sha - id: commit_sha - run: echo "sha_short=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT" - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5.6.1 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - labels: | - org.opencontainers.image.description=Frontend component of SpiffWorkflow, a software development platform for building, running, and monitoring executable diagrams - org.opencontainers.image.version=${{ env.BRANCH_NAME }}-${{ steps.date.outputs.date }}-${{ steps.commit_sha.outputs.sha_short }} - tags: | - type=ref,event=branch,branch=main,suffix=-latest - type=ref,event=branch,suffix=-${{ steps.date.outputs.date }}-${{ steps.commit_sha.outputs.sha_short }} - type=ref,event=tag,enable=true,format={{version}} - type=ref,event=tag,enable=true,format=latest - - - name: Write app version info - working-directory: spiffworkflow-frontend - run: echo "$DOCKER_METADATA_OUTPUT_JSON" | jq '.labels' > version_info.json - - name: Build and push Frontend Docker image - uses: docker/build-push-action@v6.10.0 - with: - # this action doesn't seem to respect working-directory so set context - context: spiffworkflow-frontend - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - platforms: linux/amd64,linux/arm64 - - run: echo 'TAGS' >> "$GITHUB_STEP_SUMMARY" - - run: echo 'TAGS ${{ steps.meta.outputs.tags }}' >> "$GITHUB_STEP_SUMMARY" + strategy: + matrix: + include: + - image_name: sartography/spiffworkflow-frontend + context: spiffworkflow-frontend + description: "Frontend component of SpiffWorkflow, a software development platform for building, running, and monitoring executable diagrams" + - image_name: sartography/spiffworkflow-backend + context: spiffworkflow-backend + description: "Backend component of SpiffWorkflow, a software development platform for building, running, and monitoring executable diagrams" + - image_name: sartography/connector-proxy-demo + context: connector-proxy-demo + description: "Connector proxy component of SpiffWorkflow, providing integration capabilities for external services" - create_backend_docker_image: - runs-on: ubuntu-latest env: REGISTRY: ghcr.io - IMAGE_NAME: sartography/spiffworkflow-backend + IMAGE_NAME: ${{ matrix.image_name }} BRANCH_NAME: ${{ github.head_ref || github.ref_name }} permissions: contents: read packages: write + security-events: write # Required for uploading Trivy scan results to GitHub Security steps: - name: Check out the repository uses: actions/checkout@v4 @@ -123,7 +81,7 @@ jobs: with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} labels: | - org.opencontainers.image.description=Backend component of SpiffWorkflow, a software development platform for building, running, and monitoring executable diagrams + org.opencontainers.image.description=${{ matrix.description }} org.opencontainers.image.version=${{ env.BRANCH_NAME }}-${{ steps.date.outputs.date }}-${{ steps.commit_sha.outputs.sha_short }} tags: | type=ref,event=branch,branch=main,suffix=-latest @@ -132,83 +90,58 @@ jobs: type=ref,event=tag,enable=true,format=latest - name: Write app version info - working-directory: spiffworkflow-backend + working-directory: ${{ matrix.context }} run: echo "$DOCKER_METADATA_OUTPUT_JSON" | jq '.labels' > version_info.json - - name: Build and push Backend Docker image + - name: Generate full image tag + id: full_tag + run: echo "full_tag=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BRANCH_NAME }}-${{ steps.date.outputs.date }}-${{ steps.commit_sha.outputs.sha_short }}" >> "$GITHUB_OUTPUT" + - name: Build Docker image uses: docker/build-push-action@v6.10.0 with: - # this action doesn't seem to respect working-directory so set context - context: spiffworkflow-backend - push: true - tags: ${{ steps.meta.outputs.tags }} + context: ${{ matrix.context }} + push: false # Don't push yet + load: true # Load image to local Docker daemon + tags: ${{ steps.full_tag.outputs.full_tag }} labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64,linux/arm64 - - name: Adding markdown - run: echo 'TAGS ${{ steps.meta.outputs.tags }}' >> "$GITHUB_STEP_SUMMARY" - - create_demo_proxy_docker_image: - runs-on: ubuntu-latest - env: - REGISTRY: ghcr.io - IMAGE_NAME: sartography/connector-proxy-demo - BRANCH_NAME: ${{ github.head_ref || github.ref_name }} + cache-from: type=gha + cache-to: type=gha,mode=max - permissions: - contents: read - packages: write - steps: - - name: Check out the repository - uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Log in to the Container registry - uses: docker/login-action@v3.3.0 + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@0.19.0 with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Get current date - id: date - run: echo "date=$(date -u +'%Y-%m-%d_%H-%M-%S')" >> "$GITHUB_OUTPUT" - - name: Get short commit sha - id: commit_sha - run: echo "sha_short=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT" - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5.6.1 + image-ref: '${{ steps.full_tag.outputs.full_tag }}' + scan-type: 'image' + hide-progress: false + format: 'sarif' + output: 'trivy-results.sarif' + severity: 'CRITICAL,HIGH' + exit-code: 1 # Fail the workflow if critical or high vulnerabilities are found + timeout: 15m0s + ignore-unfixed: true + - name: Upload Trivy scan results to GitHub Security tab + uses: github/codeql-action/upload-sarif@v3 + if: always() # Run even if the Trivy scan fails with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - labels: | - org.opencontainers.image.description=spiffworkflow-connector-proxy-demo - org.opencontainers.image.version=${{ env.BRANCH_NAME }}-${{ steps.date.outputs.date }}-${{ steps.commit_sha.outputs.sha_short }} - tags: | - type=ref,event=branch,branch=main,suffix=-latest - type=ref,event=branch,suffix=-${{ steps.date.outputs.date }}-${{ steps.commit_sha.outputs.sha_short }} - type=ref,event=tag,enable=true,format={{version}} - type=ref,event=tag,enable=true,format=latest + sarif_file: 'trivy-results.sarif' - - name: Build and push the connector proxy + - name: Push Docker image uses: docker/build-push-action@v6.10.0 with: - # this action doesn't seem to respect working-directory so set context - context: connector-proxy-demo + context: ${{ matrix.context }} push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64,linux/arm64 + cache-from: type=gha + cache-to: type=gha,mode=max - name: Adding markdown run: echo 'TAGS ${{ steps.meta.outputs.tags }}' >> "$GITHUB_STEP_SUMMARY" quickstart-guide-test: runs-on: ubuntu-latest if: startsWith(github.ref, 'refs/tags/v') - needs: - [ - create_frontend_docker_image, - create_backend_docker_image, - create_demo_proxy_docker_image, - ] + needs: [create_docker_images] steps: - name: Checkout uses: actions/checkout@v4 From 55f550ca96300132f37bae0632089d73eada1d16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Dec 2024 16:16:46 +0000 Subject: [PATCH 11/34] Bump ruff from 0.5.5 to 0.8.1 in /spiffworkflow-backend (#2172) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.5.5 to 0.8.1. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.5.5...0.8.1) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 40 ++++++++++++++-------------- spiffworkflow-backend/pyproject.toml | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index 0d2159c03..d4fb77c26 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -2687,29 +2687,29 @@ files = [ [[package]] name = "ruff" -version = "0.5.5" +version = "0.8.1" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.5.5-py3-none-linux_armv6l.whl", hash = "sha256:605d589ec35d1da9213a9d4d7e7a9c761d90bba78fc8790d1c5e65026c1b9eaf"}, - {file = "ruff-0.5.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:00817603822a3e42b80f7c3298c8269e09f889ee94640cd1fc7f9329788d7bf8"}, - {file = "ruff-0.5.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:187a60f555e9f865a2ff2c6984b9afeffa7158ba6e1eab56cb830404c942b0f3"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe26fc46fa8c6e0ae3f47ddccfbb136253c831c3289bba044befe68f467bfb16"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4ad25dd9c5faac95c8e9efb13e15803cd8bbf7f4600645a60ffe17c73f60779b"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f70737c157d7edf749bcb952d13854e8f745cec695a01bdc6e29c29c288fc36e"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:cfd7de17cef6ab559e9f5ab859f0d3296393bc78f69030967ca4d87a541b97a0"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a09b43e02f76ac0145f86a08e045e2ea452066f7ba064fd6b0cdccb486f7c3e7"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0b856cb19c60cd40198be5d8d4b556228e3dcd545b4f423d1ad812bfdca5884"}, - {file = "ruff-0.5.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3687d002f911e8a5faf977e619a034d159a8373514a587249cc00f211c67a091"}, - {file = "ruff-0.5.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ac9dc814e510436e30d0ba535f435a7f3dc97f895f844f5b3f347ec8c228a523"}, - {file = "ruff-0.5.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:af9bdf6c389b5add40d89b201425b531e0a5cceb3cfdcc69f04d3d531c6be74f"}, - {file = "ruff-0.5.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d40a8533ed545390ef8315b8e25c4bb85739b90bd0f3fe1280a29ae364cc55d8"}, - {file = "ruff-0.5.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:cab904683bf9e2ecbbe9ff235bfe056f0eba754d0168ad5407832928d579e7ab"}, - {file = "ruff-0.5.5-py3-none-win32.whl", hash = "sha256:696f18463b47a94575db635ebb4c178188645636f05e934fdf361b74edf1bb2d"}, - {file = "ruff-0.5.5-py3-none-win_amd64.whl", hash = "sha256:50f36d77f52d4c9c2f1361ccbfbd09099a1b2ea5d2b2222c586ab08885cf3445"}, - {file = "ruff-0.5.5-py3-none-win_arm64.whl", hash = "sha256:3191317d967af701f1b73a31ed5788795936e423b7acce82a2b63e26eb3e89d6"}, - {file = "ruff-0.5.5.tar.gz", hash = "sha256:cc5516bdb4858d972fbc31d246bdb390eab8df1a26e2353be2dbc0c2d7f5421a"}, + {file = "ruff-0.8.1-py3-none-linux_armv6l.whl", hash = "sha256:fae0805bd514066f20309f6742f6ee7904a773eb9e6c17c45d6b1600ca65c9b5"}, + {file = "ruff-0.8.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b8a4f7385c2285c30f34b200ca5511fcc865f17578383db154e098150ce0a087"}, + {file = "ruff-0.8.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd054486da0c53e41e0086e1730eb77d1f698154f910e0cd9e0d64274979a209"}, + {file = "ruff-0.8.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2029b8c22da147c50ae577e621a5bfbc5d1fed75d86af53643d7a7aee1d23871"}, + {file = "ruff-0.8.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2666520828dee7dfc7e47ee4ea0d928f40de72056d929a7c5292d95071d881d1"}, + {file = "ruff-0.8.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:333c57013ef8c97a53892aa56042831c372e0bb1785ab7026187b7abd0135ad5"}, + {file = "ruff-0.8.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:288326162804f34088ac007139488dcb43de590a5ccfec3166396530b58fb89d"}, + {file = "ruff-0.8.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b12c39b9448632284561cbf4191aa1b005882acbc81900ffa9f9f471c8ff7e26"}, + {file = "ruff-0.8.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:364e6674450cbac8e998f7b30639040c99d81dfb5bbc6dfad69bc7a8f916b3d1"}, + {file = "ruff-0.8.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b22346f845fec132aa39cd29acb94451d030c10874408dbf776af3aaeb53284c"}, + {file = "ruff-0.8.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b2f2f7a7e7648a2bfe6ead4e0a16745db956da0e3a231ad443d2a66a105c04fa"}, + {file = "ruff-0.8.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:adf314fc458374c25c5c4a4a9270c3e8a6a807b1bec018cfa2813d6546215540"}, + {file = "ruff-0.8.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a885d68342a231b5ba4d30b8c6e1b1ee3a65cf37e3d29b3c74069cdf1ee1e3c9"}, + {file = "ruff-0.8.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d2c16e3508c8cc73e96aa5127d0df8913d2290098f776416a4b157657bee44c5"}, + {file = "ruff-0.8.1-py3-none-win32.whl", hash = "sha256:93335cd7c0eaedb44882d75a7acb7df4b77cd7cd0d2255c93b28791716e81790"}, + {file = "ruff-0.8.1-py3-none-win_amd64.whl", hash = "sha256:2954cdbe8dfd8ab359d4a30cd971b589d335a44d444b6ca2cb3d1da21b75e4b6"}, + {file = "ruff-0.8.1-py3-none-win_arm64.whl", hash = "sha256:55873cc1a473e5ac129d15eccb3c008c096b94809d693fc7053f588b67822737"}, + {file = "ruff-0.8.1.tar.gz", hash = "sha256:3583db9a6450364ed5ca3f3b4225958b24f78178908d5c4bc0f46251ccca898f"}, ] [[package]] @@ -3521,4 +3521,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "f1414a5dedc7f9375c4011eb902a3c16668e5d0347d14d1d2e47732335e366b0" +content-hash = "8ccc6307f33b6d383f76991da9a4cffff0b40967b5b4b862e577ced1bc92d8c1" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index 4d5dc0163..b7cd8bf84 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -96,7 +96,7 @@ mypy = ">=0.961" typeguard = "^4" xdoctest = {extras = ["colors"], version = "^1.2.0"} pre-commit = "^4.0.1" -ruff = "^0.5.5" +ruff = "^0.8.1" pytest-random-order = "^1.1.0" pytest-flask = "^1.2.0" From 87d7bbbb9aff60d67f82a2ecc4f793237427ea1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:28:24 +0000 Subject: [PATCH 12/34] Bump sonarsource/sonarcloud-github-action from 3.1.0 to 4.0.0 (#2177) Bumps [sonarsource/sonarcloud-github-action](https://github.com/sonarsource/sonarcloud-github-action) from 3.1.0 to 4.0.0. - [Release notes](https://github.com/sonarsource/sonarcloud-github-action/releases) - [Commits](https://github.com/sonarsource/sonarcloud-github-action/compare/v3.1.0...v4.0.0) --- updated-dependencies: - dependency-name: sonarsource/sonarcloud-github-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d36e88e66..ac15f75fb 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -302,7 +302,7 @@ jobs: uses: codecov/codecov-action@v5.0.7 - name: SonarCloud Scan - uses: sonarsource/sonarcloud-github-action@v3.1.0 + uses: sonarsource/sonarcloud-github-action@v4.0.0 # thought about just skipping dependabot # if: ${{ github.actor != 'dependabot[bot]' }} # but figured all pull requests seems better, since none of them will have access to sonarcloud. @@ -365,7 +365,7 @@ jobs: # if: ${{ github.event_name != 'pull_request' }} # so just skip everything but main if: github.ref_name == 'main' - uses: sonarsource/sonarcloud-github-action@v3.1.0 + uses: sonarsource/sonarcloud-github-action@v4.0.0 with: projectBaseDir: spiffworkflow-frontend env: From 17082e9fc146bf66eb53e2990322eafa41d08632 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Dec 2024 14:36:41 +0000 Subject: [PATCH 13/34] Bump apscheduler from 3.10.4 to 3.11.0 in /spiffworkflow-backend (#2178) Bumps [apscheduler](https://github.com/agronholm/apscheduler) from 3.10.4 to 3.11.0. - [Release notes](https://github.com/agronholm/apscheduler/releases) - [Changelog](https://github.com/agronholm/apscheduler/blob/3.11.0/docs/versionhistory.rst) - [Commits](https://github.com/agronholm/apscheduler/compare/3.10.4...3.11.0) --- updated-dependencies: - dependency-name: apscheduler dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index d4fb77c26..062cc78c5 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -60,28 +60,27 @@ files = [ [[package]] name = "apscheduler" -version = "3.10.4" +version = "3.11.0" description = "In-process task scheduler with Cron-like capabilities" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "APScheduler-3.10.4-py3-none-any.whl", hash = "sha256:fb91e8a768632a4756a585f79ec834e0e27aad5860bac7eaa523d9ccefd87661"}, - {file = "APScheduler-3.10.4.tar.gz", hash = "sha256:e6df071b27d9be898e486bc7940a7be50b4af2e9da7c08f0744a96d4bd4cef4a"}, + {file = "APScheduler-3.11.0-py3-none-any.whl", hash = "sha256:fc134ca32e50f5eadcc4938e3a4545ab19131435e851abb40b34d63d5141c6da"}, + {file = "apscheduler-3.11.0.tar.gz", hash = "sha256:4c622d250b0955a65d5d0eb91c33e6d43fd879834bf541e0a18661ae60460133"}, ] [package.dependencies] -pytz = "*" -six = ">=1.4.0" -tzlocal = ">=2.0,<3.dev0 || >=4.dev0" +tzlocal = ">=3.0" [package.extras] -doc = ["sphinx", "sphinx-rtd-theme"] +doc = ["packaging", "sphinx", "sphinx-rtd-theme (>=1.3.0)"] +etcd = ["etcd3", "protobuf (<=3.21.0)"] gevent = ["gevent"] mongodb = ["pymongo (>=3.0)"] redis = ["redis (>=3.0)"] rethinkdb = ["rethinkdb (>=2.4.0)"] sqlalchemy = ["sqlalchemy (>=1.4)"] -testing = ["pytest", "pytest-asyncio", "pytest-cov", "pytest-tornado5"] +test = ["APScheduler[etcd,mongodb,redis,rethinkdb,sqlalchemy,tornado,zookeeper]", "PySide6", "anyio (>=4.5.2)", "gevent", "pytest", "pytz", "twisted"] tornado = ["tornado (>=4.3)"] twisted = ["twisted"] zookeeper = ["kazoo"] From a065266e2f36c7b3e315c340025928d1bc280a66 Mon Sep 17 00:00:00 2001 From: Bret Mogilefsky Date: Thu, 5 Dec 2024 07:12:11 -0800 Subject: [PATCH 14/34] Only scan amd64-arch image for vulns (#2176) * Only scan amd64-arch image for vulns Addresses [the problem identfied here](https://github.com/sartography/spiff-arena/pull/2174#issuecomment-2518118100). * Add comment for future coders Explain why we're only building one arch initially. --- .github/workflows/build_docker_images.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_docker_images.yml b/.github/workflows/build_docker_images.yml index bcf713d37..cd8dbd55f 100644 --- a/.github/workflows/build_docker_images.yml +++ b/.github/workflows/build_docker_images.yml @@ -103,7 +103,10 @@ jobs: load: true # Load image to local Docker daemon tags: ${{ steps.full_tag.outputs.full_tag }} labels: ${{ steps.meta.outputs.labels }} - platforms: linux/amd64,linux/arm64 + # While we ultimately push multi-arch images (amd64/arm64) to registries, we don't want to do that before we scan for vulns. + # The Action can only load a single arch image into the local dockerd at a time, so we only build and test one arch here. + # It's pretty likely that any vuln in amd64 is also in arm64, and vice-versa, so the trade-off seems reasonable. + platforms: linux/amd64 cache-from: type=gha cache-to: type=gha,mode=max From fc4dff6dfd02e09f3a9d1549049c2ff973008f1f Mon Sep 17 00:00:00 2001 From: jasquat <2487833+jasquat@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:19:56 -0500 Subject: [PATCH 15/34] Fail fast off (#2179) * upload trivy file only if it has been created w/ burnettk * fail only for critical and do not fail fast so we can get the scans for the other images as well w/ burnettk * update apt-get packages for connector proxy to fix trivy w/ burnettk * attempt to fix frontend and backend as well w/ burnettk * also update libaom w/ burnettk * remove test dockerfile w/ burnettk --------- Co-authored-by: jasquat --- .github/workflows/build_docker_images.yml | 36 +++++++++++++++-------- connector-proxy-demo/Dockerfile | 2 +- spiffworkflow-backend/Dockerfile | 2 +- spiffworkflow-frontend/Dockerfile | 10 +++++++ 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build_docker_images.yml b/.github/workflows/build_docker_images.yml index cd8dbd55f..d7a18593c 100644 --- a/.github/workflows/build_docker_images.yml +++ b/.github/workflows/build_docker_images.yml @@ -31,12 +31,14 @@ on: branches: - main - keycloak-realm-with-groups + - fail-fast-off tags: [v*] jobs: create_docker_images: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: include: - image_name: sartography/spiffworkflow-frontend @@ -99,34 +101,44 @@ jobs: uses: docker/build-push-action@v6.10.0 with: context: ${{ matrix.context }} - push: false # Don't push yet - load: true # Load image to local Docker daemon + push: false # Don't push yet + load: true # Load image to local Docker daemon tags: ${{ steps.full_tag.outputs.full_tag }} labels: ${{ steps.meta.outputs.labels }} # While we ultimately push multi-arch images (amd64/arm64) to registries, we don't want to do that before we scan for vulns. - # The Action can only load a single arch image into the local dockerd at a time, so we only build and test one arch here. + # The Action can only load a single arch image into the local dockerd at a time, so we only build and test one arch here. # It's pretty likely that any vuln in amd64 is also in arm64, and vice-versa, so the trade-off seems reasonable. - platforms: linux/amd64 + platforms: linux/amd64 cache-from: type=gha cache-to: type=gha,mode=max - name: Run Trivy vulnerability scanner uses: aquasecurity/trivy-action@0.19.0 with: - image-ref: '${{ steps.full_tag.outputs.full_tag }}' - scan-type: 'image' + image-ref: "${{ steps.full_tag.outputs.full_tag }}" + scan-type: "image" hide-progress: false - format: 'sarif' - output: 'trivy-results.sarif' - severity: 'CRITICAL,HIGH' - exit-code: 1 # Fail the workflow if critical or high vulnerabilities are found + format: "sarif" + output: "trivy-results.sarif" + severity: "CRITICAL" + exit-code: 1 # Fail the workflow if critical or high vulnerabilities are found timeout: 15m0s ignore-unfixed: true + - name: Check if Trivy results exist + if: always() + # trivy will fail if vulnerabilities are found but we need to upload them anyway + run: | + if [ -f "trivy-results.sarif" ]; then + echo "UPLOAD_TRIVY_RESULTS=true" >> "$GITHUB_ENV" + else + echo "Trivy results file not found. Skipping upload." + echo "UPLOAD_TRIVY_RESULTS=false" >> "$GITHUB_ENV" + fi - name: Upload Trivy scan results to GitHub Security tab uses: github/codeql-action/upload-sarif@v3 - if: always() # Run even if the Trivy scan fails + if: always() && env.UPLOAD_TRIVY_RESULTS == 'true' with: - sarif_file: 'trivy-results.sarif' + sarif_file: "trivy-results.sarif" - name: Push Docker image uses: docker/build-push-action@v6.10.0 diff --git a/connector-proxy-demo/Dockerfile b/connector-proxy-demo/Dockerfile index 9442236a2..29fb53d4b 100644 --- a/connector-proxy-demo/Dockerfile +++ b/connector-proxy-demo/Dockerfile @@ -22,7 +22,7 @@ FROM base AS deployment # vim ftw RUN apt-get update \ && apt-get clean -y \ - && apt-get install -y -q git-core curl procps gunicorn3 default-mysql-client vim-tiny \ + && apt-get install -y -q git-core curl procps gunicorn3 default-mysql-client vim-tiny libkrb5support0 libexpat1 \ && rm -rf /var/lib/apt/lists/* RUN pip install poetry==1.6.1 diff --git a/spiffworkflow-backend/Dockerfile b/spiffworkflow-backend/Dockerfile index a62b022b2..a02c62d48 100644 --- a/spiffworkflow-backend/Dockerfile +++ b/spiffworkflow-backend/Dockerfile @@ -24,7 +24,7 @@ FROM base AS deployment # libpq5 in order to be able to use postgres at runtime RUN apt-get update \ && apt-get clean -y \ - && apt-get install -y -q git-core curl procps gunicorn3 default-mysql-client vim-tiny jq libpq5 \ + && apt-get install -y -q git-core curl procps gunicorn3 default-mysql-client vim-tiny jq libpq5 libkrb5support0 libexpat1 \ && rm -rf /var/lib/apt/lists/* # keep pip up to date diff --git a/spiffworkflow-frontend/Dockerfile b/spiffworkflow-frontend/Dockerfile index 2b5668f19..3a84c0cf4 100644 --- a/spiffworkflow-frontend/Dockerfile +++ b/spiffworkflow-frontend/Dockerfile @@ -14,6 +14,8 @@ RUN apt-get update \ curl \ procps \ vim-tiny \ + libkrb5support0 \ + libexpat1 \ && rm -rf /var/lib/apt/lists/* # this matches total memory on spiffworkflow-demo @@ -47,6 +49,14 @@ RUN ./bin/build # Use nginx as the base image FROM nginx:1.25.4-bookworm +RUN apt-get update \ + && apt-get clean -y \ + && apt-get install -y -q \ + libkrb5support0 \ + libexpat1 \ + libaom3 \ + && rm -rf /var/lib/apt/lists/* + # Remove default nginx configuration RUN rm -rf /etc/nginx/conf.d/* From 8d6d3aae49e88f08a9daecf98c5432850f28e441 Mon Sep 17 00:00:00 2001 From: jasquat Date: Thu, 5 Dec 2024 11:41:19 -0500 Subject: [PATCH 16/34] update trivy action to latest w/ burnettk --- .github/workflows/build_docker_images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_docker_images.yml b/.github/workflows/build_docker_images.yml index d7a18593c..57acdf5ce 100644 --- a/.github/workflows/build_docker_images.yml +++ b/.github/workflows/build_docker_images.yml @@ -113,7 +113,7 @@ jobs: cache-to: type=gha,mode=max - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@0.19.0 + uses: aquasecurity/trivy-action@0.29.0 with: image-ref: "${{ steps.full_tag.outputs.full_tag }}" scan-type: "image" From 51bd739bb20b30e392b147269d1d5939793e1f2a Mon Sep 17 00:00:00 2001 From: jasquat Date: Thu, 5 Dec 2024 11:51:58 -0500 Subject: [PATCH 17/34] use same severities for sarif w/ burnettk --- .github/workflows/build_docker_images.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build_docker_images.yml b/.github/workflows/build_docker_images.yml index 57acdf5ce..9863139d3 100644 --- a/.github/workflows/build_docker_images.yml +++ b/.github/workflows/build_docker_images.yml @@ -118,6 +118,7 @@ jobs: image-ref: "${{ steps.full_tag.outputs.full_tag }}" scan-type: "image" hide-progress: false + limit-severities-for-sarif: true format: "sarif" output: "trivy-results.sarif" severity: "CRITICAL" From 0ed6eaac8f57aa60764f9968b27256b08aee441d Mon Sep 17 00:00:00 2001 From: Bret Mogilefsky Date: Thu, 5 Dec 2024 10:32:37 -0800 Subject: [PATCH 18/34] Fix comment (#2180) --- .github/workflows/build_docker_images.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_docker_images.yml b/.github/workflows/build_docker_images.yml index 9863139d3..ede5ef6cc 100644 --- a/.github/workflows/build_docker_images.yml +++ b/.github/workflows/build_docker_images.yml @@ -122,7 +122,7 @@ jobs: format: "sarif" output: "trivy-results.sarif" severity: "CRITICAL" - exit-code: 1 # Fail the workflow if critical or high vulnerabilities are found + exit-code: 1 # Fail the workflow if critical vulnerabilities are found timeout: 15m0s ignore-unfixed: true - name: Check if Trivy results exist From 95005d5c661eced50ea7dd82938bbc8e2891fcb9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 14:43:28 +0000 Subject: [PATCH 19/34] Bump ruff from 0.8.1 to 0.8.2 in /spiffworkflow-backend (#2181) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.8.1 to 0.8.2. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.8.1...0.8.2) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 40 ++++++++++++++-------------- spiffworkflow-backend/pyproject.toml | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index 062cc78c5..6911c6a76 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -2686,29 +2686,29 @@ files = [ [[package]] name = "ruff" -version = "0.8.1" +version = "0.8.2" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.8.1-py3-none-linux_armv6l.whl", hash = "sha256:fae0805bd514066f20309f6742f6ee7904a773eb9e6c17c45d6b1600ca65c9b5"}, - {file = "ruff-0.8.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b8a4f7385c2285c30f34b200ca5511fcc865f17578383db154e098150ce0a087"}, - {file = "ruff-0.8.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd054486da0c53e41e0086e1730eb77d1f698154f910e0cd9e0d64274979a209"}, - {file = "ruff-0.8.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2029b8c22da147c50ae577e621a5bfbc5d1fed75d86af53643d7a7aee1d23871"}, - {file = "ruff-0.8.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2666520828dee7dfc7e47ee4ea0d928f40de72056d929a7c5292d95071d881d1"}, - {file = "ruff-0.8.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:333c57013ef8c97a53892aa56042831c372e0bb1785ab7026187b7abd0135ad5"}, - {file = "ruff-0.8.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:288326162804f34088ac007139488dcb43de590a5ccfec3166396530b58fb89d"}, - {file = "ruff-0.8.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b12c39b9448632284561cbf4191aa1b005882acbc81900ffa9f9f471c8ff7e26"}, - {file = "ruff-0.8.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:364e6674450cbac8e998f7b30639040c99d81dfb5bbc6dfad69bc7a8f916b3d1"}, - {file = "ruff-0.8.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b22346f845fec132aa39cd29acb94451d030c10874408dbf776af3aaeb53284c"}, - {file = "ruff-0.8.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b2f2f7a7e7648a2bfe6ead4e0a16745db956da0e3a231ad443d2a66a105c04fa"}, - {file = "ruff-0.8.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:adf314fc458374c25c5c4a4a9270c3e8a6a807b1bec018cfa2813d6546215540"}, - {file = "ruff-0.8.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a885d68342a231b5ba4d30b8c6e1b1ee3a65cf37e3d29b3c74069cdf1ee1e3c9"}, - {file = "ruff-0.8.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:d2c16e3508c8cc73e96aa5127d0df8913d2290098f776416a4b157657bee44c5"}, - {file = "ruff-0.8.1-py3-none-win32.whl", hash = "sha256:93335cd7c0eaedb44882d75a7acb7df4b77cd7cd0d2255c93b28791716e81790"}, - {file = "ruff-0.8.1-py3-none-win_amd64.whl", hash = "sha256:2954cdbe8dfd8ab359d4a30cd971b589d335a44d444b6ca2cb3d1da21b75e4b6"}, - {file = "ruff-0.8.1-py3-none-win_arm64.whl", hash = "sha256:55873cc1a473e5ac129d15eccb3c008c096b94809d693fc7053f588b67822737"}, - {file = "ruff-0.8.1.tar.gz", hash = "sha256:3583db9a6450364ed5ca3f3b4225958b24f78178908d5c4bc0f46251ccca898f"}, + {file = "ruff-0.8.2-py3-none-linux_armv6l.whl", hash = "sha256:c49ab4da37e7c457105aadfd2725e24305ff9bc908487a9bf8d548c6dad8bb3d"}, + {file = "ruff-0.8.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ec016beb69ac16be416c435828be702ee694c0d722505f9c1f35e1b9c0cc1bf5"}, + {file = "ruff-0.8.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:f05cdf8d050b30e2ba55c9b09330b51f9f97d36d4673213679b965d25a785f3c"}, + {file = "ruff-0.8.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:60f578c11feb1d3d257b2fb043ddb47501ab4816e7e221fbb0077f0d5d4e7b6f"}, + {file = "ruff-0.8.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cbd5cf9b0ae8f30eebc7b360171bd50f59ab29d39f06a670b3e4501a36ba5897"}, + {file = "ruff-0.8.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b402ddee3d777683de60ff76da801fa7e5e8a71038f57ee53e903afbcefdaa58"}, + {file = "ruff-0.8.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:705832cd7d85605cb7858d8a13d75993c8f3ef1397b0831289109e953d833d29"}, + {file = "ruff-0.8.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:32096b41aaf7a5cc095fa45b4167b890e4c8d3fd217603f3634c92a541de7248"}, + {file = "ruff-0.8.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e769083da9439508833cfc7c23e351e1809e67f47c50248250ce1ac52c21fb93"}, + {file = "ruff-0.8.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fe716592ae8a376c2673fdfc1f5c0c193a6d0411f90a496863c99cd9e2ae25d"}, + {file = "ruff-0.8.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:81c148825277e737493242b44c5388a300584d73d5774defa9245aaef55448b0"}, + {file = "ruff-0.8.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:d261d7850c8367704874847d95febc698a950bf061c9475d4a8b7689adc4f7fa"}, + {file = "ruff-0.8.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:1ca4e3a87496dc07d2427b7dd7ffa88a1e597c28dad65ae6433ecb9f2e4f022f"}, + {file = "ruff-0.8.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:729850feed82ef2440aa27946ab39c18cb4a8889c1128a6d589ffa028ddcfc22"}, + {file = "ruff-0.8.2-py3-none-win32.whl", hash = "sha256:ac42caaa0411d6a7d9594363294416e0e48fc1279e1b0e948391695db2b3d5b1"}, + {file = "ruff-0.8.2-py3-none-win_amd64.whl", hash = "sha256:2aae99ec70abf43372612a838d97bfe77d45146254568d94926e8ed5bbb409ea"}, + {file = "ruff-0.8.2-py3-none-win_arm64.whl", hash = "sha256:fb88e2a506b70cfbc2de6fae6681c4f944f7dd5f2fe87233a7233d888bad73e8"}, + {file = "ruff-0.8.2.tar.gz", hash = "sha256:b84f4f414dda8ac7f75075c1fa0b905ac0ff25361f42e6d5da681a465e0f78e5"}, ] [[package]] @@ -3520,4 +3520,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "8ccc6307f33b6d383f76991da9a4cffff0b40967b5b4b862e577ced1bc92d8c1" +content-hash = "d5e47dcd192cb9ec08ea7d0c3532d4fd1dd676e0100e30fb5a9cec5acf1aaba1" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index b7cd8bf84..080111e86 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -96,7 +96,7 @@ mypy = ">=0.961" typeguard = "^4" xdoctest = {extras = ["colors"], version = "^1.2.0"} pre-commit = "^4.0.1" -ruff = "^0.8.1" +ruff = "^0.8.2" pytest-random-order = "^1.1.0" pytest-flask = "^1.2.0" From ff5f9ca5ecd22c6c723680de68cf5fa81d4cf6ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 15:06:47 +0000 Subject: [PATCH 20/34] Bump codecov/codecov-action from 5.0.7 to 5.1.1 (#2183) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.0.7 to 5.1.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.0.7...v5.1.1) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ac15f75fb..cefb735bf 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -299,7 +299,7 @@ jobs: ./bin/run_ci_session coverage - name: Upload coverage report - uses: codecov/codecov-action@v5.0.7 + uses: codecov/codecov-action@v5.1.1 - name: SonarCloud Scan uses: sonarsource/sonarcloud-github-action@v4.0.0 From 0b1ccf1e754b5af455c336c18bb0768a1ade2cad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 15:10:13 +0000 Subject: [PATCH 21/34] Bump mysqlclient from 2.2.5 to 2.2.6 in /spiffworkflow-backend (#2185) Bumps [mysqlclient](https://github.com/PyMySQL/mysqlclient) from 2.2.5 to 2.2.6. - [Release notes](https://github.com/PyMySQL/mysqlclient/releases) - [Changelog](https://github.com/PyMySQL/mysqlclient/blob/main/HISTORY.rst) - [Commits](https://github.com/PyMySQL/mysqlclient/compare/v2.2.5...v2.2.6) --- updated-dependencies: - dependency-name: mysqlclient dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 20 ++++++++++---------- spiffworkflow-backend/pyproject.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index 6911c6a76..86be8e39a 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -1721,19 +1721,19 @@ files = [ [[package]] name = "mysqlclient" -version = "2.2.5" +version = "2.2.6" description = "Python interface to MySQL" optional = false python-versions = ">=3.8" files = [ - {file = "mysqlclient-2.2.5-cp310-cp310-win_amd64.whl", hash = "sha256:b78438314199504c64f69e1e3521f2c9b419f19fcd85158b44c997b64409a6af"}, - {file = "mysqlclient-2.2.5-cp311-cp311-win_amd64.whl", hash = "sha256:b54511648c1455b43ac28f8b4c1f732c5b0c343e87f7a3bd6fc9f9fe0f91934e"}, - {file = "mysqlclient-2.2.5-cp312-cp312-win_amd64.whl", hash = "sha256:e871ede4261d0d42b8ed20a2459db411c7deafedd8e77b7e4ba760be4a6a752b"}, - {file = "mysqlclient-2.2.5-cp313-cp313-win_amd64.whl", hash = "sha256:8012c633aab8c91ea8172ac479807135b171501b9cad1a7cd9b58c4dc8dcdab5"}, - {file = "mysqlclient-2.2.5-cp39-cp39-win_amd64.whl", hash = "sha256:3f9625bea2b9bcde0ace76b32708762d44597491092c819fd1bff5b4e27f709b"}, - {file = "mysqlclient-2.2.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:1d2e2ca0fe8405d8d6464edd01bf059951279e4bc27284d39341bd4737b2bc64"}, - {file = "mysqlclient-2.2.5-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:aee14f1872114865679fcb09aac3772de4595fa7dcf2f83a4c7afee15e508854"}, - {file = "mysqlclient-2.2.5.tar.gz", hash = "sha256:add8643c32f738014d252d2bdebb478623b04802e8396d5903905db36474d3ff"}, + {file = "mysqlclient-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:e94a92858203d97fd584bdb6d7ee8c56f2590db8d77fd44215c0dcf5e739bc37"}, + {file = "mysqlclient-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:43c5b30be0675080b9c815f457d73397f0442173e7be83d089b126835e2617ae"}, + {file = "mysqlclient-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:e940b41d85dfd7b190fa47d52f525f878cfa203d4653bf6a35b271b3c3be125b"}, + {file = "mysqlclient-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:794857bce4f9a1903a99786dd29ad7887f45a870b3d11585b8c51c4a753c4174"}, + {file = "mysqlclient-2.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:b0a5cddf1d3488b254605041070086cac743401d876a659a72d706a0d89c8ebb"}, + {file = "mysqlclient-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f3efb849d6f7ef4b9788a0eda2e896b975e0ebf1d6bf3dcabea63fd698e5b0b5"}, + {file = "mysqlclient-2.2.6-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3da70a07753ba6be881f7d75e795e254f6a0c12795778034acc69769b0649d37"}, + {file = "mysqlclient-2.2.6.tar.gz", hash = "sha256:c0b46d9b78b461dbb62482089ca8040fa916595b1b30f831ebbd1b0a82b43d53"}, ] [[package]] @@ -3520,4 +3520,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "d5e47dcd192cb9ec08ea7d0c3532d4fd1dd676e0100e30fb5a9cec5acf1aaba1" +content-hash = "4d5b6b201ea7d9a6bb915801d6f4b4766ba21052627bd4781447bfa41a4b7a59" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index 080111e86..a332725e2 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -73,7 +73,7 @@ marshmallow-sqlalchemy = "^1.0.0" # mysqlclient lib is deemed better than the mysql-connector-python lib by sqlalchemy # https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqlconnector -mysqlclient = "^2.2.5" +mysqlclient = "^2.2.6" flask-session = "^0.8.0" flask-oauthlib = "^0.9.6" celery = {extras = ["redis"], version = "^5.4.0"} From 6e7852e5ae7fd5de19dcf5dd2e9dccacb06852fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 15:14:17 +0000 Subject: [PATCH 22/34] Bump poetry from 1.8.4 to 1.8.5 in /.github/workflows (#2186) Bumps [poetry](https://github.com/python-poetry/poetry) from 1.8.4 to 1.8.5. - [Release notes](https://github.com/python-poetry/poetry/releases) - [Changelog](https://github.com/python-poetry/poetry/blob/1.8.5/CHANGELOG.md) - [Commits](https://github.com/python-poetry/poetry/compare/1.8.4...1.8.5) --- updated-dependencies: - dependency-name: poetry dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/constraints.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/constraints.txt b/.github/workflows/constraints.txt index 162b323f5..abe657ac3 100644 --- a/.github/workflows/constraints.txt +++ b/.github/workflows/constraints.txt @@ -1,2 +1,2 @@ pip==24.3.1 -poetry==1.8.4 +poetry==1.8.5 From 7b413673ffe8881aef6a3894f575974a62251ff1 Mon Sep 17 00:00:00 2001 From: Usama Ahmad <96994784+usama9500@users.noreply.github.com> Date: Tue, 10 Dec 2024 09:53:35 +0500 Subject: [PATCH 23/34] updated structure and added non_executable task info (#2184) Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com> --- docs/Building_Diagrams/guest_user.md | 44 ------ .../images/user_tasks_properties.png | Bin 0 -> 15109 bytes .../{Forms.md => user_tasks_and_forms.md} | 143 +++++++++++++++--- .../executable_non_executable.md | 38 +++++ docs/Debugging_Diagrams/images/executable.png | Bin 0 -> 48661 bytes .../Debugging_Diagrams/images/executable1.png | Bin 0 -> 29256 bytes .../images/non_executable.png | Bin 0 -> 48718 bytes .../images/non_executable1.png | Bin 0 -> 28822 bytes docs/index.md | 4 +- 9 files changed, 161 insertions(+), 68 deletions(-) delete mode 100644 docs/Building_Diagrams/guest_user.md create mode 100644 docs/Building_Diagrams/images/user_tasks_properties.png rename docs/Building_Diagrams/{Forms.md => user_tasks_and_forms.md} (77%) create mode 100644 docs/Debugging_Diagrams/executable_non_executable.md create mode 100644 docs/Debugging_Diagrams/images/executable.png create mode 100644 docs/Debugging_Diagrams/images/executable1.png create mode 100644 docs/Debugging_Diagrams/images/non_executable.png create mode 100644 docs/Debugging_Diagrams/images/non_executable1.png diff --git a/docs/Building_Diagrams/guest_user.md b/docs/Building_Diagrams/guest_user.md deleted file mode 100644 index 1080775ff..000000000 --- a/docs/Building_Diagrams/guest_user.md +++ /dev/null @@ -1,44 +0,0 @@ -# Guest User Task -The Guest User Task feature in SpiffArena allows users who are not logged into the system to complete specified human tasks. This functionality enhances accessibility and usability, enabling a broader range of users to interact with the process models without requiring an account. - -## Key Features - -- **Task Accessibility**: Allows guest users to complete tasks marked as "allow guest" in the process model. -- **Direct Navigation**: Guests can access tasks via a constructed URL, eliminating the need for login credentials. -- **Security Measures**: Guests are redirected to the login screen if they attempt to navigate away from the task page, ensuring secure access control. - -## Testing Instructions - -To verify the functionality of the Guest User Task feature, follow these steps: - -1. **Create a Process Model**: - -Design a process model that includes a manual or user task. Ensure you check the **"allow guest"** checkbox. - -![Guest user](images/guest_user1.png) - -2. **Start the Process Model**: - -Initiate the process model using the same user account that created it. - -3. **Access the Task GUID**: - -Navigate to the process instance show page and retrieve the GUID of the human task. - -![Guest user](images/guest_user2.png) - -4. **Construct the Access URL**: - -Create a URL in this format: - ``` - [domain]/public/tasks/[process_instance_id]/[task_guid] - ``` - -Replace `[domain]`, `[process_instance_id]`, and `[task_guid]` with appropriate values. - -5. **Test as a Guest User**: - -Open an incognito or private browsing window (not logged into Spiff). Navigate to the constructed URL. Confirm that the guest user can complete the task. -![Guest user](images/guest_user3.png) - -The Guest User Task feature improves usability for non-logged-in users by allowing them to complete designated tasks seamlessly. \ No newline at end of file diff --git a/docs/Building_Diagrams/images/user_tasks_properties.png b/docs/Building_Diagrams/images/user_tasks_properties.png new file mode 100644 index 0000000000000000000000000000000000000000..0a2b1730c1afdf5f27d607ea55912f2cb31e2a69 GIT binary patch literal 15109 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 literal 0 HcmV?d00001 diff --git a/docs/Building_Diagrams/Forms.md b/docs/Building_Diagrams/user_tasks_and_forms.md similarity index 77% rename from docs/Building_Diagrams/Forms.md rename to docs/Building_Diagrams/user_tasks_and_forms.md index b84999434..151b4a7aa 100644 --- a/docs/Building_Diagrams/Forms.md +++ b/docs/Building_Diagrams/user_tasks_and_forms.md @@ -1,11 +1,65 @@ -# Using Forms +# User Tasks and Forms +User Tasks are a key feature in BPMN (Business Process Model and Notation) workflows where human interaction is required to complete a process. In SpiffWorkflow, User Tasks are closely integrated with Forms, which are used to collect input or display information to users during process execution. + +Some key features of user tasks are: + +- Involve direct interaction with the user. +- Typically linked to a form for data collection or information display. +- Can include custom validation and dynamic content. +- Support task assignment to specific users or groups. + +**When to Use User Tasks**: +- To gather approvals or confirmations from users. +- To collect data required for further process execution. +- To provide users with critical information during a workflow. + +## **Steps to Set Up a User Task** +**1. Add a User Task in the BPMN Model** +- Drag and drop the **User Task** symbol onto your BPMN diagram. +- Connect it to the previous and subsequent tasks in the process flow. + +**2. Configuring the User Task** +Click on the user task in the BPMN editor to display the **Properties Panel** on the right. Below are the key sections and settings for user tasks: + ```{image} ./images/user_tasks_properties.png +:alt: Service Task +:width: 300px +:align: right +``` +**General** +- **Name**: Provide a meaningful name for the task (e.g., "Name Form"). +- **ID**: Automatically generated or customizable unique identifier for the task. + +**Documentation** +- Add descriptions or notes to document the purpose of the task. + +**Pre/Post Scripts** +- **Pre-Script**: Add Python scripts to execute **before** the task starts. +- **Post-Script**: Add Python scripts to execute **after** the task is completed. +- Use the "Launch Editor" button to access the code editor. + +**Web Form (With JSON Schemas)** +- **JSON Schema Filename**: Select or define the form schema to be displayed during task execution. +- **Form Description (RJSF)**: Provide an additional description for the form. +- Use the "Launch Editor" button to edit or view the schema, UI settings, or data. + +**Instructions** +- Add instructions that will appear above the form during task execution to guide the user. + + +**Guest Options** +- **Guest Can Complete This Task**: Allow non-logged-in users (guests) to complete the task. This is useful for workflows requiring external inputs, such as surveys or public forms. +- **Guest Confirmation**: Add a markdown confirmation message that appears after task submission. -This feature allows you to create custom forms for collecting and managing data within your workflows. -Whether you need a simple feedback form or a complex multi-step form, SpiffArena provides you with the tools to build and integrate forms seamlessly. +**Input/Output Management** +- Use the "Inputs" and "Outputs" sections to define specific variables accessible to or from the task. If not defined, all process variables are accessible. + +## Forms + +Forms in SpiffWorkflow enable you to create intuitive user interfaces for collecting data during User Tasks. They are configured using JSON Schema and can be customized with dynamic elements, validations, and UI enhancements. Let's dive in and explore the possibilities of creating forms in SpiffArena. -## Creating Forms +### Creating Forms Here are the ways to create forms: 1. **Using JSON Schema** @@ -64,11 +118,11 @@ For instance, you can set the UI widget correctly for each element, ensuring it ![Form Editor](images/Form_editor4.png) -## SpiffArena react-jsonschema-form enhancements +### SpiffArena react-jsonschema-form enhancements SpiffArena has enhanced the capabilities of react-jsonschema-form to provide users with more dynamic and flexible form-building options. -### Dynamic Enumerations +#### Dynamic Enumerations Dynamic enumerations allow you to provide users with a list of options (in a select/dropdown) that can change based on variables in the process instance. @@ -113,7 +167,7 @@ Then use JSON like this (note the `options_from_task_data_var:fruits`) when defi } ``` -### Checkbox Validation +#### Checkbox Validation Checkbox validation ensures that checkboxes, especially required boolean fields, are properly validated. By default, react-jsonschema-form only triggers validation when a checkbox field is left undefined. @@ -125,14 +179,14 @@ This will force the value to be `true` (the checkbox must be checked) before the ```{admonition} Note When working with both Python and JSON, be aware that `True` and `False` are capitalized in Python but must be lowercase (`true` and `false`) in JSON format. ``` -### Regex Validation +#### Regex Validation Regex validation allows you to validate text input fields based on regular expressions. This is useful when you need to ensure that user inputs match a specific pattern or format, such as email addresses or phone numbers. In your JSON schema, include a `pattern` property with a regular expression pattern that defines the valid format for the input field. -### Date Range Selector +#### Date Range Selector The date range selector allows users to select a range of dates, such as a start and end date, within a form. You will use this feature when building forms that involve specifying date intervals. @@ -155,11 +209,11 @@ Example for UI schema: "ui:help": "Indicate the travel start and end dates" }, ``` -### Date Validation +#### Date Validation Date validation when compared to another date allows you to ensure that a date field meets certain criteria concerning another date field. -#### Minimum date validation +**Minimum date validation** For instance, you can require that a date must be equal to or greater than another date within the form. @@ -178,7 +232,7 @@ This is an example where the end_date must be after the start_date: } ``` -#### Maximum date validation +**Maximum date validation** Maximum date validation in relation to another date allows you to set constraints on a date field to ensure that it falls on or before another specified date within the form. This type of validation is particularly useful for setting deadlines, end dates, or the latest possible dates that are contingent on other dates in the workflow. @@ -202,9 +256,9 @@ If the referenced field is a date range, and you want to validate against the en Using maximum date validation, you can prevent dates from exceeding a certain threshold, which is essential for managing project timelines, delivery schedules, or any scenario where the latest permissible date is a factor. -#### Date Validation Scenario: Enforcing Minimum and Maximum Date Constraints +**Date Validation Scenario: Enforcing Minimum and Maximum Date Constraints** -#### Scenario Overview +**Scenario Overview** Workflow processes often require the enforcement of minimum and maximum date constraints to align with operational timelines or project deadlines. @@ -319,7 +373,7 @@ By defining a `uiSchema` like this, the layout will automatically adjust the col ``` By using the `ui:layout` feature, you can design form layouts that are not only functional but also enhance the user experience, making your forms well-organized and accessible across various screen sizes. -### Display UI Help in Web Forms +#### Display UI Help in Web Forms When designing web forms, it's important to provide users with contextual help to ensure they understand the purpose and requirements of each field. This guidance can be achieved by adding help text to specific form fields. @@ -377,14 +431,14 @@ To incorporate the markdown widget into your rjsf form, follow these steps: ![rjsf markdown](images/rsjf_markdown.png) -### Numeric Range Field +#### Numeric Range Field #### Overview The `NumericRangeField` component is a new feature in `spiffworkflow-frontend` that allows users to input numeric ranges. This component is designed to work with JSON schemas and provides two text inputs for users to enter minimum and maximum values for a given numeric range. -#### JSON Schema Example +##### JSON Schema Example Below is an example JSON schema that includes the numeric range field: @@ -421,11 +475,11 @@ This schema defines a numeric range object with `min` and `max` properties, both } ``` -#### Validation +##### Validation This will automatically validate that the max value cannot be less than the min value. -### Adding a New Button for Repeating Sections in Forms +#### Adding a New Button for Repeating Sections in Forms Nested forms or repeating sections are designed to collect an array of objects, where each object represents a set of related information. For instance, in a task management form, you might need to collect multiple tasks, each with its title and completion status. @@ -468,11 +522,11 @@ This structure can be represented in the form's schema as follows: By using this feature, you can effectively implement new buttons for nested forms or repeating sections, improving the form's usability for collecting multiple related entries from users. -### Character counter +#### Character counter To give the user feedback about how they are doing in terms of staying within the limits imposed by the field, you can display a character counter. -#### JSON Schema Configuration +##### JSON Schema Configuration To do this, your JSON schema must contain a string with a `maxLength`, like this: @@ -489,7 +543,7 @@ To do this, your JSON schema must contain a string with a `maxLength`, like this } ``` -#### UI Schema Configuration +##### UI Schema Configuration Your UI Schema will need a `ui:options` specifying `counter: true`, like this: @@ -502,3 +556,48 @@ Your UI Schema will need a `ui:options` specifying `counter: true`, like this: } } ``` +## Guest User Task +The Guest User Task feature in SpiffArena allows users who are not logged into the system to complete specified human tasks. This functionality enhances accessibility and usability, enabling a broader range of users to interact with the process models without requiring an account. + +### Key Features + +- **Task Accessibility**: Allows guest users to complete tasks marked as "allow guest" in the process model. +- **Direct Navigation**: Guests can access tasks via a constructed URL, eliminating the need for login credentials. +- **Security Measures**: Guests are redirected to the login screen if they attempt to navigate away from the task page, ensuring secure access control. + +### Testing Instructions + +To verify the functionality of the Guest User Task feature, follow these steps: + +1. **Create a Process Model**: + +Design a process model that includes a manual or user task. Ensure you check the **"allow guest"** checkbox. + +![Guest user](images/guest_user1.png) + +2. **Start the Process Model**: + +Initiate the process model using the same user account that created it. + +3. **Access the Task GUID**: + +Navigate to the process instance show page and retrieve the GUID of the human task. + +![Guest user](images/guest_user2.png) + +4. **Construct the Access URL**: + +Create a URL in this format: + ``` + [domain]/public/tasks/[process_instance_id]/[task_guid] + ``` + +Replace `[domain]`, `[process_instance_id]`, and `[task_guid]` with appropriate values. + +5. **Test as a Guest User**: + +Open an incognito or private browsing window (not logged into Spiff). Navigate to the constructed URL. Confirm that the guest user can complete the task. +![Guest user](images/guest_user3.png) + +The Guest User Task feature improves usability for non-logged-in users by allowing them to complete designated tasks seamlessly. + diff --git a/docs/Debugging_Diagrams/executable_non_executable.md b/docs/Debugging_Diagrams/executable_non_executable.md new file mode 100644 index 000000000..1c8e1e169 --- /dev/null +++ b/docs/Debugging_Diagrams/executable_non_executable.md @@ -0,0 +1,38 @@ +# Executable and Non-Executable Tasks + +In SpiffWorkflow, a process model can be either **Executable** or **Non-Executable**, and the designation impacts how the workflow behaves: +- **Executable Process**: Configured for automation and execution by the workflow engine. All tasks within the process are actionable and designed to run dynamically. +- **Non-Executable Process**: Intended for documentation or design purposes. These workflows are visual representations and cannot be executed by the workflow engine. + +## Configuring Executable and Non-Executable Processes +### **Non_Executable Process**: +1. Open the BPMN editor in SpiffWorkflow. Select the process canvas or diagram header. Navigate to the **Properties Panel** on the right side. +2. Under the **General** section, uncheck the **Executable** checkbox. + +![non-executable task](images/non_executable.png) + +3. Save your changes. Go to the process model page and the Start Button will not appear, indicating that the process is non-executable. + +![non-executable task](images/non_executable1.png) + + +### **Executable Processes**: +1. Follow the same steps as above, but check the **Executable** checkbox. + +![executable task](images/executable.png) +2. Save your changes. The Start Button will now appear when the model is opened. + +![executable task](images/executable1.png) + + + + +## Common Scenarios +| **Scenario** | **Executable Process** | **Non-Executable Process** | +|---------------------------------------|-------------------------|----------------------------| +| Automated workflows (e.g., API calls) | ✅ | ❌ | +| Training or stakeholder presentation | ❌ | ✅ | +| Manual workflows | ❌ | ✅ | +| Workflow design phase | ❌ | ✅ | +| System integration | ✅ | ❌ | + diff --git a/docs/Debugging_Diagrams/images/executable.png b/docs/Debugging_Diagrams/images/executable.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2d18b3ca37aed34de05a5a0225bdf7110f31b0 GIT binary patch literal 48661 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 literal 0 HcmV?d00001 diff --git a/docs/Debugging_Diagrams/images/executable1.png b/docs/Debugging_Diagrams/images/executable1.png new file mode 100644 index 0000000000000000000000000000000000000000..b49ecff515206c2683a68a374c741fcfe4c3bbe1 GIT binary patch literal 29256 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 M;&iyi#{b&i0Z;1FtpET3 literal 0 HcmV?d00001 diff --git a/docs/Debugging_Diagrams/images/non_executable.png b/docs/Debugging_Diagrams/images/non_executable.png new file mode 100644 index 0000000000000000000000000000000000000000..af10a0782b58d8547840500828ce39dff27a5b03 GIT binary patch literal 48718 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 literal 0 HcmV?d00001 diff --git a/docs/Debugging_Diagrams/images/non_executable1.png b/docs/Debugging_Diagrams/images/non_executable1.png new file mode 100644 index 0000000000000000000000000000000000000000..1863f5674883b511c8e8f3a09d84e653744bd861 GIT binary patch literal 28822 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%0D>+M0 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 E077lgSO5S3 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 1c7666cd1..96e2bd118 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,7 +11,7 @@ Getting_Started/quick_start.md :caption: Building Diagrams Building_Diagrams/learn_basics.md Building_Diagrams/bpmn.md -Building_Diagrams/Forms.md +Building_Diagrams/user_tasks_and_forms.md Building_Diagrams/gateways.md Building_Diagrams/events.md Building_Diagrams/message_events.md @@ -28,7 +28,6 @@ Building_Diagrams/data.md Building_Diagrams/multiinstance.md Building_Diagrams/dmn.md Building_Diagrams/pools_and_lanes.md -Building_Diagrams/guest_user.md Building_Diagrams/Builtin_examples.md ``` @@ -37,6 +36,7 @@ Building_Diagrams/Builtin_examples.md :caption: Debugging Diagrams Debugging_Diagrams/bpmn_unit_tests.md Debugging_Diagrams/process_error_handling.md +Debugging_Diagrams/executable_non_executable.md ``` ```{toctree} From acf79669107dcd7ef66a9089e2aa50d4ca8760db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 15:22:06 +0000 Subject: [PATCH 24/34] Bump sentry-sdk from 2.16.0 to 2.19.2 in /spiffworkflow-backend (#2187) Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.16.0 to 2.19.2. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/2.16.0...2.19.2) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 14 ++++++++------ spiffworkflow-backend/pyproject.toml | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index 86be8e39a..45924d705 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -2780,13 +2780,13 @@ requests = "*" [[package]] name = "sentry-sdk" -version = "2.16.0" +version = "2.19.2" description = "Python client for Sentry (https://sentry.io)" optional = false python-versions = ">=3.6" files = [ - {file = "sentry_sdk-2.16.0-py2.py3-none-any.whl", hash = "sha256:49139c31ebcd398f4f6396b18910610a0c1602f6e67083240c33019d1f6aa30c"}, - {file = "sentry_sdk-2.16.0.tar.gz", hash = "sha256:90f733b32e15dfc1999e6b7aca67a38688a567329de4d6e184154a73f96c6892"}, + {file = "sentry_sdk-2.19.2-py2.py3-none-any.whl", hash = "sha256:ebdc08228b4d131128e568d696c210d846e5b9d70aa0327dec6b1272d9d40b84"}, + {file = "sentry_sdk-2.19.2.tar.gz", hash = "sha256:467df6e126ba242d39952375dd816fbee0f217d119bf454a8ce74cf1e7909e8d"}, ] [package.dependencies] @@ -2815,14 +2815,16 @@ grpcio = ["grpcio (>=1.21.1)", "protobuf (>=3.8.0)"] http2 = ["httpcore[http2] (==1.*)"] httpx = ["httpx (>=0.16.0)"] huey = ["huey (>=2)"] -huggingface-hub = ["huggingface-hub (>=0.22)"] +huggingface-hub = ["huggingface_hub (>=0.22)"] langchain = ["langchain (>=0.0.210)"] +launchdarkly = ["launchdarkly-server-sdk (>=9.8.0)"] litestar = ["litestar (>=2.0.0)"] loguru = ["loguru (>=0.5)"] openai = ["openai (>=1.0.0)", "tiktoken (>=0.3.0)"] +openfeature = ["openfeature-sdk (>=0.7.1)"] opentelemetry = ["opentelemetry-distro (>=0.35b0)"] opentelemetry-experimental = ["opentelemetry-distro"] -pure-eval = ["asttokens", "executing", "pure-eval"] +pure-eval = ["asttokens", "executing", "pure_eval"] pymongo = ["pymongo (>=3.1)"] pyspark = ["pyspark (>=2.4.4)"] quart = ["blinker (>=1.1)", "quart (>=0.16.1)"] @@ -3520,4 +3522,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "4d5b6b201ea7d9a6bb915801d6f4b4766ba21052627bd4781447bfa41a4b7a59" +content-hash = "810b4a281539f09cb2e56af01d67eb9110db61cb251682a9dbe48a879d21238b" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index a332725e2..dcadf45bd 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -28,7 +28,7 @@ flask-restful = "*" SpiffWorkflow = {git = "https://github.com/sartography/SpiffWorkflow", rev = "main"} # SpiffWorkflow = {develop = true, path = "../../spiffworkflow/" } # SpiffWorkflow = {develop = true, path = "../../SpiffWorkflow/" } -sentry-sdk = {extras = ['flask'], version = "^2.16"} +sentry-sdk = {extras = ['flask'], version = "^2.19"} # sphinx-autoapi = "^2.0" psycopg2 = "^2.9.10" typing-extensions = "^4.12.2" From 42c4476ac4814c78fbe768e206c7fe2e1bedc251 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 15:05:56 +0000 Subject: [PATCH 25/34] Bump cryptography from 43.0.3 to 44.0.0 in /spiffworkflow-backend (#2189) Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.3 to 44.0.0. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/43.0.3...44.0.0) --- updated-dependencies: - dependency-name: cryptography dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 76 ++++++++++++++-------------- spiffworkflow-backend/pyproject.toml | 2 +- 2 files changed, 40 insertions(+), 38 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index 45924d705..d1e603f7c 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -692,51 +692,53 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "43.0.3" +version = "44.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false -python-versions = ">=3.7" -files = [ - {file = "cryptography-43.0.3-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf7a1932ac4176486eab36a19ed4c0492da5d97123f1406cf15e41b05e787d2e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63efa177ff54aec6e1c0aefaa1a241232dcd37413835a9b674b6e3f0ae2bfd3e"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e1ce50266f4f70bf41a2c6dc4358afadae90e2a1e5342d3c08883df1675374f"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:443c4a81bb10daed9a8f334365fe52542771f25aedaf889fd323a853ce7377d6"}, - {file = "cryptography-43.0.3-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:74f57f24754fe349223792466a709f8e0c093205ff0dca557af51072ff47ab18"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9762ea51a8fc2a88b70cf2995e5675b38d93bf36bd67d91721c309df184f49bd"}, - {file = "cryptography-43.0.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:81ef806b1fef6b06dcebad789f988d3b37ccaee225695cf3e07648eee0fc6b73"}, - {file = "cryptography-43.0.3-cp37-abi3-win32.whl", hash = "sha256:cbeb489927bd7af4aa98d4b261af9a5bc025bd87f0e3547e11584be9e9427be2"}, - {file = "cryptography-43.0.3-cp37-abi3-win_amd64.whl", hash = "sha256:f46304d6f0c6ab8e52770addfa2fc41e6629495548862279641972b6215451cd"}, - {file = "cryptography-43.0.3-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:8ac43ae87929a5982f5948ceda07001ee5e83227fd69cf55b109144938d96984"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:846da004a5804145a5f441b8530b4bf35afbf7da70f82409f151695b127213d5"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f996e7268af62598f2fc1204afa98a3b5712313a55c4c9d434aef49cadc91d4"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:f7b178f11ed3664fd0e995a47ed2b5ff0a12d893e41dd0494f406d1cf555cab7"}, - {file = "cryptography-43.0.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:c2e6fc39c4ab499049df3bdf567f768a723a5e8464816e8f009f121a5a9f4405"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e1be4655c7ef6e1bbe6b5d0403526601323420bcf414598955968c9ef3eb7d16"}, - {file = "cryptography-43.0.3-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:df6b6c6d742395dd77a23ea3728ab62f98379eff8fb61be2744d4679ab678f73"}, - {file = "cryptography-43.0.3-cp39-abi3-win32.whl", hash = "sha256:d56e96520b1020449bbace2b78b603442e7e378a9b3bd68de65c782db1507995"}, - {file = "cryptography-43.0.3-cp39-abi3-win_amd64.whl", hash = "sha256:0c580952eef9bf68c4747774cde7ec1d85a6e61de97281f2dba83c7d2c806362"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d03b5621a135bffecad2c73e9f4deb1a0f977b9a8ffe6f8e002bf6c9d07b918c"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a2a431ee15799d6db9fe80c82b055bae5a752bef645bba795e8e52687c69efe3"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:281c945d0e28c92ca5e5930664c1cefd85efe80e5c0d2bc58dd63383fda29f83"}, - {file = "cryptography-43.0.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f18c716be16bc1fea8e95def49edf46b82fccaa88587a45f8dc0ff6ab5d8e0a7"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:4a02ded6cd4f0a5562a8887df8b3bd14e822a90f97ac5e544c162899bc467664"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:53a583b6637ab4c4e3591a15bc9db855b8d9dee9a669b550f311480acab6eb08"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1ec0bcf7e17c0c5669d881b1cd38c4972fade441b27bda1051665faaa89bdcaa"}, - {file = "cryptography-43.0.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2ce6fae5bdad59577b44e4dfed356944fbf1d925269114c28be377692643b4ff"}, - {file = "cryptography-43.0.3.tar.gz", hash = "sha256:315b9001266a492a6ff443b61238f956b214dbec9910a081ba5b6646a055a805"}, +python-versions = "!=3.9.0,!=3.9.1,>=3.7" +files = [ + {file = "cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"}, + {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:60eb32934076fa07e4316b7b2742fa52cbb190b42c2df2863dbc4230a0a9b385"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"}, + {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"}, + {file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"}, + {file = "cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd"}, + {file = "cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"}, + {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:9abcc2e083cbe8dde89124a47e5e53ec38751f0d7dfd36801008f316a127d7ba"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"}, + {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"}, + {file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"}, + {file = "cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37d76e6863da3774cd9db5b409a9ecfd2c71c981c38788d3fcfaf177f447b731"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f677e1268c4e23420c3acade68fac427fffcb8d19d7df95ed7ad17cdef8404f4"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5e7cb1e5e56ca0933b4873c0220a78b773b24d40d186b6738080b73d3d0a756"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:8b3e6eae66cf54701ee7d9c83c30ac0a1e3fa17be486033000f2a73a12ab507c"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:be4ce505894d15d5c5037167ffb7f0ae90b7be6f2a98f9a5c3442395501c32fa"}, + {file = "cryptography-44.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:62901fb618f74d7d81bf408c8719e9ec14d863086efe4185afd07c352aee1d2c"}, + {file = "cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02"}, ] [package.dependencies] cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} [package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] -nox = ["nox"] -pep8test = ["check-sdist", "click", "mypy", "ruff"] -sdist = ["build"] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0)"] +docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"] +nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"] +pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] +sdist = ["build (>=1.0.0)"] ssh = ["bcrypt (>=3.1.5)"] -test = ["certifi", "cryptography-vectors (==43.0.3)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test = ["certifi (>=2024)", "cryptography-vectors (==44.0.0)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] test-randomorder = ["pytest-randomly"] [[package]] @@ -3522,4 +3524,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "810b4a281539f09cb2e56af01d67eb9110db61cb251682a9dbe48a879d21238b" +content-hash = "7e35291f0c5dafec18e118fcd4a727a3e8507feb2b70ce1e4376a67133496baf" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index dcadf45bd..6e9de4c64 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -65,7 +65,7 @@ sqlalchemy-stubs = { git = "https://github.com/burnettk/sqlalchemy-stubs.git", r simplejson = "^3.19.3" pytz = "^2024.2" dateparser = "^1.2.0" -cryptography = "^43.0" +cryptography = "^44.0" prometheus-flask-exporter = "^0.23.1" sqlalchemy = "^2.0.31" From 6dfc790835763b3e4aefaf92e2ad18f26091e1ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:09:02 +0000 Subject: [PATCH 26/34] Bump typeguard from 4.3.0 to 4.4.1 in /spiffworkflow-backend (#2190) Bumps [typeguard](https://github.com/agronholm/typeguard) from 4.3.0 to 4.4.1. - [Release notes](https://github.com/agronholm/typeguard/releases) - [Changelog](https://github.com/agronholm/typeguard/blob/master/docs/versionhistory.rst) - [Commits](https://github.com/agronholm/typeguard/compare/4.3.0...4.4.1) --- updated-dependencies: - dependency-name: typeguard dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index d1e603f7c..d63c407b4 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -703,7 +703,6 @@ files = [ {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"}, {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"}, {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"}, - {file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:60eb32934076fa07e4316b7b2742fa52cbb190b42c2df2863dbc4230a0a9b385"}, {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"}, {file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"}, {file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"}, @@ -714,7 +713,6 @@ files = [ {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"}, {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"}, {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"}, - {file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:9abcc2e083cbe8dde89124a47e5e53ec38751f0d7dfd36801008f316a127d7ba"}, {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"}, {file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"}, {file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"}, @@ -3182,13 +3180,13 @@ files = [ [[package]] name = "typeguard" -version = "4.3.0" +version = "4.4.1" description = "Run-time type checker for Python" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "typeguard-4.3.0-py3-none-any.whl", hash = "sha256:4d24c5b39a117f8a895b9da7a9b3114f04eb63bade45a4492de49b175b6f7dfa"}, - {file = "typeguard-4.3.0.tar.gz", hash = "sha256:92ee6a0aec9135181eae6067ebd617fd9de8d75d714fb548728a4933b1dea651"}, + {file = "typeguard-4.4.1-py3-none-any.whl", hash = "sha256:9324ec07a27ec67fc54a9c063020ca4c0ae6abad5e9f0f9804ca59aee68c6e21"}, + {file = "typeguard-4.4.1.tar.gz", hash = "sha256:0d22a89d00b453b47c49875f42b6601b961757541a2e1e0ef517b6e24213c21b"}, ] [package.dependencies] From 80b8e0771c67bf66ebf3342ff6716e7f5e935c92 Mon Sep 17 00:00:00 2001 From: Dan Funk Date: Thu, 12 Dec 2024 15:29:03 -0500 Subject: [PATCH 27/34] Redirect debugging (#2192) * Assure we always generated the redirect with the same exact peice of code. And debug the value that is used in that location * missing argument. * the final_url we want to return peoiple to is not the same as the redirect_url we send to an open id provider. * final cleanup. * remove accidental files. * remove process_modesl symlink w/ burnettk * ignore all process models at root, not just directories w/ burnettk --------- Co-authored-by: jasquat --- .gitignore | 2 +- .../routes/authentication_controller.py | 18 ++++++---------- .../services/authentication_service.py | 21 ++++++++++++------- .../integration/test_authentication.py | 6 +++--- 4 files changed, 24 insertions(+), 23 deletions(-) diff --git a/.gitignore b/.gitignore index d7865b4a7..884b644cc 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ t version_info.json .coverage* UNKNOWN.egg-info/ -process_models/ +process_models .ipynb_checkpoints .env* .cache diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/routes/authentication_controller.py b/spiffworkflow-backend/src/spiffworkflow_backend/routes/authentication_controller.py index ed37bd90e..7cc8bc56f 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/routes/authentication_controller.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/routes/authentication_controller.py @@ -9,7 +9,6 @@ from flask import make_response from flask import redirect from flask import request -from flask import url_for from werkzeug.wrappers import Response from spiffworkflow_backend.exceptions.api_error import ApiError @@ -137,16 +136,15 @@ def login( ) return redirect(redirect_url) - state = AuthenticationService.generate_state(redirect_url, authentication_identifier) login_redirect_url = AuthenticationService().get_login_redirect_url( - state.decode("UTF-8"), authentication_identifier=authentication_identifier + authentication_identifier=authentication_identifier, final_url=redirect_url ) return redirect(login_redirect_url) def login_return(code: str, state: str, session_state: str = "") -> Response | None: state_dict = ast.literal_eval(base64.b64decode(state).decode("utf-8")) - state_redirect_url = state_dict["redirect_url"] + state_redirect_url = state_dict["final_url"] authentication_identifier = state_dict["authentication_identifier"] auth_token_object = AuthenticationService().get_auth_token_object(code, authentication_identifier=authentication_identifier) if "id_token" in auth_token_object: @@ -178,7 +176,7 @@ def login_return(code: str, state: str, session_state: str = "") -> Response | N # we normally clear cookies on 401, but there is a high chance you do not have any yet in this case current_app.logger.error(f"id_token not found in payload from provider: {auth_token_object}") raise ApiError( - error_code="invalid_token", + error_code="missing_token", message="Login failed. Please try again", status_code=401, ) @@ -202,17 +200,13 @@ def login_with_access_token(access_token: str, authentication_identifier: str) - def login_api(authentication_identifier: str) -> Response: - host_url = request.host_url.strip("/") - login_return_path = url_for("/v1_0.spiffworkflow_backend_routes_authentication_controller_login_return") - redirect_url = f"{host_url}{login_return_path}" - state = AuthenticationService.generate_state(redirect_url, authentication_identifier) - login_redirect_url = AuthenticationService().get_login_redirect_url(state.decode("UTF-8"), redirect_url) + login_redirect_url = AuthenticationService().get_login_redirect_url(authentication_identifier) return redirect(login_redirect_url) def login_api_return(code: str, state: str, session_state: str) -> str: - state_dict = ast.literal_eval(base64.b64decode(state).decode("utf-8")) - state_dict["redirect_url"] + # state_dict = ast.literal_eval(base64.b64decode(state).decode("utf-8")) + # state_dict["final_url"] auth_token_object = AuthenticationService().get_auth_token_object(code, "/v1.0/login_api_return") access_token: str = auth_token_object["access_token"] diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/services/authentication_service.py b/spiffworkflow-backend/src/spiffworkflow_backend/services/authentication_service.py index 0dfe2df34..30ed9e243 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/services/authentication_service.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/services/authentication_service.py @@ -279,9 +279,16 @@ def logout(self, id_token: str, authentication_identifier: str, redirect_url: st return redirect(request_url) @staticmethod - def generate_state(redirect_url: str, authentication_identifier: str) -> bytes: + def generate_state(authentication_identifier: str, final_url: str | None = None) -> bytes: + # The final_url is where we want to return the user to, within the application - in case they + # where headed to a specific page. This is different than the "redirect url" we specify to + # the open id server - we want the open id server to always send us back to the login_return + # endpoint, and we'll redirect again from there. + my_final_url = final_url + if final_url is None: + my_final_url = str(current_app.config["SPIFFWORKFLOW_BACKEND_URL_FOR_FRONTEND"]) state = base64.b64encode( - bytes(str({"redirect_url": redirect_url, "authentication_identifier": authentication_identifier}), "UTF-8") + bytes(str({"final_url": my_final_url, "authentication_identifier": authentication_identifier}), "UTF-8") ) return state @@ -289,19 +296,19 @@ def get_redirect_uri_for_login_to_server(self) -> str: host_url = request.host_url.strip("/") login_return_path = url_for("/v1_0.spiffworkflow_backend_routes_authentication_controller_login_return") redirect_url_to_use = f"{host_url}{login_return_path}" + current_app.logger.debug(f"Redirect URL requested of open ID provider is '{redirect_url_to_use}' ") return redirect_url_to_use - def get_login_redirect_url(self, state: str, authentication_identifier: str, redirect_url: str | None = None) -> str: - redirect_url_to_use = redirect_url - if redirect_url_to_use is None: - redirect_url_to_use = self.get_redirect_uri_for_login_to_server() + def get_login_redirect_url(self, authentication_identifier: str, final_url: str | None = None) -> str: + redirect_url = self.get_redirect_uri_for_login_to_server() + state = self.generate_state(authentication_identifier, final_url).decode("UTF-8") login_redirect_url = ( self.open_id_endpoint_for_name("authorization_endpoint", authentication_identifier=authentication_identifier) + f"?state={state}&" + "response_type=code&" + f"client_id={self.client_id(authentication_identifier)}&" + f"scope={' '.join(current_app.config['SPIFFWORKFLOW_BACKEND_OPEN_ID_SCOPES'])}&" - + f"redirect_uri={redirect_url_to_use}" + + f"redirect_uri={redirect_url}" ) return login_redirect_url diff --git a/spiffworkflow-backend/tests/spiffworkflow_backend/integration/test_authentication.py b/spiffworkflow-backend/tests/spiffworkflow_backend/integration/test_authentication.py index 210b58ca1..157cf273d 100644 --- a/spiffworkflow-backend/tests/spiffworkflow_backend/integration/test_authentication.py +++ b/spiffworkflow-backend/tests/spiffworkflow_backend/integration/test_authentication.py @@ -20,12 +20,12 @@ class TestAuthentication(BaseTest): def test_get_login_state(self) -> None: redirect_url = "http://example.com/" - state = AuthenticationService.generate_state(redirect_url, authentication_identifier="default") + state = AuthenticationService.generate_state(authentication_identifier="default", final_url=redirect_url) state_dict = ast.literal_eval(base64.b64decode(state).decode("utf-8")) assert isinstance(state_dict, dict) - assert "redirect_url" in state_dict.keys() - assert state_dict["redirect_url"] == redirect_url + assert "final_url" in state_dict.keys() + assert state_dict["final_url"] == redirect_url def test_properly_adds_user_to_groups_from_token_on_login( self, From 41e23cf74cd07487b9ee49cec7c35c0ba88e6cd7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 15:06:35 +0000 Subject: [PATCH 28/34] Bump safety from 3.2.11 to 3.2.13 in /spiffworkflow-backend (#2195) Bumps [safety](https://github.com/pyupio/safety) from 3.2.11 to 3.2.13. - [Release notes](https://github.com/pyupio/safety/releases) - [Changelog](https://github.com/pyupio/safety/blob/main/CHANGELOG.md) - [Commits](https://github.com/pyupio/safety/compare/3.2.11...3.2.13) --- updated-dependencies: - dependency-name: safety dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 18 +++++++++--------- spiffworkflow-backend/pyproject.toml | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index d63c407b4..f1ba4e163 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "alembic" @@ -2713,13 +2713,13 @@ files = [ [[package]] name = "safety" -version = "3.2.11" +version = "3.2.13" description = "Checks installed dependencies for known vulnerabilities and licenses." optional = false python-versions = ">=3.7" files = [ - {file = "safety-3.2.11-py3-none-any.whl", hash = "sha256:3c339c380c9ea6a2d3ab09e88c01ee7ecaabaf963a1c98c021e13aacb9eeea3a"}, - {file = "safety-3.2.11.tar.gz", hash = "sha256:70a3b7cc75ba41907bf1705bcbbeab232688657c21088e108712ecb601fe0f20"}, + {file = "safety-3.2.13-py3-none-any.whl", hash = "sha256:c259d43b751c62973b484ed03b78409890236023a50d8e3292b80d84139a9d35"}, + {file = "safety-3.2.13.tar.gz", hash = "sha256:9328510c3286d67a788346d60df531b8bd2f35abbed3ac4dfaf8d119e6eec1ae"}, ] [package.dependencies] @@ -2735,7 +2735,7 @@ pydantic = ">=1.10.12" requests = "*" rich = "*" "ruamel.yaml" = ">=0.17.21" -safety-schemas = ">=0.0.8" +safety_schemas = "0.0.10" setuptools = ">=65.5.1" typer = "*" typing-extensions = ">=4.7.1" @@ -2748,13 +2748,13 @@ spdx = ["spdx-tools (>=0.8.2)"] [[package]] name = "safety-schemas" -version = "0.0.9" +version = "0.0.10" description = "Schemas for Safety tools" optional = false python-versions = ">=3.7" files = [ - {file = "safety_schemas-0.0.9-py3-none-any.whl", hash = "sha256:bf1f7d7c3149b8c4fcbb7f4f859da10c8e5008aa569294f8692c22534d6ef119"}, - {file = "safety_schemas-0.0.9.tar.gz", hash = "sha256:23044f88aa21213980b00e6002cf56229e1efc2b6cbdde3e90fc781ca6bbc217"}, + {file = "safety_schemas-0.0.10-py3-none-any.whl", hash = "sha256:83978c14fcf598f00a6d98e70450e635d3deb33b3abbb5a886004ade7ca84b7f"}, + {file = "safety_schemas-0.0.10.tar.gz", hash = "sha256:5ec83bb19e17003748d2a4b11e43e1f2b4471c9434329e9a0d80d1069966b96c"}, ] [package.dependencies] @@ -3522,4 +3522,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "7e35291f0c5dafec18e118fcd4a727a3e8507feb2b70ce1e4376a67133496baf" +content-hash = "510106293fb7fd74d078eb6f392ffd78aa96b01039105a5c87bcdb5cf105f704" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index 6e9de4c64..2c429bd9f 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -91,7 +91,7 @@ spiffworkflow-backend = "spiffworkflow_backend.__main__:main" [tool.poetry.group.dev.dependencies] pytest = "^8.3.3" coverage = {extras = ["toml"], version = "^7.6"} -safety = "^3.2.11" +safety = "^3.2.13" mypy = ">=0.961" typeguard = "^4" xdoctest = {extras = ["colors"], version = "^1.2.0"} From 6c0acaea1e1f7566ff668cc43acc5ba5718ad540 Mon Sep 17 00:00:00 2001 From: Kevin Burnett <18027+burnettk@users.noreply.github.com> Date: Mon, 16 Dec 2024 07:00:51 -0800 Subject: [PATCH 29/34] update to make this work for both local openid and keycloak again (#2197) * update to make this work for both local openid and keycloak again * Update spiffworkflow-backend/bin/get_token Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix coderabbit --------- Co-authored-by: burnettk Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- spiffworkflow-backend/bin/get_token | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/spiffworkflow-backend/bin/get_token b/spiffworkflow-backend/bin/get_token index 03ae6bf6f..a69edde4b 100755 --- a/spiffworkflow-backend/bin/get_token +++ b/spiffworkflow-backend/bin/get_token @@ -19,7 +19,7 @@ def get_argv(index: int, default: Any = None) -> Any: username = get_argv(1, "admin") password = get_argv(2, "admin") -realm_name = get_argv(3, "spiffworkflow") +realm_name = get_argv(3, "spiffworkflow-local") OPEN_ID_CODE = ":this_is_not_secure_do_not_use_in_production" @@ -38,9 +38,15 @@ if openid_token_url is None: raise Exception("Could not determine openid url based on backend url") env_domain = match.group(1) keycloak_base_url = "https://keycloak.${env_domain}" - elif "localhost:7000" in backend_base_url: - keycloak_base_url = "http://localhost:7000" - openid_token_url = f"{keycloak_base_url}/realms/{realm_name}/protocol/openid-connect/token" + import urllib.parse + + token_path = "/protocol/openid-connect/token" + if "/realms" in keycloak_base_url: + openid_token_url = f"{keycloak_base_url}{token_path}" + else: + # Sanitize realm_name to prevent path traversal + safe_realm = urllib.parse.quote(realm_name, safe="") + openid_token_url = f"{keycloak_base_url}/realms/{safe_realm}{token_path}" else: openid_token_url = f"{backend_base_url}/openid/token" From e72f07905feb79fde99b7a87ae96964261cd4d14 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 15:10:20 +0000 Subject: [PATCH 30/34] Bump bandit from 1.7.10 to 1.8.0 in /spiffworkflow-backend (#2196) Bumps [bandit](https://github.com/PyCQA/bandit) from 1.7.10 to 1.8.0. - [Release notes](https://github.com/PyCQA/bandit/releases) - [Commits](https://github.com/PyCQA/bandit/compare/1.7.10...1.8.0) --- updated-dependencies: - dependency-name: bandit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- spiffworkflow-backend/poetry.lock | 10 +++++----- spiffworkflow-backend/pyproject.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/spiffworkflow-backend/poetry.lock b/spiffworkflow-backend/poetry.lock index f1ba4e163..7e07ca35f 100644 --- a/spiffworkflow-backend/poetry.lock +++ b/spiffworkflow-backend/poetry.lock @@ -131,13 +131,13 @@ cryptography = "*" [[package]] name = "bandit" -version = "1.7.10" +version = "1.8.0" description = "Security oriented static analyser for python code." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "bandit-1.7.10-py3-none-any.whl", hash = "sha256:665721d7bebbb4485a339c55161ac0eedde27d51e638000d91c8c2d68343ad02"}, - {file = "bandit-1.7.10.tar.gz", hash = "sha256:59ed5caf5d92b6ada4bf65bc6437feea4a9da1093384445fed4d472acc6cff7b"}, + {file = "bandit-1.8.0-py3-none-any.whl", hash = "sha256:b1a61d829c0968aed625381e426aa378904b996529d048f8d908fa28f6b13e38"}, + {file = "bandit-1.8.0.tar.gz", hash = "sha256:b5bfe55a095abd9fe20099178a7c6c060f844bfd4fe4c76d28e35e4c52b9d31e"}, ] [package.dependencies] @@ -3522,4 +3522,4 @@ tests-strict = ["pytest (==4.6.0)", "pytest (==6.2.5)", "pytest-cov (==3.0.0)"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "510106293fb7fd74d078eb6f392ffd78aa96b01039105a5c87bcdb5cf105f704" +content-hash = "79ac61ab5ead4b8042cd1a7ad12c54541d2de8fc23bfa41a76af123a009211f6" diff --git a/spiffworkflow-backend/pyproject.toml b/spiffworkflow-backend/pyproject.toml index 2c429bd9f..eef559aa3 100644 --- a/spiffworkflow-backend/pyproject.toml +++ b/spiffworkflow-backend/pyproject.toml @@ -108,7 +108,7 @@ pytest-flask-sqlalchemy = "^1.1.0" pytest-xdist = "3.6.1" # 1.7.3 broke us. https://github.com/PyCQA/bandit/issues/841 -bandit = "1.7.10" +bandit = "1.8.0" # flask-sqlalchemy-stubs = "^0.2" pre-commit-hooks = "^5.0.0" From 188041660eefd6c74b1bb89a0bb18f68c9dad851 Mon Sep 17 00:00:00 2001 From: burnettk Date: Mon, 30 Dec 2024 10:44:11 -0500 Subject: [PATCH 31/34] fix lint --- spiffworkflow-backend/bin/get_token | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spiffworkflow-backend/bin/get_token b/spiffworkflow-backend/bin/get_token index a69edde4b..43eb24a3b 100755 --- a/spiffworkflow-backend/bin/get_token +++ b/spiffworkflow-backend/bin/get_token @@ -40,7 +40,7 @@ if openid_token_url is None: keycloak_base_url = "https://keycloak.${env_domain}" import urllib.parse - token_path = "/protocol/openid-connect/token" + token_path = "/protocol/openid-connect/token" # noqa: S105 if "/realms" in keycloak_base_url: openid_token_url = f"{keycloak_base_url}{token_path}" else: From 509e90d389c39cc66137fb97be8d60a9054865bd Mon Sep 17 00:00:00 2001 From: Kevin Burnett <18027+burnettk@users.noreply.github.com> Date: Mon, 30 Dec 2024 16:36:14 +0000 Subject: [PATCH 32/34] custom metadata docs (#2201) * custom metadata docs * remove bad file * fix name --------- Co-authored-by: burnettk --- .../custom_process_metadata.md | 41 +++++++++++++++++++ docs/index.md | 1 + 2 files changed, 42 insertions(+) create mode 100644 docs/Building_Diagrams/custom_process_metadata.md diff --git a/docs/Building_Diagrams/custom_process_metadata.md b/docs/Building_Diagrams/custom_process_metadata.md new file mode 100644 index 000000000..5c27f8a26 --- /dev/null +++ b/docs/Building_Diagrams/custom_process_metadata.md @@ -0,0 +1,41 @@ +# Custom Process Metadata + +This guide will walk you through the steps to create a process model that generates custom metadata using a metadata extraction path and how to query that metadata using process instance filtering. + +## Step 1: Define the Process Model + +**Create a New Process Model**: + +- Navigate to the "Processes" section in SpiffArena. +- Click on "Add a process model" and fill in the required fields as described elsewhere. +- In the process model form, specify the metadata extraction path. + - This path is used to extract data from your process instances for quick access in searches and perspectives. + - Example: If you have a script task that sets `great_color = "blue"`, set both the extraction key and extraction path to `great_color`. +- Save the process model. + +## Step 2: Start the Process + +1. **Initiate the Process**: + + - Navigate to the "Home" section and click on "Start New" to initiate the process. + - Select the process model you created and start a new instance. + +2. **Monitor Process Execution**: + - Track the progress of the process instance to ensure it completes successfully and actually generates appropriate task data, such as `great_color` or whatever specific data you are looking for. + +## Step 3: Query Custom Metadata + +1. **Navigate to Process Instances**: + + - Go to the "Process Instances" section to view all instances. + +2. **Expose a column for your Custom Metadata attribute**: + + - Use the plus icon to add a column. + - Select the metadata field you defined in the extraction path and click Save. + - You should now be able to see your custom metadata as a new column in the process instance report. + +3. **View Filtered Results**: + - You can also filter process instances based on your custom column using the same column options. + +By following these steps, you can create a process model that generates custom metadata and efficiently query that metadata using process instance filtering. diff --git a/docs/index.md b/docs/index.md index 96e2bd118..25555c0ea 100644 --- a/docs/index.md +++ b/docs/index.md @@ -82,6 +82,7 @@ appendices/glossary.md appendices/articles.md appendices/bpmn_terminology.md documentation/documentation.md +Building_Diagrams/custom_process_metadata.md wish_list/wish_list.md ``` From eaa2a0d04da479397b550c54b84bc950a4ab7a14 Mon Sep 17 00:00:00 2001 From: Usama Ahmad <96994784+usama9500@users.noreply.github.com> Date: Tue, 31 Dec 2024 19:23:31 +0500 Subject: [PATCH 33/34] Okta configuration (#2199) * Okta configuration * fix build issues and errors --------- Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com> --- .../images/okta_config.png | Bin 0 -> 13428 bytes .../okta_config.md | 84 ++++++++++++++++++ docs/index.md | 1 + 3 files changed, 85 insertions(+) create mode 100644 docs/DevOps_installation_integration/images/okta_config.png create mode 100644 docs/DevOps_installation_integration/okta_config.md diff --git a/docs/DevOps_installation_integration/images/okta_config.png b/docs/DevOps_installation_integration/images/okta_config.png new file mode 100644 index 0000000000000000000000000000000000000000..a622d8929366927a6bd1f0fa5e2f53267ea47da1 GIT binary patch literal 13428 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 literal 0 HcmV?d00001 diff --git a/docs/DevOps_installation_integration/okta_config.md b/docs/DevOps_installation_integration/okta_config.md new file mode 100644 index 000000000..ee8511c3b --- /dev/null +++ b/docs/DevOps_installation_integration/okta_config.md @@ -0,0 +1,84 @@ +# Configuring Okta as an OpenID Provider +This guide provides steps to configure Okta as an OpenID Provider (alternative to Keycloak) for SpiffWorkflow. + +The setup involves creating an OpenID Connect (OIDC) application, configuring environment variables, and ensuring group information is passed through correctly. + +## **1. Setting Up OpenID Authentication with Okta** + +1. Follow the [Okta App Integration Wizard](https://help.okta.com/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm) to create an **OpenID Connect (OIDC) Web Application**. + - This step provides you with a **Client ID** and a **Client Secret** key. + +2. **Key Requirements**: + - Obtain the following details: + - OpenID Server URL + - Client ID + - Client Secret Key + +## **2. Configuring Environment Variables in SpiffWorkflow** + +Set the following environment variables on your SpiffWorkflow backend server to connect with your Okta instance: + +```bash +# OpenID Server URL +SPIFFWORKFLOW_BACKEND_OPEN_ID_SERVER_URL= + +# Client ID and Secret Key from Okta +SPIFFWORKFLOW_BACKEND_OPEN_ID_CLIENT_ID= +SPIFFWORKFLOW_BACKEND_OPEN_ID_CLIENT_SECRET_KEY= + +# OpenID Scopes (includes groups) +SPIFFWORKFLOW_BACKEND_OPENID_SCOPE="openid profile email groups" + +# Allow OpenID Provider to manage user groups +SPIFFWORKFLOW_BACKEND_OPEN_ID_IS_AUTHORITY_FOR_USER_GROUPS: true +``` + +## **3. Adding a Groups Claim for Authorization Server** + +To pass group information to SpiffWorkflow, configure the **Groups Claim** for your OpenID Connect client app in Okta. + +1. Go to **Admin Console > Applications > Applications**. + +2. Select the OpenID Connect client app you created. + +3. Navigate to the **Sign On** tab and click **Edit** under the OpenID Connect ID Token section. + +4. In the Group claim type section, you can select either **Filter** or **Expression**. For this example, leave **Filter** selected. +In the Group claims filter section, leave the default name groups (or add it if the box is empty), and then add the appropriate filter. For this example, select Matches regex and enter .* to return the user's groups. +For the **Group claims filter**: + - Leave the default name `groups` or enter it manually and then add the appropriate filter. + - For this example, Set the filter to `Matches regex` and use `.*` to return all user groups. + + See [Okta Expression Language Group Functions](https://developer.okta.com/docs/reference/okta-expression-language/#group-functions) for more information on expressions. + +5. Click **Save**. + +6. Click **Back to applications**. + +7. Use the **More** dropdown and select **Refresh Application Data** to apply the changes. + +📘 **Reference**: [Customize Tokens and Groups Claim](https://developer.okta.com/docs/guides/customize-tokens-groups-claim/main/). + +## **4. Passing Through Groups from Active Directory** + +If your organization integrates Active Directory (AD) with Okta, Use the following Okta documentation for guidance: + [Retrieve AD and Okta Groups in OIDC Claims](https://support.okta.com/help/s/article/Can-we-retrieve-both-Active-Directory-and-Okta-groups-in-OpenID-Connect-claims?language=en_US). + +Adjust the configuration to ensure group information is included in the OpenID Connect token passed to SpiffWorkflow. + +## **Example Configuration** + +For one of our users, the following setup was used to pass group information to SpiffWorkflow: + +![image](images/okta_config.png) + +- Environment variables included the OpenID details and group scope. + +- Groups were fetched from Active Directory and passed through to SpiffWorkflow using Okta's configuration tools. + +📘 For additional details, refer to Okta’s documentation or the SpiffWorkflow team for troubleshooting. + +🔗 **Helpful Links**: +- [Okta App Integration Wizard](https://help.okta.com/en-us/content/topics/apps/apps_app_integration_wizard_oidc.htm) +- [Groups Claim Documentation](https://developer.okta.com/docs/guides/customize-tokens-groups-claim/main/) +- [Active Directory Groups in Okta](https://support.okta.com/help/s/article/Can-we-retrieve-both-Active-Directory-and-Okta-groups-in-OpenID-Connect-claims?language=en_US). \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 25555c0ea..a81ba11a5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -73,6 +73,7 @@ DevOps_installation_integration/Secrets.md DevOps_installation_integration/redis_celery_broker.md DevOps_installation_integration/path_based_routing.md DevOps_installation_integration/process_model_management.md +DevOps_installation_integration/okta_config.md ``` ```{toctree} From 1aff5c0efe52a97f609a19f1b2c3824d761738f8 Mon Sep 17 00:00:00 2001 From: Usama Ahmad <96994784+usama9500@users.noreply.github.com> Date: Thu, 2 Jan 2025 10:15:03 +0500 Subject: [PATCH 34/34] Script task and sub process call activity example (#2202) * script task and sub process call activity example * fix update * fix update1 --- docs/Building_Diagrams/Script_Tasks.md | 34 +++++++ .../images/Call_Activity.png | Bin 0 -> 70130 bytes .../images/Call_Activity1.png | Bin 0 -> 133602 bytes .../images/Script_task_update.png | Bin 0 -> 103865 bytes docs/Building_Diagrams/images/sub_process.png | Bin 0 -> 135215 bytes .../Building_Diagrams/images/sub_process1.png | Bin 0 -> 88355 bytes .../sub-processes_and_call_activities.md | 89 ++++++++++++++++-- 7 files changed, 117 insertions(+), 6 deletions(-) create mode 100644 docs/Building_Diagrams/images/Call_Activity.png create mode 100644 docs/Building_Diagrams/images/Call_Activity1.png create mode 100644 docs/Building_Diagrams/images/Script_task_update.png create mode 100644 docs/Building_Diagrams/images/sub_process.png create mode 100644 docs/Building_Diagrams/images/sub_process1.png diff --git a/docs/Building_Diagrams/Script_Tasks.md b/docs/Building_Diagrams/Script_Tasks.md index ddeecab36..0bbd03f93 100644 --- a/docs/Building_Diagrams/Script_Tasks.md +++ b/docs/Building_Diagrams/Script_Tasks.md @@ -6,6 +6,40 @@ In SpiffArena, the scripting language used for writing scripts is Python, a wide Python offers a rich array of libraries, frameworks, and tools that facilitate script development, making it a popular choice for implementing custom logic and automation. +## **Script Task Properties** + ```{image} ./images/Script_task_update.png +:alt: Script Task +:width: 300px +:align: right +``` +1. **General** + - **Name**: Allows users to name the Script Task. The name should reflect the task's purpose for easy identification. + - **ID**: Automatically generated unique identifier for the Script Task within the workflow. This ID can be used for referencing in code or debugging. + +2. **Documentation** + - **Element Documentation**: A free-text field to add notes or explanations about the purpose and function of this task. This is helpful for maintaining clear documentation within the workflow for team collaboration or future updates. + +3. **Script** + - **Script Field**: A text area for entering the code to be executed. This script should be written in Python, adhering to the rules and libraries supported by SpiffWorkflow. + - Example: + ```python + result = context.get('input_variable', 0) * 2 + context['output_variable'] = result + ``` + - In the example above: + - **context.get** retrieves a process variable. + - **context['output_variable']** saves the result back to the workflow. + - **Launch Editor**: A button to open a more robust code editor for longer or more complex scripts. This improves readability and enables developers to write, format, and debug scripts more effectively. + +4. **Instructions** + - **Instructions Field**: Use this section to define task-specific guidance or additional notes visible during task execution. + - Example: *"Ensure the input variable `amount` is defined before running this task."* + - Markdown-supported formatting enables rich-text documentation. + +5. **Input/Output Management Section** + - **Inputs**: Define the process variables required for the script task to execute. For example, a variable `amount` could be an input for calculations. + - **Outputs**: Specify the variables the task will produce. These variables can be accessed in subsequent tasks in the workflow. + Let's explore an example of a Script Task in our basics section: 1. **Start Event and User Task - "Form"** diff --git a/docs/Building_Diagrams/images/Call_Activity.png b/docs/Building_Diagrams/images/Call_Activity.png new file mode 100644 index 0000000000000000000000000000000000000000..402565fecb446c8d5181dd887ff3eeff56800bf8 GIT binary patch literal 70130 zcmeFZWmJ`07dA{v7?glWN=hT$-JQ~*bR*qqgLJnv(%q%fDJhL~ch~;b#&gc|aGvw$ z8}FZYyyGwi?3=q*&A8?@=h`0>NmXSH(--0~BqA&&oPp(zm4PKFjZE+B?^uix zE+~xh1YLBqV;=RnsA%)sLRLie%nmJ#*2dF<44nf7_c z_4Eipe71f1bznNWbUu(HKEFevmPmd7=-{Pj`*&u$0AB=EUuF_GT?R&xuc#;}aPMU& zo4Vh5z{D3<(NkGmT|gjes;B<YaFbebbnIB+6AH7crYn2gQ59P(E#5oXq`I-W` zE;}o04}<@0F*RnusU+4>+@4Qv#A#Lh-hRA}Opkcs}Dr@5%amAHKclKIuzZ(OdeQS; zv}1uHPH(@0ochVWtI)@ksgy8m%KlzaqK>#J^fNrlSMb7Fc*R1GC52Q`ACVxRE!`K) zBH?j(Nw&$_X`lO4DYnz#35RU++6rn_9PATGF>d`k&;6Z9h#&e}8&Exkzi1XxydUhpkcyXh2e;YSj&KUj zrNwXn{=9{j369_Q8M40}I$oOadMJYtf~H_4I+p!A&s3794?p_Nr;1A6>r9OraL+-f z@$X87SG<47;)q%cqx+^d^_?OkD?-DY#^$H72tx+eKOZH-v%J6|Kz{cv@RukjVV~c@ z9K9X24hpef!ra|mr&ES0_$Ge|C74X#wDd#8=%+bkfss{8N1k)`T3kN=>)6D1rcON%sVV?QbS@m=^S+zs8jgG)JmL6_A?Cfp`<;gmA0A>S zV&go0|8SHhl7>K~I&C0tH%|0PT*S`|F>*ZfySX17lMh1=gJmi4BltQ?7G?Kw?C+nE zp5dKEkgENV4omM)*GbnX{F(8y;8g2Fs!_&wWv#Txbk#IR;kB&6VrHRnjktmyHN66z zLQmrwN`No4GJ~m23PyF%wE$O4T}j3diomHM#YaN*G7kg=@Xw8R9( z#5z$;AkSk|f=!N1fz40LPb*+Tw}Nr~o)htr(b3j=@45opz~kk|cUhy&H%F>7p5;po zIgTuvY?*aT2jq)s~o4&`xX6zDPSRexTc~LM4^0v69~x%Ahu; ztDd2q?;(FeArjT{GJ{DPZz~9ckDkwmFK!05LB8Rc7uFT>mCn_jtL!_X@L59sLM1{8 zE$=@U{^I=>_15WaND#8PEZOHD4CxQjL)s|Yl-lrv5jvpPq*wyxDJQImch*eK~ z)~DBJnW(_y@^Q^t-K*&b)koDVQwvikbtkT? zZgzY$e90bM0kA7ll~i9@8AV*+y2SxcIqbqqS0f&F)!= zD{8b&vrXE0pAs;O+H`RJ2qFmCx<28WARx+q%Yr%gu$U&5FZAIf91WaP-VR>L$HUxc z$+%3m?e$a#pOynxIFJGi?H4w~X@pG_vq8RO$ z-Y@NM#1gUM9i$VaQKYzHqoUqH`@u9H*FPj92Z;wg&7#1;#mDpDbawpQ|266E z1uhp|m%gKIN$31#t9pzXos_1%N$#NX_8``)*y^0>iRz*$0~-n#)?_Sw41uqP2hMwX zdwgfDmrwi>QYD!}=b{xOnPOL?tI1wTu0El|co6tAjrm6cIV8hNiZ~)5A}_pMB~AIU z@?P$%-0bfUUzJw#$x+es6v(`M(iwA@QJ1kJOB{Ab8qHJ?FOWrx*}TKRQN)DiLTEH$ zDOoM~$Xs)=6l7;a~{$5OwBbWt2PZSiz=ltCo`iTRFG4)8yj- zHaE-jvGalgJqewd`t32Djj6P$la2Jzs%7()g5HgbmYsLCo~@qd*H`xo@sF?GUn?CN zu87xts^joxoWs?jEoY#kzO4OFwKidr(3_diUPW%THnm>uw8Os1zE|ln$yce4oBMF- z;n7xXReEl$l8)k~_sU?By3D4`@fPWJ_|`i0eH!a=>uQh5?IPo^rFBbsOZTz0u<>d6 zw}0)d&1}?Ed8ZsVe)ZBn4m=j%oO4Od9jq>0Bsn%1ZNYs>VR4;+VFp{&AZ3t>{xyaFQHHl1=55edEXkTh)eDmBh)L$(bs~*=rGV;nj;r}4&&;C_ zL~A}|UM$znLp(<=YCBuARiEAl@n3|Vzt}Wvp*m6+Nr_A0X%zLsd!&7geNu6lFkUsf z<2RcUlpP!*Q?0zc_|#YUp}Zu_oHaJg;v<-xs?f6+zlM4Fs0W5Qn#uhj-&I&nGC1KB zLt;Oay!RsVHGKb=Oj_@5^LNRI+b9M+JT>zDjS&v#uMNT&qpyy!hUFBf{Cqlw??GZ3 zA?7WjBb|p$<36yVHHc<~Y(XCZc>QRsA!Q;b2SWpnkzo*EAHyJmBUtdu4~zfTu{i8g z82Fp>a4<0M%wZ7zxJMp*LVrTRFZ7w;pYY*tVUWOonBdnn74FZw5e8D>|2&5C2G?MO zR79ktz^96#y|J;4gPE7 zcwuDw(wM>3+79|27+zOyaA<_>Of3_Z(%U$Y{eH=x?-4b2Ftj(fb2PWLA%VX4#YFUdN+8K7kZXk(cIP8N>kL_8q67JgP)y+llSKS z|GDy?7XRx>jsHCPjG2Y`zaRatOMib<&B54S#MTB#?|_4?!C|GxOggS?E;q5s!Z z{GR8VvtXk6QF$5vS~Pyt2XZ{uU>ym}MHN)RCy+Ae53B(A^Yr&8^w^E&^Z_&m6NHfx z6;gGD-JC}99TuHz-a|rMQ)>~%3Qcnir9pivhJh{gQPtd^B<*kp0bxzj_T!tGheBa# z{suz&YyPM?zBz}ax(B`Y^hdj+8YYcT80s$iFWeL4C?n!#Uq_loNHNRY|LO|^hfMOn ze@alv$$WA0?qXpG!oVV+|LqSG9Kyg)^uM3IxoMYF5T^I;gR+0TNaEYZ{=aR3_I+_- z;mq{xV&D8@Z(vy~|F;j&*6NYb1rPkc(fv;cp%;-;OYZ-}$dF0q#C&1maS2SG{8Lv1 zVLn;^!-&BP8Ns0I=a}yPV^`qJtlWVMS)VCpbMYXt$OZIRCh$V9D(j{j=eZ8P$(mfbcZ z{~E?y#{FMkcH2Y#Kj6!7t>I%B^`q7D1foUWJ*dl3MWL0BW6sQc`DPzQMwaF_{O}{k zo;zoeI@5GRMnxBNP)ff~$SyqNzCnl^)lrpp@6munJcs4{q;Q7#ZRalO2wNzCm6VA6 zwi-BpTsDJg_xr}}!MY4IVLM`REFQJIhl&)lxJD>{YfcmkH1{J%Qz;gpAqORqQMcO0 z&54Tk$fpX)Q{ilu&vBy|j?)M@?G%HF1%AcFam!g~)|(|iq|s<*`Gj%%Ww0(Nc2{eK z$EmE_xB$1LvAchf_Zn}waEGy89S|DKdEs^QvcuJJiD-I{*=GlplQvN&>U7bQwoTK| zk{E9(0u0t;g%q^umpfyffF=3&Ia+UwvD`{FV9{|MQ~RHzNSXK4OV<{=FTIw zU|?qflsQ|*9v)V*{Y=R2Sj=j5Dyuk#`@ScA#xI)hLf3w=V<*{)R_)7E+Xk+ogQWi% z2r?K*uyg9e&tw3QidkcSY=Sx598r&E(0%bRfy0)RS~(+hyli$qXSCoVvYy|*dWDDV zZ{3$-Y(6p_tb(OLrU&qp!J^3Sr{B@em^OFgPfh+aqXvme%b33XuXp=B8d>~rBeKwP zI2|9#0s%`jzMDtO6sP>eyk3`SmbEe43F_ClAAR9fX)0NHgB2==e<{>JrkJ`!|mnX~8A23@3UP@&B zt^X*vKr((k&kz;73nb%*GkOoY1FTz>){{%)l=O@1QF-E8O}P%O`(oi-4koyre;;fq0vK%maaJV< zgCNXS+kNu5v15LZlp?%&YCWkM5yZP;XLc06-ZTC{KskNjTbZa-& zbB8izXeS#XZFCpk&^$7w%A&)$D{8T5IuPQ6wYkMG4|c9=_XHx8B6(K+8h5>nFYb1}_qLkhu8_0)id<4)ON~02 z&BqEqIqn=wD{>*HB1XmZ+zONZ5boMt#Tn3Gk{TdX!}p5e3w!b~>8f5Kn~qv(QuI&P zcrlzcoZy6CU%4kNrOmh<0}~=M#*pOI*FS~`%pQ%n`>m-Y;RM6D(;lVsP5ovb*q`te zU&G(&zP>{8WH@Tk_m0A959toMaF!aL)4Vvg&eR@@0q;tIzAL?r`PP&O&H&wKzQ^Y_8y^IJ{nWScccIN zu!-(35~x!t=y=d0_DM+TcITOZ2V)7skNJWKcm^#+jjQfR!dM?0y1#K7a|uAW8{NVl zLzQFV&QHIZoM%sOJ45s~um@%y*WDU^vsq{O(L=;r z!hviEX8&9Dt6VKb&>rHOktW%3zq6G#oK=J0^QU z2W0aR2ZP$(k1(+1sm13p)I3a(DGk(H4GK1MfEK+DNZFufuKa#6yn~XV;@`Y(5L7`H z+A=MKKzle3pF^09k(N{NW&TDNol-U*W!vgyh(lGf64u#(!Q$S>+bH0530UG6Q`M^U zPeFVBU)S}sHk&UU45@EvHx%nsUmx}c4ntkj5BBDNh3a3S`d6s_wN(GFSgP{Ap(Eq5 zLOzpUyl(a~qxqUw-5r@SNxW{--q&tT)VhDbQXMVjkGFl~>ndPBe@!nG5{;tsEjvtN1U3BQS?P093xu3 zZa$P1wmw1>HdW*BMlLA_`Ih%Ymxj7)WlN>!98gOxLaTV^Rs(-Pi7_ZEU_GSB^iLQ6 zeG+ib|Hm^_-DHq0pA_B`$5Pjn8i{^OK5n?}YFL1RIDBzC0}J&bxrgi1`jy@XV&p7} zF8{MA?_t2L7y}(GIrGK8$d7 zk#w3mHZ@DpkMQ&x+||6#*G##bH>(%xsER-+%O@W1bA2Xpyg5!wC7&3oQ{y1Lty8nO zoM6koCZEVjo!%Z4W8D3`fCXS!m#b$vwZ`&TTHux}ESrIE;){ABh>5GW%|LQ9g-hBJW1j^u|zoM~ox9L?CCz=MNMhhnA{9GHYE!Tde2mUYpvW@$GXF_2tRXXaiaz=+2v-zN_!ka?f zI?6ZO^o4~2lhRd%j0tPFjCzr{-1X$zm7Wxx;S?-GU6IuE=@OrIbu1|tzN|Ll8-* z0c_wCI)v-)9KnQ)vfSb{`%UQ6)X{aX@kwEG-@$W z{6Q++*?qL_lfH&=w_52sukNgJ3u{E7)X+-)7qqeRfV$t0p z(JnVLbar?CYTGz&VSReYa*@a8_!AjR@Icl8;cw&1K)|%$iV208NahoWwd_K?TR2<) zf^0QaEjy-GW2G;t4AZ`s+j&YfqCZP6VT-P3CBe4AI%{J?neV&$_P2K-v4>cc^6YC{ z0(t5_R@SqPL)TqYaQrB{$fo`~BMvTKiTEx$V)VV~6W9ww%2My+vtds|#!EBr5}NlV za?yhMAz^g3Vq|QZk{Xtm$&!s@aG7?>Ue(s2Rrgk;c}{0bgi?XKNC8)gaGMJgG(#m{ zoM3zsV#lC%Wq7hVuFgMQEN;KtgF!1UT&Ou&?$x3*7T+#hB!FnK&s})Flgw{ed5>T~ z9k`UlRLkdHR~OSRvk8qq5814j-Vw20y`G%LZ`G2dB>kPDPE?G~B|nFp zqDqd|_db)eUwnU-#*<`zWx6iCG1{N|EbO$)Yj2(+j@hX;r><{tOy7s4+o<0=CJ3KL zS~`m6MI#VleGt=~r7g{uuUBed>CTp(sYp;CCCC8Qg}yZq7yBr&I_J9UCBishrJpR( z@&ZeBFSMM_88IAd;>9y7)P>P(Tce`qH<*Ltna3=mDSkrm3a%=q!3~oMEihJ9T zZG6%=60Le1Yl=@}r>wj6_oqWE@mKS(JcPH!3Gn5(lB*T^TU6^>6_x^9IRjmgCjN4L z(o}ukY<+|53$8%!RsPf zYPxLxG(MLaVkCXfeYnLjaJU2vypKdu4<{T7=G+6;qF=28akFa z_gM@wiEf^qo`{)-+HQC>Ri>&s`B=`*Dd{@n1JmUg-%gdR&gxgTk|9L88Nz4#%H?Li z23pcG{ubefhgvqh_$K~w{k#4|l_gmS-*c5=Iecb|Lsuo+%E*;uOUkS!X5+KV1Hwgo zr<0$leqKx07c!k~atX#gv3tB?Es zVmOCVg;IfO=q%tC{YirU7!IZ8cqrt>@#>5=|CLobiq%>In|Q-@d@c2Y8kS-iyczc? zo8v07X5&1(k^&7Lj8_4d=V@N}6A||Vz9(b(=a0)2W?}b_#+4p|Yhf6Jza3Y@K0LMhc zY)hkOt0a%%;jRH{K2Q%{x~2brxDireK(vXnvPAs@B17MWa;8o8bhoMH-|P`O23Ta$ zw76XI+mPy}_r6Ww;$@T}*Z)95K^VXH=ztr-=#{0oMg0EJpG#~&R230)|BW%aX;bty z;HTc3nb3T=Jw-Q6>s%2)TRuw~4{rO%8=Of(3hb$vD2s~JKlBII2g>!*w%h+ruWtUu zcml#1()c)O(pz-y?^{o40bcHLi;0-;5q=K4+(BzjCdC|tsF zG!)>R^H`Oy5&f}T+Tj#3l-85w(x<{1|FJ>Hnm|LIOgcU!xKSU!42){$t@v`U#(>D0 zrgF#C0S0r_J&0uz(~EGc$wrZxM3!%|T(9OcB55J1hwI~V6XoW3<)v(9Kffak;4rvy zm~D_4{zvyupd5pOwj$>5Q^LY?muCmcX+~UY`&}|pM1mgsxu)a}S+dM7+jNE!F!bc? zPf-7|Ij<9e6$-UvMh${mp*b8s0m!9_a+Wj&9*a?Eiq8zAXsp~+1C7u1QA{V5*ZEXsU8~ZEKcrRI&|0e#`3wXP@^=ZugfB#f?4g!P+B-!F)|a6{0In z!^2s#0bCH4HRS{GYH>i)>W=PRYA5z#-crujz>tcdlshE- zSlF*1a7EW1Oc>*NvKU1$Ue+#|PPOVd>(eAxYTQlfGMl7b4Nw1^lJYOB`2v_qdaH!! zk2iK5K|6IhT|x30b`H1WYN*v@rHFEdBtvIJcBs1EHhFIX$6mg79jfCIaNWnmoKHEX z9V1o+qaKttOr43j{d%*q1j16~Mqy*O)R%|=>DHTa@eMXe5RccN$&8o3O3K$Pd#<-W zrA8S)R-zxV#Vt&!} zk%9#&$RCkE7f61`LHY$CvFwky>|>{1wQnUm4rTR50sz>()Ey%?$#-do&EH-pBeGSjUljT-{E z3_8UCI$M7t;A)fAu2?54Ykb+-t&!qc+NbPNpjp(!-zH0|`6Y2APhDVRx*Jp*@MPqJr%|aVM#!4*& zl*VX4Xm&KF-%f}9p2c|dh=|XmK2wj}Ao|mmLUDKAc2C)GlHF+8C+%2!Gt0UMwVsA; z^2LCRKwBu-NNqS`b|1LYDic{ToMe=hT&suA;r$|tUcK|nfuolU;*e}@$XGrbCC#bX zgvhj$S%uY6eOy+I@qbD--`|7%5M-e&^V=@KF{Z+soy52`BlK@hIn9YF*#1cS6z6!l zi;?F8X&L31wW^4S?Z>9&XA*kkgd2HQNQA~Zi%X}mDOKfpc3~1<8`vdV2CuA=C3}+b z1D1pE5sgkpBZ77QS+I~)5dC#TkI>&L(7#X)&M)z#SnuAF#p{H_)826yp z=`RbFV7Y`sBt$1~Zb3G;eO8IuRegV5y#{_Kj>M6AH_QGnTioTY+qF%6BGXEyUHJhq z?gQ3o@X_n?%sd~?$|sl7Lj<19rW8&#BMhfeD%)PE`t>SPp5i!hFZ>5x{Gx3pOZ?>( z@TB4f$RMZrdcS7TZ>(oF-bZNH0{mG9QI!srcGKBc7Tsw=3Z!AO#ETPRbf=iuoVui8 z!<0$mwjk<#yOAzR-QM^LxfGLwm0q@4HFSB$cUK_(W}4lSAk9`tAP?bH9*J-nw?~WT z?>Fg7oR4Fd=PS&G)7k%)Y`q__evog|@K(8C;+t}z4xYkezEZ0-RIc;(l>M#I-j@Pj zbBSrUCNj&YK-BNW2xthkGr7=swl8ta6o6f5VJKoS&|$nf62{@iek|1@y+Ts2_c1 z>qRhiY%)BV(N;Vvae9}-Q)kq6*tx&^O|54in3rg!^tR5Glmay``)P7CepR_U4_3+K z;(0BXCt;}x6$8)1VF(5Dbk2nEj?V2Orv{bM2wUxoohNhj#R}4pkzQf6^ z$M3yin?EiEsv2zCDj;22Pn4INCJ3g~ddN}AJ!T9U&EIx_q1RZFi(@uUge}+OtCJe$ z&S^Kz>>Ii-3waeHa2=~!sH}^+*w3gG5bXSBWZ}zTjuQOZ&ypn7d=0T$Cl4_YO&a#I zr!Y32magK`4Isq_y!oq0P4E=;^-izT@V(#ec@A||f{n*7B=3 zsjUVt{vw0XE8!0Pa4O|wT5m!me|n(znKJ6d!-mnxYHQvdjuMAS`r9U1_wo4$5sWrt z5PzaL5$n_vm#}?_IL{GDU}w}g!e?bCTxj~a7L`**=L2t6>nRpEy@Rqo9;a9D`r~lN z7-<&svEUG+?0|6!)2q@Xwfqzyw0gPQyG^emaFUPO)!wbbmVf>x9&3>4y(T>TtDt5l zwl=rjve#%jMt6yZt>-T3rlULIp`VH6?q66$^ew<59cHE$H)qfhU{4!RwDl3k+ zr%kUd0lTSoe*JN@sOj2dl+*TFI6~ZIy-5FQDm?r7R_M7rOT%WVF)abb#cDd+awd#> zqx<3Dv;JA%$UdX&ZrgwHVmdx-Lgw`6l1y2RNn{1*AE*WJVT#7kKTHsJtlN;i2o zWY|oL@BcJpTdMda!b>qiIH|69Wdo|TbQ*t_3mv_2E;CJ@Mw-|+4iqhFCz{`Yrx*M9 zFzeez)vTKWrEDxY2-sQ9qG>dRlXLaef%`TrE!8JQZ-6jel?LQ^rLKK9Y?o8Lde@7g zI|J(CVuatI{%qazyi-^2E{4zUNvT_V%z9ONv@@%1A)rS)>OGZq;+GYpX3G&Z<8|jf zD*Ad+7QGX(Exc-z!*2#8<^C76nrDV>-Hl!XkE?1G1VCY6vKpfB0M$hr`XOtm&@jMjiptW|G}vG-tttWp@7xv+%Zibq2*6Bf=q(02_*^g8gl7x z%qI+D+MNNosDkx+y*p?`l$HXT6g3VjsH&BVx7ZsFP$9H+XIJAP)VPq8BEsPbCII%A zPODth`(i7!+-zo;cOGxNc9`hDV(VL&-VYtib*JGhT!`<^ndp`lht7V%tT)xc3Vmc+ z>qp506FCB}lxe$VqyO|29C3iu<<{F%joZa+zrg{?6d(!Sc-&PH_zeyIoc`bD4}zm1r+`(Jn9oF4Qy8EuU27+t-+UuwU! z{^-%C6zive0)PK!9Vn=sKHUj+My^n{yF{zNNv}sH2~`Cn2$xPiB1I?nd+|-8E5WvL ztK;g!L`8=6a%L`q)iaw+Vc&p!Qje4wa#Phf45 zgg_d65@>~S14vK|Ex(e9_Qa5c^BWt{HDwu|Ha!mIa-hUxcJ<{w){yhSOhG;+FSee1 zfX8~OHeO*FVp{WfggA^^h0^_x+GkMl?8ke(QRT>}TdO0V#7`eZqZSF`WXXxHl4Ei( zTPft5`9K?VKzVQP(tXiAbjh4%|2Kh|`b|Q~i%_gF6U)ia5@Mm(=&326$V&~;xsb4_ z+j=gQ#9cwfC{C(9H&J0Zc(!CyYSOEPCJJJ@Oxu*??|y|vw!rg$9Ak&*NcO-Vuh$e2L5gg(isVF;24ff>d8E=r0pMQ{cusCq|Ni<}>g886}FO6T2!hNRLeVMJk zxDX<+_t5>UR19$GFZxfa#oZ4#$%qTjB@1;LF)hO*bCo}O!!J}nE0S3o%zP>L?Ry7C zwcRg&UfrtCo3lR6s@%3Sy!)N;XkStd{S{Ulxuy{B zhD@=*tiP5r*teu2e#eU z2{chId3p8-`*O3aUv4*l)G$PPy4LAskE!q?s@-J>v{WCN#7-A%(A0*5dqQWY)$nBF zni87L*T@hA41k$dM7&@lsp?eqzx1J}#=0u!ba^JT8nV9p=IIYt< z?-Oj=@AnF!Ec>CZ<&Sq8LqoZposKc)_NN^fN0|Pe;iO_8SEbH~zQPeeM5_0ma>F4b zhyvzZ@KGlMAg44+=Hb^y8>%$jzNqFx^MDC;t@E^UQD4{=cYl$Ev+HVgMy%MFgXpBw zUHkd?`BoM4$(GB~=D5SNb1|9BbCJAsZd@X6BLmNI76CYf$E;SQkc(M%6_uF|JlOm4 z*cgJ%YH*DN5D=U{$(BzJ$E5h!t+I{?i+2q{ge_4sn>yt%I#^}|5Mk4P{(I*mDVuKh z1OfqP-nPShi}Pn})5?$`h(M z$mE%Vv)=H=zrIprA%p!dF`W@@?b-xaw6AJV(ZKhf#4Vjw7G%1WQ3e|a6J3dbY(C{( zT>7vw)4mVeoX^pyRc1)h1a#DZIT{U1W(=cFz39j1uu04H3?qGG+-iT6#eP%Q<0pzC z*|DeJr0ei=Hw@$uEzEz^=NffKvnh3%6d6q(6EZuk-;3k74(I#O&jgG)@tseS*uV|h zf^K>bm5{(mF)9}6k&QPRW>ZTRB~OENBSeo9U46~5iRyeSfzf4~9GfOGkTx!n-$A_6 z>P))vXT7GkVu-`$%t63#zETp5R^rPrwuNrSrf8F1?KtUK&x77l+nwMJxYSB$poa;v z)29ONJ+7dp!O*|&zQ06+VF*8OOm%E3e-gu{9mVJN#lTx7kZ|8vnkvZ-o}Bq0QN zvqe8?@J$-Cr)S(X8-+Z4vv@ZdXXIo-&vr;r<9XYZ9KZYUd*6riRkIH|_psWR_A|Tf z_lK!F9Zsh00eLcX|FxcY1jP*?TD@B3 zGoxP{x!9LPOS1GNA_EKfKgZ*IJXnNqJ)m;XO+`Qw{5*Eo4wJB^r%^`ARqSvi;OuNt@VPv!b8yi$T7GJQ02;8&;)XPRj*&YFXR}G+>qL&#G z&0=tUSh2BG1Fx{vnvBat+GB>(6Q?sJf1L&p5$EerKqFY#^6Gsf_eB)WDgpUaGTXbU zU|$A6FMU_GJqtcbwfBu$nOz#DjCUHnm<`(q@OVs&luJrxV4(L0LttN0-~$8+Ezx>1 zAo&mj0GdQ9re_MN3tI9Dv*qSx^=G4#gAJ3kdc+MwNv*+z972G_cv9oAxB7--NHSq% z>YCFpxcoS~5j5)fyHUsxjc=vFHP8C}3F?T#&>y3hz>Rj6O`sUIZ(}^cFs?ADx0mvIH z?=1Uadcfz8m^evHHGol1t>}b+E@=e2a?P>4*JL@Cyv%SQ$oDmOcCNv*6)9Y&!AaA_ z)mePHGnrcC4oe|~;OZ)8D(XsJDq8j=C|VX&0+Fl@W~rrj_H-lAu^mxi3tB2RCG(z} zeG(mg>EwrFXX8Tvf!~tx1_VBI_rkU{zVutc`ac$@#JJeFTYbN!3vFrE2NE?AGN$ZT zB3(k^AUj#VB%@jHnyb^`E=L3Q&-Jrg%*FP{bUXwvOcaz@elA!5d^B!iJ7mV| zLMAV|U+UUpA2GvKM30c6?&Q({&TPEYm<6_!b=??_TQQna&f-XXS0$XnfwHVHFovO1 zj>ayU*_Z}P5qR&Unt%pRuzQFTc3K=EquB^k6?WygeNQ0gr%^BrTpWSx)+pa$d&MCuUZS-utVD`Btt&vCy9m_q)0D#WNKblO* z74=5YzLiDgVgnqm1oXj)2;yXV9dHLNVsAklF@IGem>`T^-<#rGz8vHV5~^(0dlUf3 ztTO4G*XWlz^7rdmM}&_)pKV&FPm+l#U}8iYu>EC(jP|>)yjoFOz@iERt3x6Bffc!0 zwb>1Bf!D7x&~tBIERNkP`to@4Nv`sl(0HZSyJ7eItjImGQ#Q9Q*3JZ~kj<$I?c*H% zG?{3+CrSG2W3MJb2@cI_T&3-7h;p$3EQ|Vy2iSd= zaB*CBgDll6gW~#925@gATBJ!V7ZwhgTonvTI8*YS?_I>-+D|2yY{FnOS!upTeU&K_ zlc{?VJXo+ndxL@xPsI-zJA5wpvK`%)C?u2{f}vF)z^M`ponc=89?h=p-Ui!nOPOhk zHG>Z!&vLFkz&SnB4A`{MC$feh8R1VgHw9_qy;ewK7Xg6&VKKkVyL(=8&f7mf@AuH* zv6!ICh_&}6^3l4J2e`*IYqBMSIt!<&ix-_ywC{}i5;X_E#2~K{??Vd^M~K`wT^}tb zu0q>h@JZuXcYnR;2sgUYaoaYfTvp<@^vSe~Kn*a1$79)E% z2xlWYG0oFx@dj3sg3j%(5n6khkJ^PH`ZaXWN|%~%x;uA)OQ1MfAFcT@Qd%zqwQlV` zG3;2a!hpsCImo+kG@7KL8o=y4T0uDkXqjQM(mF;xZTgu>jP=&U5wqbaf%(unSFUDR zE#LT_+w+Dj?;mLtS+nJZy4?Ccj^D!O&trBPFJ|h;9d=W%OL~lztN&2vili;~Rvcar zVO{c~OS_6B(Q2$-krre)A#A&CpQLslkJgP*>rk=47)f=fcDEL|v#m}c2=D&I4)e?J zPu&dXt5b^tvB^LALM?j=YeBQtja>sO{Dyl<l24F0Y4-c6=6jmpOeswlxGSQI)T%`#T{Qb#1R3Kjv%Gh*1QE!*3SwC zImASEiEv~4e~o>Gj6AhSF+Co(nbr$C-kNy7U0g5H-ggsPYEq9h`t$#=qTt6s4*sp^ z61od-@27Mg;+18Xd|Fqouvp^sK@J2t(1mFCL>0)%$k=ShJDOsC&!6Z%WiPp6?%w!G z23v-YpsEEH?8d_plr0q|DS>KAAJ*z?gn`Zd^+3ZbliqX*NGPp(p=7P2Ifcu%j(;xjK_b?-uZz%XQ-&8iBl3Jt*=n4(i2F_BS#y^F*szyF?1I!} zE$8+pu1iz}Ao;Kfu@G{~WX;googd;+D=+e!Pi93uqgMFE$naV z+<=lcj_FB??)iHZCzZ}#m!r1*4PX2X+!dcOw%Y-;Nu5e`GVGPTE~vG?$dR|VxK06U zN^Uu71%X_hvo_eFMp4FnOk9I({(?Hs1e@B<>n_trP_Yb#y!iQD6$KVy9$Eo}bT0w} z84-2`CFlTwI~KOwX4<1OaeRnR6k&k(AqLw#6p1{jYCEBDH5p4HiKlO&f@}FLypXxV zxG4*+Y#)UB25T zL*FNm42;4QEu%OU1$#^Tu8Iy$i4)nvY2hHh5g4SC2}ez^NyiLC(rNly#~{S${2_21 z8bPJdHS43V=tZX&kuZ`zlRK0V28!(C8u1)fx+u;LRwBN>xtqryJ0#Zo@fE@!#qeR( zh&6V5X^FhAl=~o8RXTNFoDDc;$<2En(3Kf=p!;O+ebCk##fkZ=w+w7qNYc$USFhj* zpN?hpP@x0Ky!sv$}b8*%}=)KW% zSboi@oF`3v3qA&8qBh9ip`eNYVu&g>`tVA87MQ9IP;A&sXzEw!Rj9+YluKnPb9L^t zR9Lr->Ug~P4s2KkRfqGaN#8-id>DvA=~MD`sX!jE_Lu)kr$d!$-f=On-o~>7_kH}n z(0g#C05ZKw7Q_;~i~KCk730Paczm|M$~OQjERFShh3)=W;p&P|EVz>2wxfjh4P+Qv z6uYTu+cmjUZ%WiH8}xXrNMAv#%Hqk%R0QL*=k46+@1dn*ccjb|PWQWumKxmdLfI!2 zEwQdBda_UW9FZX5O$W+S7G9(L1|EP+Gm)f${D#2SGL&24E%%bg*~s3T$n1U)Gys@V ze`QaA$&v&YVg5IOU5G}V!^ffQOs;?KgL{ezBe4JJIh=Sf=~$=VTQr0~{R%5}Tb7>wEHd5HMxH zSYJvZnezbv7Zye)k)UmwUNk?dZ5u_EoI}C(MLnX__-e;<4{5}9qSgt2@tYcPC)fs_ zRwQmQnnMXCslnEy*4XyfbEsfNUM36roJ^mz&Y3Bc<1XRP0_|r5ImuUlXHan$)9t;p5u~mr9_T-`x#_j`qbwv}uR<90VTWyP zzH7-4ZK-3YC$(O^hW`P|(d)h|#&(FJZNDOI(@m6Uv9)69c7#TxTX&>-W$6<+Cw4T% zpq8f^y^q}`)rr|k;cXmUAgm@fv(Yfha^Ln`+%O~%`@utb6==l-XZrt9^_Edtc5N3fDJ6}7G}7JO(%s$N zAl)V1DBa!N(jeX4B@H*-4g2DGzrDxU{_~HH`&xCLbIp0Im@lOaz>FLyD9!VOi{WOq zoRI*`{)8@QJ3=34#19C35v#fw(f|EUgkLliWTqEmpNN6QCURz;0|D&bnaaAdc&b>k zEu^YtDyWd4wRgvt*pv`ANzu&z$~abOg$M_rviGQ+9WB$&4&s|vDqqM~YPQ37ak~uU z(8;o;PH6&sARlm#*>wf)uOM;m%@j^K;Fj{MzS2I)zYmB&*U@jg9>5Ya+y{9d645Be>-W^RAzZLLk)AboV01g_{_kci0ty>Df zuYfdM`Bc{axSuYYhE5?DapuL`q<ck{srZlm_j{oE^8I8VAH#(6toGj| zUao_Hn4JQZQ+4SFA>dw&4pd7Fgoaa?gfrZ7UV${% zEY>l;+gjDy75Bo|SEL5OkVSQj?$`ztXtCLRZfa-kJ4l1ft?sQ=Nw?J=-b3_NuCG8M zOO>$ZU~j_P1oduW9T3Vdb|=LU*Y+DrK>+{5D~8C5q!L zbhYAuiHZ)OGBCf!EgjRVmK7{}0QR}*tUhy;59I|IsDKpO4%q*C><)z%qonko=Ij!G zK257tziE7!)YgBk%j@BD|9#0RI8UI~t0);uW1B}WnGUF^HKs^I2>eK-02axjpS(#J zv>Jj%a;YVHPrql|i7cW(PG<9=qvOu2XH&VoO1E2S%qzS@?wHMMhw!0>$I)g%x^{~ZS8+zPa*Nwvm$SorNT!Z%=P zzQ=!FVGoXG%?n)8@0cZD!|nl7fsE(t!PVX z#C5dNSWgPTmI^!yR*duXQ}Q=|R6YB5+%C}O1^Rj2pT^Ur3pha?0YWoLUoI zYaqtNHdqil=exO@n72I+_uzs^G9zzLT{U8l7^<4jpRXL~w0uNWhRrD2bOV_YMxl zdp<0kHEV?s?X-4+#iPb8fhUSVzh8>gOHBxOpl5L(Pj%?*X z)Q#4q`FHBw-RgO&bD8$1W1u@oYLy;QvX^I{yY~M{D3yx5&a6Q$(*)0`6xl@QGNlP1{%>K=rnMXYubW^B{_Yn6pOxyPJJ%G$&+mEjhqUyt-2-8V zZZ!~@&j=qlY9&VorFyjm-?s-)ARtJ@Vq8xs)7Y&|GnFZl?Qoy&@DC}?Z{jtY6FKHa z(QgI!?ZIp(k-aMQI-b)bDSWoBoYz080U?$D9Fm*7PkA!>u(IC95t|;Q&ONU%NPX!l z`q)QTBCpk!^-24A68Z%o1V((Qm^otNklN+{*1R!`V=pTQ%%n~B4}`pB@bp6=Dg2=6 zce@k8iS|c?O2F{5^f^o3#XJ?xaTz_!dU?S!M@d!QUs`_AlDlKBU+#C#Bv7NI=cFTz zh~hgNNF+LQ>*dw@TmYk$C)@ zJg$@XpGz#TOrEd{M~w*O0kG5!yjV1j^-n#(ZhTi!ZM%w90h%Yg_g)mZIP%Z(#G7T2 zjXm^F%kl-(ITl@*Dd+CXzrn|ww<5Po#f6ah)$KFu1=D^=g#1RJhcmBhzS*CAd9o+( zFMMw>ZBe^~oe+0T#RBsrpe^lb*veFXH4)pL!<{Gb>O{gSIVJqp{P0%kC2Ou*WZciN zP+I=toRGfq`u|vT08o{uh+_`L4&WdjN_R4o7)fY$FKV$YklzfbvzSJc2b_FX#6F() z7vAQiKv}MR=;If((~GPg37-}2>n!2+r7hgjZ^G4izYZa~-`na(LWla;SFEo64F`P{Weeo6E+J@H@{{Bu~di(`&a*)!Xsq zJ>OFM_(6Lp@~J&ujb@JJM^pcy@N)G#Kh$m%jbwLx>4UrGEG2BmpKj1};aFERheeqJ0G3U`jPiaEbq? z_HnX3=K(jOK=jH%4Hy`iqR0SdQ>npJ@>;W((kk#9k3e51a~<;0U;&E(REs@(Fd<&P>84Y2xG2V9xiX{U?%iq_4fu6PI`cU9Db&DZle+{1 zUf_^&##5L?397V~71ewk<}1DIug#VhDziUAd_4Q1&&feJ1N;B=2r=W7RK>wc7h|sQ z$wX=Rg3mx+GG=0bKC@~uP>ecmR`&L5{xk9Mbbd8(`KVUUu<*PB9P}w*sYq+>T}HLJ z)1#^-8k$xr)#TM3cV#!n0ulhMONQN6>-;cu)HUk3-Z2rRMC9j-J{FNB#@9(1t;X>`|KYFVRS*S z+xbP4v(@vow_a!cAJZ`F3~ND``8$X?M|;jW3J1A<7}Fj|gm0}jD}N^11px~n2#W!T zQX1hpUsR607K*}5-9!SjIek~6$!AdRcHml!*>lcXsdys3jBsT|Nda0a@G%hGkI^7}s{?RLiGXDDwp*c&?AT`Y}&foN?`JK5+rPEmtJ%s*=rnLPIMfC*mt zj@gu^lwU>elO6P~2~^&O(&;e?UTZ9I$IEdw&+~k(UkN|lQUNuRxJvNukQrK?|0#DC{a z%9j}4?A^El+8YU8?N_pSR(*n16}JrZEtLRpO^-0wm zVmyKa6}PBVKSHnjGba`K^ZT2w^e^Ytth3olKB*wTKx>sv1M|tZd(K?nHHBCAeGS*{ zZuQFFg(IncqaS`&u_)}*lp2tOp*UwGVDBHuf18f|T^3nh z62Fb#OxQE$62*P^n&SI;$T!GoU~IYQGvM22x2nV5xdiUwu%=>9%MrZi-^b63w128q zu5w*XyUfO34srnh+zu!r4~TeZ*sio2oNjasCTI)%PD=@NdY2}&2)CSU1+GSq*-<(K zj!T}u@>Rti*x}8^Di*~~AMQ1FEvhUQ0B3`gKmQa2+1DU%=YN0SLaPNfz0RM)ZBf*| zB+#D9d7g3~`Zi%h&={5JVj z7bef&E@WCCJFH*2>Ii#-vv&BdD>fkAtOTB+%Q6)6EH-7jz|4YB$g8}pv z&8Qmv_|0P=I^E(3Y2@_k__nl7ocHvoJhvD{QOpMGRg#cW(criHT=KtE`m!@^YAbCq z{A#rhwTgFsbgllw!GIEvV+Z_{7+cuekBvq-_KvHpSRXUzxbpq=h^Uo7-G0%vVEQ%w z$getfv1%u!(|C|R-uEWua$otp*9YI(&zk!@`<~}Hra@mP=Q&|om{iY*bp|S*GAj?nB$n|b>2R=PA1D4KZY;|CqBybXTWaJ(hxm&T2i#5mm{$LDVKCP-qrPXH7s zIr}%W;9ms>Q3hljYC~7ymk~jBQewe+^T}WCHjxwpjho%xyP?r6><)3TLYxI(QL1>) z(){l2JYwr=gsQHcAur8fglqoETUiOM8_M7YA?7jgCWtioExZ+DO|jpJ>`tp+d`=9) zpjwUk-D&Yw1lmv+zAf8|vx4ZZ5Hw88ZZ-0~5Uc&1M+JsRG%=!T-8b}7HgAonAl}Hs z-Y~59uZIrtn7gD*#vh`ldI34y*3B@8>r< zf5ZyY4Q~BDd+q0N_{B=z;H?Sddsu_YG~E{!C7RS(3W~K(6fdi9KK2_B;c+I*Plv=2 zjGQ@#Y~;R<-SE}IE1Y+&z$C?1(LS-lh=Fs?u|}fo+y+fT;1u70S&lvS^)G&r1gCJp zXzUpp(l9B_S29%mjUfl76&fR{6w{FAuCIY?d|gV=Bk5FtA&qdXWt64H7zbmj@tr74d{UXIhKeA2M^| zFh_^{t2%S+RZKc(xdr{r+^?HORk{FrNf~=7F;$c3HGdn+MbyuFy(rMshUp&5e?CkZ zqn|pg2#ggE?H@--6XcKwoo!U%x`KKiCnU-zhb8h9e_4gx!DfH>yi{gpcy<^moY9ww zQ@-wRzz^Gm-1!Vf!&XF`Z2)O8gg)cmXtkK^$TYBX0e#9A>x0c89wmVuZZL=JgO9+h9};QYTVMF(1-6>f?Z7;Lbx7m4 z)*5{>n2J|GHxD7KZ-D?iE&B6XfV{}MprIy;M33^FBc-u&i&hX%-LvAq&7*>DG z;LSbY?!^(J{8P0=hRvsVI_t%%=FcWt@O18Lsy_E-YW%3}W4j}X?q$SOU(t(RG? z{2YPkpl3w&nphN+1SV2)vrlvNmlNEQrWqrWC=FtYF$F>X&QH7y-;= z9LB&>-T+}Sr(G{maD;FE0Cw{cL^Pl>_HY-!FuwU-_EU|%>|iip8**mUmOHkNWBt=B zS36x3L$>0*KBta*6evlYNqx2AG&uDG7RfF0X05XNAQ$c?S7;-vQFu%p6@=3}>*k_6 z@5HeVp7iOQOEex#1D0I24t)^C70?QYlT8)Wlvh0=p02iyZuishHp1FbU66Wa@J0MY zLr*&t|%94C`%D zPa$$>toEf#ZAbH*F4xEM8}kE@=?D$xaS5-(S3W2PyBt6xMK33xj>y7WrIFjNxq+@7Npt_~11hB;`~048(4x!J?4UdHb?YKCcQ9U|gBnMY> zJA-N&hF74M%7|{mkE~yWb~7`BN@ix5r|a?J&6~b$?M|b@(qhSkz~uMZa@6XhhhM4 zY2g9h^$Ju(D+g#;2~6*@5wX=rWU9M*R16u`ixoL#s?|}m0drx6^(CUCP20n08-#44 zNszQIXnn)VY*;((#cfyYSU;T@dDp$DJbFJpZ zEl$($2HmFd9zf+J;q%w{<(zgp+>O?&E0>u_b9g^`!4Y#>wvKmlo(<{OzE5hF=Oi9cR_xNjg7&<5Wy$(pPnZGc4&)Rcx+q{h59*h~3W zf1S}#GPiYA0QR#QRnXp^IpAc-alft}4yc}LOV-(cnFv202t#np70WZU-fwuViA0BU zR^W_;N*(pd>A_xqcfDh7y<4&F)w>tmf3Hzj!_qkUzqP)H%~DX@Iem73hB?5|EH<7A5>8eF?g?WD@~^+34hF7*!i9; zRCl=4>}$YFF5P)+r7~E-bBMZyWCI*NMifynFafKegWXOC$ZGpe)qaa}H6WS2dFxq+ zfU3o{;C{VlX)t#qSa)4Lr?u30l^|6H3j+6Nmd+7!jI=FBW&e@Bxo#jC8VUqb5Zs|k zf4AeeQF3vK`cq0orNZ65{vJJ=Z7Y_D3I?|5^vx#k?`(E9X%haWo;5JC+>X1#-0lX= z{^8Uw!4vBuM)tiS^D1qwKA=^OR6XC)E>C1`Sf56_+OUE@G z2!s1y1kC(#h!=Un3jK^M@DfMHbEhY1BR!6`fAfPQ(2h=vl)K}K>oeF&w)vz(V%6<6 z9bG776`H6+!FlI&gIHe z#vqS{s36ZbwNkfi-ypU?^iy93^#V}l#u4Lqz&EaLioUeGFi7Phom$-42F-HHGR=Rg zUzwf%AQdO804iW!LK-kUlJQhEfefw$#sW*xqmJ$F>GYikf*;x*ED0QtbZAUIh@ zk7y4Whj+|9ncp+RTev=%x!pt+vvw6m9K5|2?U}tKz0Nv>b3}vR1|pS;!n|;|H0q+) zU!dK3rDLo|Z!&*A3&YEpny=ljwN@bCCTDN|R7J8w&s^tjpvi9ilQb{(W{9G7L$uJR zQ6AG{d52&i=b)C3f@+iq*3Mp=@`U*Efq z3MYm>MzqgmHwBpO%k=o&ckXjIx5@Ag3 zs6?07zy+8@ZfU8{VPOD6NHY+Lutg|OEhs{YLowjG5jiCelD*-wmarmaXPD}( zRxZXw#G8_zgIYH;;RC;sg+MIR0`yJNyM3|dHE)*w`pPP5+T{zvBuo*2RXDdl;kakf z^S4E%)CjtC<`Ds_L@~eU2EcwRcKQ00?kmerU3U3MMPkwAJL&s~+S_Z@h?Wuw->U?rVD*-+dl7>K$kny%ON_ zNvN&5;y9NmuD=uDdl!H5s$rr3_2T>Q?YYG7U1dS*AyCvSujc78fK#^B#%+~g(9W^% zjejNks|+c>doe(hTFx(%&Gt$vlE24;_|7VX)?Q|O zeZiL`whg(M7E&c=H1H$9{t5<(@QQQA+}ULik<1e?d>cy z@vr8SzQavoT2o!`uY{7uv7ELb5vz^%R6fps=7@RFW8X7{ptw*D9}MvQeA3_V&sOCn zCHdgkS?oI>$paBm&X;=2Qw;s<<5bJ*N{oVkLb3wG-O}>}?L>xjHj>aHs};D3{GoV#XL3z>TLfzOPx<|HlLKqtWcr$0rR7pSuTx zjq*LglsHbG$!@Y8y)BWfD7P>B^ksqnMBBhiBYxjs0B;H`O+W`hG0mqv=jbm24obT{ zfxsPB>l3J4SVhaEj!k+A5uZ6MAnfc{sYF6TgtEa!UpQ#aEW9CLgKTClDEuZM3&W5J z&a%o{T8Ac5te88sw`R(WjhU+wx&*59do$FkRGdazCRU}Z|3n51COG53`{w%_;kwVg zZcGt`bAB+(=Moe+tKNZ0;;?lc6^6%6stz|gqPs6XPQ@`am2Q^XeU zzZSnhAmPy~hyGLCUH2(}#BYTV zuRiJ5kx;+~d%x)IQaEPEkA`l6S4VKZwdqnbJ0LCB{0TiF^j#811cA)WWg~Z6FlQ&w zY5jMPQcROk$1IJQuo^( zF2IjG^pQBnk2==1KMMJdOKQCHvCUqcth8dnA7C?poE^)i@OiuKcE`6c-OKZm8-6F*Al<^l1uyN5`VKxz1K#$&dS{$58G0K_9%6 zM&%DjL$H|S*?(Hq-6Y!Kx%M8G348Ci4O)O1LjTa1iGB0oNO>Qui6_@M0?;(X zXoB4~*JDwelnmEh+gq^3Pn|dLwY|u9C(VguHC1lAv?>(!PHF&G$sPra2xUx4aHY}f zo)q#k_lVwcZX=V^KC7D0sB!GJePprQk^|&FX#1X#sxoCEJ1|y>o&H5Bl%rK-q*J!K z0NEMV{a)9k&R`!hi^#c($AT1l##j$vUR(eB%3`j(pe+q`X#EgM4pom|Z`NtI8;zS% zSTYIY*l0C4JN9*UH*=MF84lfx`CO=2KC|c+mmSWZ{YQ5sD^R4Xt@;FfLdLP6ItFBu zJ}*ajFQm}>AI&DGex7e`qs@LBd$EA)9}Tc9_Gt#cV-tS*Rr?jj@Cx^8WR#eej#;zodcq7OU=W9)r*m@* zxmCb`V4)iGRf0u61xHXB5B~fM?mgCX7p)b6La?Mn3GN2GNDb?Md&hGz?9F}jOCC6{ z@~PBWrj&;V&wT#kaeGUBDNr$2JN$fA3bg3iFPUIS_`i*!2YQO}3~Vg`{I$#XCO~Hy zfvwifov9eiA70LxpVK>NNxM-ZA80^CY9e8Ia%y0JJYHJA85L5>w)K2IIc*`IO9TaW zwL72N21FY3p3CrYupB-Vly-|%w7+T%9XxJ6k-rz%<4976Flez(G;htEeiG9k`Pu=1 za&i^1w17{=)#-NyGy|;Ey3-Nzv3T{>~bIhZcJI&zd0yYzI-I~c`k=5o7 z;rlws%5A}U>pnP2TYCh&+d}4tYDuSV^^bx&e3-kPKf!VHG0LzeZ|ZVTX)F)% zCXOLaM>Axfbl&8oljw`(1^9Xhs;Xa-C}c9ef2gI%v#|nt>jqO#x46K&Qich?XS8{3 zdVMu?ymdVbq`r)dXj%0I*5@hai$(7I(mJ_a4F@2`(vz%q=4B}MVM$%mipHaGAgh@OxFp||sBu(Cwim0+iL_8MH1b2`F z^NzdduLCw%`nW4-gDyM-na~J%VKNO;)bZatI2hRbdtanT;ROqT6LH+3Atx#gQsw zHqp+qOuCts8jeB@K@0^QK&@&ubHrj^NEi6&t{6z}ehSvzU^RMwgPf~Tbh0-KZ+|1H zF?gdL0ieU~{{EY=r0?XFnv%sG_z{Q0-texA2G|T7+6i1hOEG!kv38}K!0pCi zAToc=Nte%alIz);Xys}{aR?#^XkR*ZYk@SuERe_te4|YYzx%>Xb#8H7j_yuZ8@v|T zBT$Hck|Ey?q_G``O=dFseomxPmhuS$8gn5wU{e4xCkntzP;}2O#|uRO`ps%)e^ft+ z|K&pX$>G{lw%s$-Rz8&)639^{EmUb%@fR$gE!q>&X|`sVO{R%K!|&!_?UhfR`@IM~ z-@SnqU%n}v{R61K8Tu9T zL~;{pFqMILi*3=R_%858Bpag;ywt+F)gmAME9ez~LSRa4o1dim)Ob z<(MsxK9fh`c!4ggdN{9NN_n-ZvVgL9*ZdX0=W(WS+mZ(dRTKfR5-TJD_Y42JgCTK1 zfXh7}jIM*VX!6yd)Gf+uupYb{Pvf2Ase-qlWo53e)aIC4l#Ew;`n+ti!DQTtg_h`@ z&F4igT8lo2tXQE@JCy1_aDa%<{d<2x+W-}pLOx3j=(}^`Zp$eFAS1K2+sN*-BakMv zI9vM~p_w$v?Sd;w44|CXm9S4|8jDL7*}0v6AopX~p38N=ZsKb_NqZeNyPfAh)$>;L z1Mr68`h$s3E`@S67aV4H!4!89e}5JTl&K8Vs~v~VX#xRXrKF**?aOKpF$93gh}A{3 zkUYPwPc&O3YurHHs+tWz`e*k>)z`QO^^D%26a6Gb!NC1c6$At+r0>}J!%%zmMUV3` zF7!61^TmsSHvu$2BhRzNvfq4<5Je2^g9l`_;z$Nv-t^v2X626t2^Xz-RbNc2=`Ml4 zqAR^TT)vt@jDUkD!v@_y3+aZn-TR3OTCX&q-U1xX%*6Fm;KExG0OlWk#DOO5zOoc0 zLrfn0T?IPjfdb5_2cA3tp^rhQrLuBm3`_Nw2SE$KrU$Pxi$&qd0)Eb1L}F`7K>1E{ zzCYhA#^bsMw(C0uW!{;kw<1|w%Nb8;!5vQwN{y(uH$cJV@<~`?VX$qbRnoDUyI8NU zDEjyA`p}=j_fH3P3c&JwOQg|H<#w}@2Y6`(Xk;Ub4TsYO{sYUB8+IS73z%#(3B%}r zQ<^+)xj`E{nW6fCgNxF<>Lsszo7L7 z8nPc@&3(Iz0R!OJ^U@YKCWOjB^Y`D!`1Ov)YP%5OdhUC0H-2_>Qe@ZAUG+w%)s#3N zfyF?8&)+a;q3T@D4{$^CM^tt0S$C6_eRFp7v3Oixk^r^cm}+tz#$q&l2@D(=u7ogW zu}YH|O2-LddjY%G%g1~q;g{>lL-|#TrOP!0MAAYTrcOYI*nimXk=Unq{~4hbqLZD#t{h zqA_ljqG;cOv}nIX`$Jq>nnat-Dx=M~WE`D~!DVM{d^GcAu6YwIjq}or zy6`G$r{M*X1wknqmn{bf%sq$-Dnk_mF0Nt2LK_(5*%w{!#go;xcr?-}_-o#mtNd6a z$#WLD;|TwOBX_8gbdGAv-LPC0MfXvS_pmd$)EFpMOk1aYYC&iOc;Y%|Nvp+97Jv~N zf3-h6ZuaNPk9RkOR zPvAAXQm2DE&vK*_La_E;ZRLHEt9CC1$mM9;EL4a7d*=UT>ea zitP9Qfgl?ie+)1z;LUN!@F7?Lz`8=f@iNR!1~>=DyveV+{oa%4v?Ymg*+=-Y;z58pT&Ivc^U*#=uAhES*#lesE>T`Pi+F^|-tRl_HM`>Ofi=X|tM8QW zd+R~KS(X35{TQnyOJqwUTKsK|#NKiv5a(fa9%?(_F)JS1>vyudteG?vhEa;fna48% z9xM?kQ8|K704POT?G{yLRSkFety4v^0wcNMFC=-@d{Z%aT-4A-Kx}g=ZGM!Ng#1C% z@a;u(u3lW-YN4XGkpE=s?>3e|Hk}ry_{v$Ce-rTjAr9jY*hI{{g}YOpqkjRq7(A{v z(i^~;_4+pp2FH8}K!dJOa$b4c0f%0a(~Jl6Vq(+#)|AwpH z|nh>;1__ewBiHHu>2aKAZ&oa_2s8Ie!@9LjJiF|^Gi)9kc4?;w(+Ur zxF^o?h$p|g!V0+X6|m^?^P$OMLf3=(*B2f?S0}2>g}e;FIxKvK#8%opA~VpV4wRk^ z|7sw1enL#2=?M%iJfNLy>+i+Mgf_)C|MeHTG$3UpC{(seqa|&j5+N5zJ}8~*t(#)T zoUNXH-ZIH8v-tI$c~Sws5O9h~U&dy$Jn+~&T=Y0@`=koKcs(5c!ZRC2p!R;YwH`?& z!PR}(Q%~bD2Y)4N_h7fv5C(7!g)+df-W^UG*QN*x4gcahUxJj!U!#hD4kiIVJ)GW| zQBLlv_weN=;08%f-3hF{^BEqFJI$RMW>z=;P^%MR@|f)OIL6$Y)Su&SStDe#;#93t z>Dg!E6RoQm--K!Un?QwL;?A^s+nh+?K$L^x?_U%L`&0hSG}_N_r#rrxfd9sh(;Ovb zpA9{Y)mGB$?j-*4QdpzeF0&)4nSiD49;~uGidvZMODxMVcbR>P7|PT(@USB7k4r`r z0wg1R-`Cr30QpsOqOo5Xl^1ntX|+OTSt=>9{m*A{`X~-e`WvkzAi`W&_f>)7zsY@FHg0@N>-1rw~gh@Jfx^ zZ;lc@i$=bQq6h~erB5lfJK+Zsz_ZqgI$uV!{0C@)eSox}BR$%&3~+ES?L9A?t|n-V zA@_Xq@3?rnwcZZZ$|_h}R#4ItiaMw^Y9q>7Cb6n`0BV>fiw9+q9V}YRbdSUi1*ZEv zmw(~y9z!gIJ6ybpgyI#mdt<4(?kbZ>8+Z$Yf9sJiX?bsc*yX?h#S5{*{rl?n#?Yk0 ziRqrr?@QnULvc`U-QulX(~iOS?9o`Bly_ufs~AS>L|6|JHc(d20`L41;FbCOd%nd}!_Q zz@8%DDpdjsz+H&8q<3RC!IseE!a=hP2n zig)j@@_O!cE8<5{0=+XB$^Q3WTmc0lup>G+z@`kUZgsKNF7tl6(IoC(C?JbGn4Ys_DReIcDq(fI zw?-cEm=l$HF;%LV@iew%xybNIAZ$k(Dsq8>f!P4$HfZ)4smRr4sp-}8TfL7WQY3EI zb!bjr)r2z$nZAo?0S|dy)=cwvc%iKJ2OLmuZ4t|7@fJ1NY7IB-aAEqQyr%QHd|#+; z`W((lCbF~Ah%140xloy=EJEA>{C}Z;=uh_8(IL_beWL%M0waQot{-X9Zbg8+*?{zd zHinK;jfVbN+bjD=SCwLY4ED@Twd}O*S;p7Cjm9lRl*zx+Cq@VULMk5RS-yQzRt zl0$vu5Rw=YV;byhgHvkRH5NyPWk`vAwGN7vqM_KYdJ+vo#Y^L`|IXLycBv@2Kdkl) zwzEO{w?{-$Q^cQdid+s){1E{ok;bIV58o)3A*;guJPUuW!oxb+-xZ*KmuXj{UKaEM zaIYqnXy{6Bqn~pcwfq>@jJ9!EMlm5ju7t@ZkNV=_o&EqZF&$JHzHHc!?VHhjJcGKQ zqYwbpO^o8QRonCrawbqJ#+*gwrnkA-7N#&6k8l#)Y1RSv1lN<+C{v`UFV_kF)gldm zp)|rH`co)VWPd$2lTldW#exzbX7u76!0Khjs7KW!dDH7d^7gp8^TrZqX~y?=YQlYd zdA#CyAUH(f3@vFlAvz%ht2nanT(d}{*lci%bP<~*REdOMwQifqMViyx}}*8 z_sj1uC>i7Xv3efY`$Zm3=AY7s=~r2d`Yh6@d>fj+B+=p^a> zz-&wX;9kuXt)|nkWLVenrg&yl(PWC~3nKzDDT1xWvv zS~ae){%h-0sn)Xvj4354(uKs8njIN4#qzjfg2u58x@~u`^7R_q0lK5N^W}?<6ZMwL z6iU;1!Nb4&7aFAp8M~5_s}&Nn!X7hS;TV|rlDRQaie$2K=p;@Mu{lL1Hk(|IKec)t zRAEGW-Gk)X(|&PZFwOvw2SGt);hv^JsCKeEuJpmEP^Rl2X66CvH`~YifX2q|H^2YI z)uT|?4Wf_5&4Re{D=hZjn|(+Vvk`vdD>6h{)~bf)Nv|4ySvX;m_-EwfUv@OMjQ!)8 zZT=yj@eOASFzM2i?(H&d34}=jCLK`K(_1$_J04jVYUn+sCxb0oKkOw(s#JNK zMm`39x-ABLVp?~#TU_9$kWmg$tmH~13UE@SzGNTm44z!md$&-_E;r%Mm-jgW3q&0D z!VeANK<@OkDnzr!!1oE*u92WwkJc9&P_Yc*tiVr!SoF+%he){5hkh%KW4hA@F5G7& zAYI_L0^l)D03qnE_7Db{H5iY-SDL8(8;%z_tKG~`pw}^&O}IIlMfF0u{`s{Eir`Hr z*NAPKcr>HgCFP-)6M%#TxipOXgqgF~63y&FMLE86c(8z)o>tyqz-5~eAG5bwt}zlK z!IsNHH`=G%W43+dj}{xe~70DYuhDA!1gM z0-01NCH%W4RD^FOfy{##P^@fUY(kR--9=cl3_MT%)aWJhLLCEb{O}uaxBtCaMyJIJ z@%E(j^f?3k;4ARh<#y94VY zCg|wN=e$81h{9*U+)B5b)w#_WU`HoHgVG@aBuZ$B013y7e}-k7IpKwecDg)@0Lzy4 z*>id6ahBd{I?v?s*B8@MC(^La}BgbQu+bRGMroSN=HE-++|#nku1L zO(jgWzC&9MMBO8U@$S~?JW?AW1&JG>2B6g9x#_epYXG8ciKx@o-}To_gnJ;3y-S@@ z1q-~3aZ?1WuIZnT^;B+W8A+dZ6FEmCf|&uPhTv#2-S5kGzw3S3C(8r1TI?Zl=9mr# zYV}e{-bLWEA@JL{hx=1}TLJt@dn3(vGO&}NR6fs}T-9=0dEq$LBXvizKZn!#tF$=V zsj{?TP~ei?l=ptD#r$yposB+C+g{}!RWN^=yVv< z9rrxnPwY5|k^KE30eu6n8}24|!ia6+)<{*3%m$@Axlk(g`!eFwB!~Sb{AE6xZl|~C zN*cAQ)C$U#on3PdhaSZzD?)=PvK$9=3_7*62Qu!)LmuL?PGh5RI%zvbzrHL0pFeheB+blx|!c(*O0bJqkH$KJc97pBXB?!Q1mSrfx7MC z2I6CyT|%)EC=CdYwuTS$Yez^5BpLw1B-ZT*!Tk$IqW;tabVq4Qcb9OeeWLQ-!3Ao* zMbFRvs}&=MQ-E#YrYX4d`C+e9{rt_*0rHMA5|xD8bT}jR>HZvlAHdgG;R+aj%j9yB zLn7M~MFB0AOP>sX0+*eoUAp`R?k390fQf%rL6jAYOU%p&4xYdEE<2?XQjyp6E+okE zouuna4Dw4aTbJJod@74+f$1owQePOVEk2UFPHfiS9iK$oST}ZhlUHh~Om5Zg(;)CC z3NUcGq17L`DRJK2{=}Fx#|wLp32WLNV~%x%9DpZTA~5uGbHWe})m20U>;@UI@l03y z@5@rRJKqAre7uqBZ_;oosRT;)`U6QZLOxI05SM{pS;p+>T;aQ-(7@dVJ>SGhV!nw3 z07+^|B@*%`le*7dc?*R(G_Y3Si?BeM{8@?BlVv~#&?EX^1vFNNOI$6V3D4feEX~Df z93AncBm4b)Q6j;hwSTale_dTEl9lGNB3(KO;d>$l1DAz4T`05$a6I&VMpVeSI}AS! z5YyT1bMHVfl}+}}Ok}SL$%u^XtPml4hTnamKJRn>-~aD-j^mW`8qe4Bd7t;* z=e>{nxC`Ab)<+-DI9}sROP1mZc=&$M$58zZA;j0F4yg;4?rYSP9pG(&Zv>@F z2b*#R8caRMJ)-VR7Vfgq7BX0cFkV0sKTzoEqSK_h24{w^SGjFIu3}|Yb}sV8TN+WT zakh>c^YVnXNv?MOl~rQ0w;^l%y;LIM=AuhDI3Z{8yT8*1C*DJLlZ%(LpLS{wdTGGf zRW_A6w3&r?udRL3ZBOBfEGp{(WN4d%{$W-ku4`qE-zUsf7yWq5)q3BgojF6NG}dtB zwYPB)HfaA*b!WUaO#>Pt%gEZDM;~PZ1#f-dTX1p%uz>~ISEo2}88wRU`ay;hCT`JT zD)aRQgf7k6sBdg}Y5>)_B879Uyx2a9&pET-J<>K`FhNUFr6#RnZ>$<#M5e7;GxbT` z$to5PIQQj`fsE}p=#PATIrdF`ZBTxs=J8{Tp31bkkNV-`Y}wdk0*(x0)d$~SH{GR$ zBW^~ywUB}I=-uRiGpH~)#fJwIK-t_^ZY{I-s|7cB23ne@9Ui!;e=CS*w?7=Nq+Pru zd>5jzC4}2 z^0Z{@Z^zR&8WUz^Q2&H@bGdh1mC%(zKybs?`;%`~~s=Bj53+n7VRjNk-nf3_H@oJZQU%8S2L1`Fn zl-`+J^8qKrrQ}VbRe(Up=n?MMTxZr2;~5L!ib+Yz82$b^_m&=aVPA_)|0B!cZClt#iZx3MJX1+bvB5+*nm^wnw;Sq#3R zf)K5&Lx-*)0ym52p6m9*X)t@s_Ck~z_p*Q&p~qG{6O~{+J?NkJXUcxxrhll54*L|p zyZjP{HH=NhgovyC(SZ8M<@a}CpC624S})|{=~h_hd`WUA;Jh{=w<9pG zsZs4H%c_=100b`Yqt$uLISlG0YMhtSs4J|pz|5M5@ej}U=L_;$Pc=+thFQJmng(A! zd%b)naQ}JuCB^OKvEDug=f&{XZtwCm(j>G&okq{bF$)T5a5LN|D!lj3-$ne)ukI{) z8H=&JDkq*T4}}xqrJlaEb@ycCcU_)6y+J@n)>NAMo8+1bGkV#0L*>!0%%Srp*~jtn zIDaRV3(ko@`)fp39VM21ZA@k*4t8!4VY7vmiqHwNv88-Alu^1CT` z48GON)4-bQ7i-vMs$#?=KRjKVqt*-trej(9W>UP81A0RtTo|42+*Q=2ZO-MR_rprJ z-pP*~*&W@m5FE)HNEQFMSnn___xo2Rq~zMF8b$XP)eT7f{)mggl$)l8*{SAk0RSLU z-#9F<`J<4ia)j?xaF;uoOG9l~v z(X!ugd+^bNc9m#WVivvXGW~Ya%dSc%Yu_b1rJ#JGxP*-^vCZwM9czWc^MWB#C!=^d zd>7y8>#VI9%p4Gewiqv@l3b*}<@m~+01K@itYBxX zqYuq*B4*{U--Y*oc2Ckfs#!I-ZML!JYh7ul^?$lX&<&BoY9|iD{p1r3RnHto*moj_ z7JP1_TYe|&gv$5J`&2=d#lN(I*fC;y%9Hz`Z|_VQu&Y#;Fv!8=eRyZ-Xn?IZp8W?&tVEZE|iTcS3YI7j@E0O&T z^}V%xPL>BjwpVn@%-$QY5b5R~@9V%C39-B)#OmPPrgy1Qu|@oY+R>Y>c<34@+atf* zuooX0_qL}f&4BcUPhm-^)Sjbqg3gCho`nUnc)@4ueX$h1qdn|ppiZ{xIV|fq|>ogoTKDN8J<}tq`cK34DjZ~`t*b9@EAem+F&&iX(w=}ehKIF)dDFas3bKZ;h;j|-C#d(asXe?72Y z5V%waA-aoGPU0<0GjaAr-;Rkr&(uHBw_9jEsh{bDjS+&>@6e_|DkbRa6;i*SMt{dft1s_GT2SM8 z;}y2wkJE~qBjcWrFe)S(N}ORn7W`1pSvU^MqdBkr{LMK2S{T{RU9`R z2BOz-we=+yX65NNkncX97=ZBxyqg|BC{}>P7U0uv$6D4r{;kidlIpc_dw+K>g+;gA zN~!DEC?%muq7k5=eguc!G%j08y5siA*Ku!oi+$4`Ia)!XY%O1TFjN!(^7Lc~t(6@8 z!>Pv?^TO3w3%Ck}1rMMXq4Ag38Bs_x1fZ~+Q(~!Y4!ImjCGzApa11)n-#fM^jApmd z(P#`Y!I+)@8j|a)jb%n{xPoH+?I}U78>DurQqT0`9bOrDiF_6{yVrFwF>qYKn`?*( ztJ+$d?UX-jsSXtpoMMbM9YU)g5rpx zeEgiU=NSs-&sQ*$9u?FDH;`Bem~F-Hlz;R+j+NRtd1DvG+kkIx`zvD9GGxM)JoYy( zIxH)s1M;S%>G9HVpw2rh)1gmiF}=LDv5rmTwuq6(k4lqIc&v8|EAyWk`Ca z!diazL$T_g0DYDP)w1e>Wu)d!3e8Wgk^I6`#pScj02 z#hvJuvo;H<1qn#PRNxBv=k{CL?&;bO@mD(%Fd@c%<76N2`#)Nl1Dc;ZEYF19w>sEO zTq{izZ`zwdXc{`4GFE(M$#VGAZzqG-UFT|l3cXSS zno9uzRC(tCRU44?G9(DQ^YPk@4i-A_mmmiGH=kG{3K~tSE{KZbh~qU1^a4auLPaJG z&|JK>IDZ>nRUA7ECi#+;$X|NyRp6U*=;!6dJPr!=eD)iR$cJT{w|$`Kj5zbprDU<0p5KlHrF_2)gFcI*Vebr6jjmrLhH-t8$Z9&2VLSy zZx;h1LVC>~&{*r{=HgKA%=)pSk9|)|3o@{b$bbh?I+`gG{_^%RovkMbs6N?oU(b58 zsgE5JbfXOsUKt5N?;C(+=H5cFPJ-i@BnA#iCa_T;HgJAAT=W~0-J2W6O_<=plHy*z z?z^`!KTR{UFNp};k^A*QG*p6X0$|>6*&6kAbtA!S__VP>aV`F1*&yJ1sjR35pTm=q zeruM7z~5_c&&P}8Y&Z)&pbljqzL*2Lxw|EloW*V9=f=*eNe=7P-gvx9Hny9q+={bFW$V?^jUK z`%b2m_p;SDIbI|qW6iHO-FzgMB2svnEAehT5YLOpSiZ&l}2b2PLC z(kqx|OlEc(T)CJNhtwLK7aUul^Gi&!sHc)<(LMWiKK;%}&CStTS8hPfwar#l9*s0T zyA7friP(S$|69DFvNR^y6dTZ{sJ_VS`D%w*B6_;N~0pz7vh!XZVys z?3qZUKqtrff=-U);mI>sKx34PA!^{zkB%l6vATArSid=rSi108SmQ2ELjWz^9d_p= zfn9DeD7|mPai@u3lz;ec;rhg)fKNQa_ug;_D35a??YFVee-+BPFxU<16J2t%>sDqv z$t}85QKbV3r8z`YN=+3(e3CnV{9j+33c&_o=fl&66Td~T*Y7>D()8Rr-O#kin0Iqw zOnEr^iYnc3sk?6X5T?%)dC-5hyL68U?4(e(J!Ks2*d%;0HL?{hSCP#@DBSGu&n|%V zcxnu_%q&OB*^{8w{q4gpj%4-<)e_@otL#tz*DOGf)l8)GX&WOT4y|{&noedxEa%G@ z3&Z`4vV5y}HJ+z`;!;a5oZXFq*&APzUZ$A{fN2Q(8Mm(mojZR5S+?WWqBhr!*S{R5 zzgIiS7q!IGNn=k{buVI!9xc5T7XrDujL4Pb)r>HIM!V%v*F3G))mcy5V>mJkw7HLw zuJtr4i$mOP3GDcFPY-lVMV}1Pa6Q>Muv0RK3Ka4QM}d5fC6U&BDzwU@S2=}xg)Htb zSJ6;3i}kaBiAfc@g6RoIhfxW$3U|2>E9uv9oA+e$bv6I{<^UKw5ieh!g#wxoK5>`K z`!rw$=5g!8G`V~69X1&n0%*KIFC*{n64zRiaSl1DVT5{IYZ3)P+kMV0hl=WsZg*56 z)AD4MEe?2R1L+fgn3a{FPfRAr@aQrk;?h26VB0d$!nS3= z4YeSPMOwp|Pc){*V1K~re1=9YLerRUOU$B^Kqcft<4~+!N(Pl<-RBr-+YP}=vk&TG zZe31-sRq?Hx9PsO!4l1Bkc>ERe|$)e>@jh1o!s6EbV7M(F0}KFS+`CK*>7NHg_sDz zHF8iQ0BeAy5PL zz0>8yK`Cf87x%{HB#aaFynqWO#t|mLB#N)yE55{dSj7dyA~?LeVL_e(Iv??_`P8kfwdKAT%Gu|}x-R~esShIYlA$UoEQqa!fn_ySmcy<_?Wz7IStf0 zbvB#d&djk97pP|BC8o&56McMyLJp3;HxPAy9keH6d)NdnWDG|oPcVR!g4?G<5|d^O@t7be8QTv>Pq&A`SFrYIz65{N9FK|E4%&RHD*|4Oq6nw}DwP0M#>V`Jt5>{g1)~5K;A|nP>{wPi1ERsC9Kv-(0x!TI2K7 zMaYJBaxHp!B{bH1oHOfRcz2QTttzD=7GYD4y@`w}u(I>44s!i_kqh#oTI&qbc6gDz z{Cg$n?I;GTNpfZF3Mu*%g;dWY@iLdsZ?9!Z1rqu_`q6p|82?hcL=K{iK^T~D={lq* zpr!c6c9I}Czz+a`jxOx7LUY~=qD$SW-Un9zlVTJ``ymmTz0xt&UlYuTmab5JqZI&Q z(lYc#u%g{K@ZE0aEQ45RR0K$tD1pbGHA%pu#i!IB8}kK0hX}%0p;oBV?|lZH2cBeZ zXLt_%SrF_8@qUVGp0nGYdVJ&|XHf}OxZp`5XG0dnX)a+RXqLOdw61{By?B1M@hl}l zYYZ{!$f@p!|mDohe$I2T=`aL|f~0MqSs_x5fWJn<(M>{J@V6j;!GD?4=b^D+|< zO>tc5?sDAf(5~Lwr*_=_qUT0?_csGJ?>#+L+5xPUH{UDmr+P>Yo+z33WM?ND2XOjZ zRDbCzV4+Qoe>bCQD@@pUU=Ut7>;B6AXj|AM3V8t=_+26W$+@_gAV2W4;|FhSFuX;J zy#DWxIHX#2UhtrIz$_jA2*cWB=X`rs`0o<<$0Q@Dh+1@ek<&-Ty?{p%@d@Oe|KF3C z5SO7TG(6Ae_-$TZIWUi|a(Hua)H@jf{Qmh8ZWJyjvx2EaUgwPhGDk9TR&4dZuX_rw z>nyHRy>xoxB_FuUq>SDI^?$FUnIMCeD6*GeJsCIrCWb$-UK&I{{SxHw*M#72{Fn%;`|Yx*@Q@~5}{ z^91ovpN(85rU(}$oGph_#K~RvAfDFAsDPXd|IYdUTw*wMoh%KqyFGhuY5(sU6f|#` zQ1)(iueH->i9Lr2oqzMy@cRGe)6448w)y8c*k}>{Ib<6z{JH>ecOoyzC`RMqLDVdOLfa3{tyfwsSr zmIOkay?)kr_rEh`0~=|UgoEK!(osQg6Lfdu|L-v<=p9lZEb%(zP8g@(!in6&_@ec{ z^CU(JZ<|k#H)J>+IXWqP?E8MIH~+n=u>!8zjp2NBI&f4;Bu3h5DxLM;7cL?u_uTpP ze>1#@c$+D>VgH?jOW*+UOuu8X_&eny$T5B{K=nkzPJW9KAUa$s6jlB7`C^>NFtf4@ zng32OB8@i?n|W6H$KQ?1L=TU;j~ljdDz3;ipAm_5Jtww#I;zubfWO0kN4_BkQ>Cwq z=X|PN#8BWa9GWK=asMlKk70`cgi&Dp-3*6tQLiU?`q}?3Oc7${1g>WOT|I&w3zR+$vErSa+06L6adiyE&B8LSNTqqM57=Kr<>@X z7@p=PZ=$0Ak$}^lB#-frD}Y)ceKk`;vo@cD#d2%or_=>2Ch<&J%v!fi9XCc1mz8eQ zP{7y7kJUU*gEGA#p)lkq`ahqU^i(5)=0ZzATuOqK>)z(Q55Ge1>yJNlXgoz&Rnv1X zrN>4BMM3+uPZx}A&?;Hok{bn`^r(V-RT;9I>^K zazj|~|F?(Iym1`DUKn}o#h3%!xjpzqEmcAq>qsEs_o0W|{w#ZQICVIIxO!vqArTur|5E$0^!VrPK(h!R%qU$R6&!O26{_IY}u^!#X5Q3h{8W-O_jqarY z6ofSYqZ#POnk=B$jzuRErf?_!ZhD&J+3F~&z!1e$%ZlVOXX}6hhT86sv2VGQU=|Pv zg_VOi+h22X3T1jv3qH6vbazsNDg*Yc^VEEC06aGys;JsHaJy&r$?TBAPMuN{2j zr(!wER3%|8^;lTI@T_!xroiYme^*5;vognD(fA3|b-B(@RrIfDAjvxsuOK#Y=+X)d zkU2$TZlC**lE_GAJb7ELhdHFI_nskI&G_l1NTf7Xr`${qYl=CQUM9Q;DmmtXIK*gH zI+$ZtGXGu`9WK>IQt6`oC_1`DUxECm@RTUt=Ac9*e02eQMM+qkv*(=uDVTeRb44r% zS=f5o?wsF`AwVY=@A^5S*}SLecM=IwA<`CKgVG#I{#=L0Rt|Szpg+-JeU@FP%7T|& zw?2YO)J;OjUg$YM0o0(0(>&n(c;`z@l+c7c;ru{!f2Q~3ID3N`vyTimMijC!-VUjn zpME`HkZvi>!i6+1oKQG&%I1Z69Vxlgk0hf=6OpB2!ro!#`ZGh3Fl$M z>BJe9x8wU670PBQe&3kO{-yG;xN+R-eUMOqT^*B{tTvZcoq)@MOSsjr#_9`kB$N>E8- zCAT7rmZwot+dfB=W{(AJCH>X1zL>qHDL!n=Z=^eZ&A*`2-`6~V*VLZBIOOd`jzmbi z#G4&ds|ZOr?n!X!*Qc5)CgJaDtXY0f$K9MC`^f%Pk)JfBg#ohTSEY{RO^|RT@*qR- zC=!SX7EkvX3g%7b)TiD$Wp*4;!7{chdmHrV1ToseuP#c|P|YE$vGTeN3HjJ>RX@K#MK9^8mvFTqf0E+la&%BN?VNx0Cgzydy#OEYrVu0B8iJ?>>QfUwq7gLXX z&xg5_3_)cF88MS~gk;lU_Djz4n1Fho2Fnte`%1SFk_Zo_5`I?yX9}lg-mdWpk}pI{ z*mXm(IFB}qoZ@P&!xR2m^H1n~oGJkHXbB(^Z=^>Ct%thwf}n-z&o#dUKJ(ks!SyNU zzYo8l6nvTvy?0f-(RN?!j}3o&USewu1Ucv6c&Uea=NxJ;;+$18$@ramR5X819{iz; zh~LXg5N10iA8pwC%yTHEJG-|%?)m!O&~=GR?Q>h&cb}=C2!3oCZ{Rdinmn z4lf#aPR6~eOTi0Xp$fP{>bEEU>TI#b2PaWy4iiZUf)#8?Qp_ocjZ^^ILD)I5+f!8DZucq|&7Nz4yT+SYd$|JX98QKm5b5n8X)(_-CDrm^Cg%2~_6;x!BA_ssMvX zCgrT+NTw|Ahh1NxuHuTrtU_O!hi=NZ3-RYT0n7kNhgx=wc2F#}hykbwr2DJj02#Q6 z11MA?o|}1>G?1xcM@7Q(JfJ+~wl)X)%FOA__o3_0Pblfh1Qvu=kH?3+R-+;QxR<2@ ziJ0j~X3yeL$k|V|q*0C4R7T?Vkolg7)9uo9GDMu1_F%TGVpPEiOc8f)lR?ooR<6aBcs|~ zARGzYBzK6yDW{15JB4Z1Vr$w3GYPoHaXhJ}qcOKSVNwe~rIa!~`|B2?pyr$iVB(Yn8o>%HvVQET2OGUM z0sy9Vdb@T>{rq6L^*O~9{#OaS=2DQE(M;z}38xl?Vk*rx*IwW|5d#ox7Jtzqg`l%U z(IUT{m?$H53KN0^02jRbM=ss}W!uFL&@cck_XIrB57Lkx)W$JG5RPEC)Z0lEmtyQ! zr)@l4UvU9evAjiAFrD<2W2so?qi{La*#<%r^z?a5g61pOK4Mw3MeJ=w`d3@Gk9ms`__w*)Zc0 z!InfmM$w=?b-RRUPo9V+o_Gc=nFyYEc(EH0jihp?Ny+$Va8JLo13d`LL#>-my?!@qGB^f<3Q3~V$VFY+_Z zufk5!bJer>E`CTwgia$l!);ub{VjG-(=jezBOs|BY4g2W8lgA@ftP3ev`cp^UjBr>EYTk-0w;h$@_Eip}5nJoz zsNQx2@U;ZpA5aN%+@y}RkSqGvROSQdM_IO>Ggjt#gbH;emk#!SH&FHS04^yC+#^cPYj0?Gq7Kj6T4`|p#LO**{U|;lMpQNz@ zN~!Egvz$&1pOjl7zwGkXBxn6jBJ15NG7!s6gY#dNhlmmisx5LNQ%q=u$pc3ng6I+_ zBFzvQW^oqxc$(SG5}JAZkCE@aJhgYEslnkWHT{ydi$n6+DE{tqkGHzObYd}_Nz165 z+`+s{ul~0v{3hPt&;XK%Mb_bx5HOsi5FSs+lOVGAV`L+EnKaj*^g-`nI0&&kCHhj} z&1a#JBH(N#L){W$?t!^aGog;S3_+yve=Ql;iSS=84OPvbU`(w)w8AoTm}5`fFvg>0 zgzk<}^#nwY>r!LM{=lTs${z{<3d_$^P{NJmd=ZWmK*hB%A8+oE@u}aIJEc1umqngL zDf?U0b2h&#R2GpH6LxpZ!ZvncM#J1eav7d4Z}IEw+Mes+Cw@He7pS%HWobIs1a4l+{#~Dz(*pRp9^Vpr4+xX0!(k)YR0ul_>%37cA z%|Vj1)y_)-WAz6WGOh!8car?iQ%!uWx`~B8idb_!Dq z=8%HutJfo+FGP}kI&U5M-&qWWKncRsOwUGq5|V+>?&9k!?LRIv>9U^h*n-Si4;;R# z7yEUx6cP$M1qAs$rg!%j*!PaAQ z6JJ5SlRgV*i;QJqx8CefOBU%M+n-QM9zh3?T+=14Tu!E6cnss{X-x#=p*vSqS#XbDpaMTm}>IRGc zs0$>G7=TcSVl`L-n6jMA0Nm0wZ{j%?QqRo-V9G+h74tew5isZa-%XbtxmBnysPAUK!M04m> zD?D!c@zq={C;g`V)RoVzI*22MF;?RlP8jq#$8~D{`G<1N4~NQx45`r1y?4lAE?`|D zStwr7-F34SdQyJ=oCh4yuUXpFa=-8$gGG{flTkYWOonN8)~x5+9kapQ%MgURrcf)8 z?vy{<2S{G0D1-7?Hf^PYJ$y&4yXjIXUwatWSybuf9E$lnFwcoMB0=)2G=qP`yaaYi zC$q%QX`5O3__xSRM|6sS<4#NroBl0jzwXVo8F?;cEwsI-qh_78oIH?HWyh~?brnzShie|zD2mHP?le$-v4s?H z*`t0kZK^I!A_$f(jO7dV7icSHt1TWCc~a|C+HvXCKf2RWdV2sOCV(a=8m%DdE_iPD zbbHKjs>&W3m9o@bkdTy|aYcac^Sw-J60{_&MnF`A#Aq5P* zV>xhM&=e!*dQ^7NAnA@RA!w;3hi7cq zW$p-w$5`J8EyiClKBHH?6(veIbTzncYG)T66}=W>{s}kC={Qe4#A{e5?(Y##HJzBf zIhz8nm6o#0odZeeOPC$paB%C_x1tx3%SU^^q*--~u17Za3kzNW@Vk*vHy9Q9 z*uoc750~n#6(Q}K@dEdi*~-MEM#ED|WACt!U82-!KqI9JJ^Efd<&ywJ8(XL1=@~fN zynrUXiqPKlQPtD;F)AJhRaaAat*!{kOL^{W^!nmq^gv`!)^xe=;P7BS-GDE$1CGzX zzP!%9-L9Vo9l&4y*%g?GKBGM-VmI-k))dg!^76g|AZ&}&zkCb|W~DTZ_8L!G+jyF!Xbm8e-EU1SkGV&<0;3u4<mQ$%CYKtmTljzm?dyp4FOddl4*s0a_Pfs7q~+%1N0}G_Eae`R$yNH| z3^a^jzqNYNX9UGr!d=N#kJ-)k$N4?ug0BA&o9GfP_RCg`mEOW~BELEke|-*9*nVnk z`wex6{p)~p_*A}k^X`2t>a^MqqZF-*A|>?px{5yGJzGB;z zRuQTM3K3~s^1j}SI<->T{G`K8)GgXmt{kP%Jc8l5oIdDPh@tA8FRW3@QKo$9kYoQL zg0Wro9+&4}MDzL&*G1utjd^u|XTD~nen`I9*)-Rg$mItRx>VUO`bLZK&RZQ^{E1P| zQ-PiRSv6+YO-4A;Jo6o7^p6P3iC_$>`r+O3G5AZ0Anlx#`kE2>^7k4U@*4#&Rp+_y zXE4YTssmyynqh5y@ay!(bc}V(9TDDhPH!{n4}~_x1fQ63mVAn2_ST#WCSrDulcuap ziDuCa9ImjW7oxXzPZhox8QBma87^wCRYs6_-$0`)d~OAu6d!x?#Ubv2=9jd&DHf&3 zRTcB(6y(Y&OJ}xi-ETpTzm9=;JTv+hRGx$ELjn8rPqE zd)=$T#^>-c8|!nV2m4(Iyb{;*FKH(DP&GC9;9T?X$jXa4Lu!8LdoCd%Q!0B@m9#5_5?Ills@NFGyTT5Lfy3S z%-f`_v&^Lwj~_^OxHGK_dk7RT_ch6?|KQs4S6@uwGAU=$Z6;DGC}5h_TNRU!70GA9 z|8CSJ)I1Ve=MISQw{y7c+Ih8|4JqLixRKBG>EP%rD%5@b!I#SdHlx1X;L!Wcw#F;J zojL5Ulnn+p?Rxr>66TDlx`^v{&Q8w6@^1VAmpoIV>^!?xuCGw+Qdcs)!A~gRmuUX; zB!&l&!qIaj6-F%z{P#T^;$qnyzfNVPfl+%C z)#c%{Pe-l(VFxSnhifc{fol4XIp8b2|0nnBG~4Rv_~5JXc4LyorPh&hwAhz|%4yvi zuetq$c6Y28U)nD!?)56yNK%VF{mtt-_hn3l*2>qkHEzsUaNw0Nm)~uh&+V6MsF{?o z*wxCSI()jIlc|PTj?&l<5ut9jONuomfR&R!QuA!MG6GHkjs@Ry{G-M0!@%?-dL*m4 zaz79A-%*%mf&_IYEkTqvwaV|ybW;!t9DqMubN#`o!czvtoY$WYt{lm#TFrLwr+rXw zjev$DsB0LK2WVX%Id^AL{Ct7R!Y^AXQkJ_6N-KSEOVnOLW8bYLBelTYmQ1ft=PvFa z(5BkEvJv*>kH_7>B}JA7ooAVTca0RQGlEz1O2z!J6Kxvw-hHw3cM>jlb5*;bIaG2I-;3-S464yKF?Q*t`pp&vJtfWcCX!j z(_hQzZuZh(Nxp!Njb@P=ebjRa)~Q5e%`vx73D?`#w)-JE8a;P)05|2PTgUcwB^Miu zwLjD0q7Q@&bma`i6EOHE=dUak+{u5MyOOPeXDJfBE+1W#3Nameq0bCB96lHdvn>NG z1L6E0kQR(#qbPaB{kUGCOM(I?45&b(o>Ac>CE`Ps^sQbSjn_KzTNumu-#m>E74+=l zA%=fxB)U3NF;-i_az%`E)9dAX2yf}wRp1w#q5-^98B&F!)|k7-_TNy)kS~^I2(~SieJbvGQ9M8 zFtfLTf>yu;tc#x;$P?S5iNkFsW^@pPs#@O(E=dk81i6zYATewt=z{ z_Js?hx2(>%dsUHZIcks`s(h&frk0BgRkl~(QwjPtT$j?3?MhKhD35Z6AhGlo{XHeR`1Cuo6u8VE4Xve0a&vj`w<~p~dVE z;&K_)$;qFDmgFSWNZ#bnf7q4$xvIa(_o&A~&8WpWf4%fm*qqaJ*~2b>J$8qQ)U>rr z=se`1rV+WlIbE$HjUG*V;hGhFCO=vH6LkiphYYG05Au553dpVSguF4Wo{e0^pFsa- z8`X&jl7(aTOo)|muv2WV=b|hXY6*=O2dRUjkBkS|Vl}6x?|c?H5(>O$-(^a7 z;q(03>{W^Wyt~=UV}c{{vud>jL``xj(9p5c{^v)0QO9`-PX@P@2~?(>#bdUx{T6h1NAi*TT*DtJBOAhACP*bq0t>dzt*q5)J*EPTP@_0ShET76lICAf^y%$q$hcz61)QHu}ntEicU^ zrZQk?VzoG>Q*FU1rrd)Z?a!SO$r#5lzNT)A&vQUQ>Rc>CYoP|NY_7)Z2q>tQo+9SX zAIQC0yjk3!B!?9JYrIxh`$94FT6>*uRV^4?ByV26+&2d~0@kGUJ(W49;cGZ_2WLCKS{H*Uzb#JopOff~P zWZ{O-3L!w$MW7t-!()O^*YN$aBLpS2bVX|NN*g-BmsK2EDr~G5cNrbeZ5= z=kS-a0R*eXI+!JokDUKbOB&{1o=b4?Al!}3?uukU=#p>$X4^_seMaD)wSCD!zt)Tc zsT|~&S`u`mrDgjHr6O0LuAIm7kdBPUtXeMx1;s<&eX z##@ zhf4(l5>Im4Ah@gWt=b7^p{L5H)5I-cw9FOfoh?8dhxhirNqQKXtU$_%M93Od{`9~j zb_4zTgU_nmXy5jnc1f&|_?H4LslSM8^yGS5%nzmNm8 z3~CA^kZxkvsnx(+f_kPmY@d=b?+>&d;n^LIdy2lCbIyixI<@aYRlGS@K0;4sj@!7t zS`^v=xW=exI?Vo0`OJG>xNR?R^p>{X$uu+HyKtC{`XA%Z7Qc~ZTch#2O;vw@aFrL*JIluwr9!+TAT5ot>7D-bro5o*zrkolYGp!vg&}v` z^8>l+*1^Sb2GVp@U0P$($FjGHsKR;HJWZ_bj_MhGH)TQ%`QfhRA2QV3eL!kda7DAc zY^VMbB@@*Jnh9)(@D`~^ko{BpxZc^Fx?h*|e(R4yk9vsByz8gaIMCQ7E} z<-yXr{fkEbsov`Cb$_pHmeCeGcM|8N9#ty)J7UvKA7w()p|mS9?qo`%c6@`}6RMn@mxQm=~Yg0F6=m@AQNSj`;v1(NM#ywvmTCFQnoGnyp=j>gd z<-EA7%*0izPPMnz&Y5WqahO6SR^gs{@@q}T4}r=Y!DYNw7z)zJQ7W{8@`u8Ejb|$kJfCkLrd74 zfNq&td|bv#^~Lt~SWbC}IYq92G{WQYD-scn{(WXyhK;UJT|haFFZ(11BnVWbgJgRxSV7xg&lE)Eq47|{BKAx@MR?+#cvntrFG$D z6ZT_1qIH!IVU(2anJky3ILr}E6nPDeOpAxvVZE2N+FX~$avY2+nEl5(? zu3!5Ku?nK#r%3|krLXXVaXiN=#b44(e>)#oCgR<@+C7VK;W-6ZdJJCOH+E92cKyXy z_jEHss{_bvs>hx{@`izw@b<>g!;RHX)I*AMZQi1XJL=dECyk&;QA?_kc)4C7!v>$@ z6J2ItGk>Ox4%UdIV6)J}rm0e=T&)tJ(96Of1auzn8`q1I@hy7tEs3}o-e9~=F znHPfWp!oWp>z^RKLWeMflJ#(X3U!vvm<|u5RbQE30Jvr<e4w@+y7|g%G1m7R{TX85Pj1jn3(^9Sfd_{Wt7o>n9&2IiO>|Gp zi>-Ff2DM%6JJyU9Y2ji_;=>3D@H!KZcf0c>xxDvJ|PN&=q5f@izw(q zOfMKMIrwScMTp08Q079+u#E$$ceNt0lMz!_(!?=eAT{O20edu%7EJ1yVQd_6aDm>x zRd$P5e`ka8I0rr}*i$r9V1qC7FxRgP`YW|o?O0{aMeBvWefwyZt%_}(D(_dDWSwgo z0Xl(QESxGH2hs}v!*Kbb90lnWJt1xvv0Z5b2L3Dt+k%U)KVK3=F!4h8gFRVSh4VV0 z&VgfYPECog)T`yZOZ|0{vjl%+#MlSR%*P@K8CzIu4>PFCGok#%H`I|J1JisfBJt)^ ztuIFpe^(|?1ru{hHXI$wT#9_fLy`}KC>47)aXygvJBOeyynH18t;iRw(VEBM34E5) z;Ke>pzQh6(RV!z>`_@mQ;LBpa(96r1H|bJIx+$_gLeiyj=U4o-t3wN=Oj5+GcQe-K zIDNSqoR<=KTvU#(t-|yFe^4D97cL1{F?7ark7t!3`2Pt?G+@+Ehk7+vX6_$of1whT z%vBpB{FJ)Iyme|>3yxd&2C28f^eV-1tF~ji7a{N*GUm*G@EkkuM&R5He%|lULmsM0 zCIvehQ+@)v!mTEJ${u=d=bsgP$$&@&$Lw>2ha#78(~8r})^Su++i}aTBw-~0$U3N` zKgEmYP=5)XL)9+%koOhKAM9`AA>h$dI_>{uPLF}b`V14xbZBjf(rprGLaz0MG^s2M zEAyOa7O2)sWNdU3oXcBnsuj=cc;ucy$qqvCkJR#f4JE%3W!5=&=pm{KscW;TjcN$p z((dhlNxC+>KI)MqSaA$k{r~&UJTFuB#0PCrsyb;;jqu96_@H@%fa?O!!8Iec=0KuP z)^b1-n+h`S)}N209Z0xug;7Wz+5Q%3%*fpm2|Jo! z>8X0eInghFQ3bQELPg>Qo$-sjT*pkTOBb=~p3~WhOV8YivI(H6lgoXkmdOx6^WjeB z?PylD4#9`ZHI_{Aiq4;2See%E3%wZQp6mE>Ry?qXZrlo z7QYfd$0Wz*?c?7!2+2#k#!O>xw5*4tuouqp9zJ0Zit&A~oslE4amTVNS&&&=9GB2} zKvX%If|gz4)hio$<ciBSl{d1>-G1N_d@Ape6Ng7Aclf^@=Hy; zQQa%%p53fK*-pc?9N_C#9NF4ipQsyQh63FN)hW>@2cM`tBXlcl zWIsnJXXoqG@@q}+%6QF&4*4t+d5YW{pJut~V67?I9$n13;2MHukRDkKt49I_C7QTX(_1rjQtr4t8Ia2}AX#bcOJJ^#0!brrLyz|PLpN2w5nB7z;CCW7+qSQqb1yX@iJ(@LlN>wxb z_ZoytDf4u1ZZGXKea*%mE}T+T#UXl^Q{jJs{!{BSj1(q;#l@jgb4`DyB0*IdGJm5Ub%b?Y)LAe=4Qd)~s=?>e*#%_f`V;t_VJU%6MU+y!Ch3LW;wW zR*ueO8&;op4>M<=x3cX>>Ejf~j&euvW^=hm$~^Q++XZzdl+=_Smsgd!f9@!YoRzg|641hzJK(+ zPLalNT)=++i3;b%OL~7fU?ALhy15|CxZqs5zy14HzUsF^a)#fv!ixIyUuB@>rq|+7 z-N!mnr}NV-%29>76~7LEv6&(Is%BJ)$t^iCG1bSSwtq&GdM83x|Imxc`>3XCJddK7I6IF&tIrIiB9kN`=hEi(I$OyfuxF zXV-wuto1py2ODtiMpKU5_zak^``gKNI%d3grpoT1j#F$@U+gBKRWVA(P97FMinz#f zPs?q4p4JbCID*n(xzBS*lXf&{CM6KNy8h5Dyv(yC!`Vs4NSNYkK8D=_uhRm9J>^G8 z#&dAicHh-_^XC5N>qB+!;ko?^_{~jb4&Ar&G>RBrzJ&Xyr$n{>^eSiE|M}*n8t_}F zPA2Hk7>$%uuI;`hPJdRsG*aK~BjogJwm_S@ElslIx-`xjwxwqDokAUHLXk5|3;mXR z>v2T}4NP_Jo85Ez!Wr{R6%U~c)Z_azL0M{LKN~itA5+#~&j{_p0Z{SxD-zGkU7~1Z zWpO?`<3nZUxwp^CZUvR@nDp&))(6B;2^%O57I;E$n=-KcJ&w9=W+9=%Y-#Mnaa0TW z9&U2bqgJ8fYk=5WwBaMgNx%Q8N))ttsfktNtf_mR#>U3I8@V-(z~I#m0fEs^t849g z8+=QXd&_*ArhPx{-D*hut47Fgm{SeBne1Ke^8B+ZbI;DF#r{G2oxmEq$@Ch%y7+@t z3Xebg)K79NJU9Do4jh(JCo0Kr*j(DH4x7vf7qPFftdM9ipHxma0ovz?@89P72Sz2=re6xHjeLQm2>&@0i{hXP*W{k0r0F+1U2tJtZ{YSoU036zOLtceTQd7O`z zBgPDD2W-wBPx?5sbXk2fzoGB!=J~Sy?d5iV-29EF3o&g1PLi1iI7|2Y za*dWt7DC;ewVLJrpZ2ahp6dVmvlQuW^o zy-F~$ww<{FDpBXUTDsl#z?Br@C%u+)S6}gCDsHa9H#F*Ub*ErKrJC`&OKX*kqjft4 z^*UCi+oa%Z<@+Dy0xS(HiWcP(h6!!D!rB6PmPzcT6j?^=S8#LPxnEY?cnsgWY--o6 zbauZVb($6n6L+y#pA>go?~_paOt`jqS~NqYKUZW}W|!yQ{>st5p1~v4IaxF@gAVwq zS)doP2J{}mx^t85%?>Iw2I|@}uL1{Ih+`6A+CCO#z&ru)UIF^*I&sHH-I+#=d zJ zdFQe*@+>-7uHSjWOXO~903;m|SUaO1Hf?^o>3aHpzItn9s#2K_os%NCnY5bGPfs?j znh_GGCnH_(n$6<2eM?;HKF;JZdJmFRdcGVyc#!u;W8ACfPd2-2ubG;|{1vaqOV?#l zCzCv;|Dx84kV!?R_`w*=-^y7I`U{5jk5HlI2qWgqwHs=u^$CpmRY^fVUzfyOblV6 zlE?<=4qd%3-czW$W!%V17^zQG?|N%AHV`?bS`*wquWz(C)6ecXJHjFB^5LhD4rOYy z2hzBqYPz0D_>BNd>1J>bM}?is`l_%*(L>xV4htkI29MrLt`29NU}kl7$Jg$snr2Q) z59icDr8=|+1se%0=j%uqW>f8!2|sYU`dguGMz5%0vn*nQr^R5^J}c|e(N|elzImlv zCKXus8kMhpk1B7ooU=^m62nhzmb^78)4gT7ptLaEgU3E-mOZ{SW^$v%wYVWxLLY_@ zjp5L~cfYka>OC&`Vt;#tqAZ@LrBAX{iHaQWn58>oa*d}ermU?#Fb)dxLb~j6vEfOD zjfrCV`kf2Ses@nw;*LbC_#Dr2#l6FZ~5I@N>WP> z_a^i*+Glkfuk{hXN9b@7z@+GO%=I6nwi*{OXmJ>}<2ZKSEF`CUMH$A zZSQ5|k2+0Gu7F=ZkTkJpEj*Ay$uJ=G((q_~vV6bMbaQqKV-~yUf`0qudDqo^YfGjB zikDDie6-A>r%0alkRyfr{+5@E`}ocsm%f$1Hs8(_Z=5xD?2tC%iY<=|AP;Fd-qj$F z!4-Qk_J*7~Jql<+D|gcAhnL;$^T+et!dUqXcJITCm!FvaRQCcPBle5CO$eYF>&Mb77bPkLQ zhM#a;zU=8IIp{JjJf@0l=D{H~0#O!T>u zS}O9vQ90q)f=cu&zI#IxIv9gvH)ea%5=7gBQO%$+(k}$JmjWL)p8>2BrIoc9L(`fC zAu6y)%NqhvrGvQSXUyFR&Epej-MqEM{JJohEw65$BNIR87nB%k>Rg%wIC>sEqgmpXMU7=1T|clL|IjO5CO1XNp&}k? z4cBIiCiqcWxl7U#lCM6i583r`P{NLON!wSqfJonGTksX;gCxhTjz*rjvkXaC`7<9&Mhr$En%R&sI%atdLFLouYFjs7Q+_|aq8 zb7tLN&l5j7-ckqIVToXu^o~NZcV!~4;woCyCcCqzbo?AIo{;oVWaJNoeu)Urc0;d) zZ~T8y&(CED#M9@n$)YS2o(b-7L{dUQELdd`udSV?yP3fI6Mmmab6nK-)XkfYfqEvD zvE8QR3g9_kImm3F4z0aYjr5ljS$r>?A_TfHil`P!|M&KWt7_YDfa#P(4f@mn(sw?o_BVCs^?h_UBKV@+J5KI*$`v> z7L)u34=7iKgPUlsL)?{@Tz&NSjReBmrdWB@ggyz~DtuwV_8FuFVqT~{0CdQDsES!j z9eKF-crB#s&`!gbd|gzSAD2euO5h6qpK zlN}SzOTDMLN-clfS!}tyUnvUPW)UlzRmvi-PN^viMvjWUhiZq&q_Y!6MzcQt$8t7` z5cIfAdI~}t^zz_-%X)Zg(t5^f+x51sz?ReJ9g0~zHx0Kqt3Xo(rr+S;8l;(iQ^tCN z=I9@LDDqv;nPV@?6SXC?u0W#!8hY5Be_2Y)urx+ydo2yK;W{n&Mn5k!BL+%6eU2#` zQ)+6%XDNvH9NY0(`*n$jBz4_>Awi>(z$fLgG42O4ycsu`jsJi4f3ukr(p4D(`&n3x(+X zF0%t6)Rw#??(uPPkR`J0Zbj%(d!5GDHNka$8*{G>%Dft1E5h8nd7X<;_QQcj>{3Pt z9!@F6dT|O+uBn2M4O%?-D!1b>XtxxcGW@G3KqX!U)Y4Z{k&{7YwILsVa++2Ll{{LB zc8Xnjd#@0H5|v(E3K)rE^z!f`#6805YWc^h08@_(QVyXo_jP@u94ze*Hf6 z-VwkUJ?}Im8-3w+ve?IYX~<|qUUZxMhD@0mDAVUgV&bNW>6r-LqbC4TTogVO8?8)7 zIvb~ZL{7L=#of)g7GMdmIH7=-Z`&M)HY2`RbH^EZu;&C-KmYr@uXg_)s52(WjZ^>ho=F8#=dT_Hrif zM83Cf=b)vf4TW(oN*Wp=@(K!daHZk{$ok^{DqDtnrxf4yl{UaUwZ`SAzcqZX`+cBn z3LkEXF(mF0xmyOF05;%A77|UlNxGA>W&HA5J65!n>m&H^^wUtiC;d#T&~~gj(O7zO z&4qUFUcB|&Njrj^dQ+Rh*QMx#l)Fl}F<;o00TcsK1Y#JP$#q;{+$&yRtk9u7iR;pQrUoX*1CwV`U*01zd778V z7wTW2Jz*3sduJ#qE(VFO(Yerx^SMWS~!CUCD;O2tr_rIyGq}}>Z zT9@yt&!Aa51j=<4uV0S>gQT$k(}3sriRaDoT2JZh{>+i1JHpR9gDZGZTdVjaI5+~T zg*lhq2nWii#4E~%LS?~qU?&oP=>E3anB3XAq!yPK(B+U{n=EwBID8R8!Nlnnfa^m* z2>{-gTXA)LagZ=tS4kStNIZh4Dg*{S0|wcrhFu~tD2`R5RNnf@)2Ho-b?=E=AdfAy z=31{KDg6EYXL}th>Y(SRl=;`7gN=xKLB=?=i2|zNl~mJC&$K3)ZrkPDv$T77M+pux zSfwt4RZ1`lgie*ePa`K*ws=-&bgVJf>&DzzQv{PpMo*Uf|dlq8P(J z=YEIVTk9$PbYF41Yc2Gppf7!%{B94W$`Rlre{U`&*tuz5aBs$Y&|s>5yL`R0lAUj& z-Q8N1$}o?AnWnf+joTqlQ{6c7I503w)E-w0$*>U+z9B%ss&KEy(;OkY} z!u^|`5@{2xOa%A*I4vlN)p;(e-(n$Kd5mIGTzk?}d-5>TN>HhY=RG01v@h}$(A5>e z$fu`R9dr!;^Q~I^#V0EsHX4NvO)(+}z~$s77c{Qbf67KSzn< z4}K`!Dy-SCBS^+H2M9{xG4#nDg0j0Iwn76?J;yOGGF$o%1$(-Dt=>E1ztLzuH`bU; z!H2&}cxwm~c|2$dPYmZxD#;c-@;=z$8;7V>N5C;&8N=G^*A=~c-B8l@kiaHgU=vmg zag)R*cg8m?eTr)FD>noHmUA}ug0p`-2gZkwjBK}%lDwRDJzA8(A1c?r6*|P&&1NV` z&8hUSMEBW35P`EvK=kzk^6D$Yf`y`0AxDCQbAo9RzZsE!fOKl^6!j5VA>D&Cce(-C z!hvoeC8@Hnc(>Vn)UWSS?mq?;sLKzGZ8RJwC?gjrqgu4}8s4xbDavQ%4kZ8eyQXy)vEI z`T=uNv>Ar={nbPwtqDZN-kww-S)BMv@UGFuo89J{8-F~+!P~(pc#wEm{ftQ&atnKV zmr%0a{wE~dzl5Rd%|^d;{)$DLe0XGr>!{O&*4E1sEQGU91Bn&4uTDQgI(sa|$4Ad2 z0-mxlbVfo?dAeRfuH-LyS}ub(Aq3~`8Vge#yVH2n330#Sd(1K$_osUcjp2DJj3&vb z?BaQ^j&oelQkQHmOn6^Z1O0Qs1!)P8^e>AlSphW zIU8INzD~wf37|{!tW&-?+d!`C%4tP7W%GgGM)AF`rQrf@Sc3w0g}+`gH%{T+bOfXxD#Ot;PSj$N5g zgA7Ear)uo@-S*${05^3z0Do}%Shjx}ItqSOjfzMB$*=nRp%(t+AELqSHERf3WRbyj zXq%JUq9O~Og5)uWMXE_Fk$$>x1&9#TQhh}debP_5K>gb{g4F-CrXUaz9Bo6lgFo9l z{zHVmy<;$hv@Q+WT4(>4coga|P|srnSbhJyqf-zNVVW9qiC}5}`&9oSnem&7e_8l1 y3;)%^|5mntweY{vYX2Hi;tBj~NdJHD!X+8)Oe*u?O)6G0_@|_xCXcyfa_>J>IWzwN literal 0 HcmV?d00001 diff --git a/docs/Building_Diagrams/images/Call_Activity1.png b/docs/Building_Diagrams/images/Call_Activity1.png new file mode 100644 index 0000000000000000000000000000000000000000..5cef5520a70ab0b9369ac108e521691a6b057890 GIT binary patch literal 133602 zcmeFZ1y@|z)-DXeAwYtJ0KvT=K+xb2+zWRL?!g@bBoLe+!6|~fI{`v)cXxMp3i&qO z={|kWci;Q|fvz!X)MD?YbIE+>Gv^`*EGLeRN`MLj1A{IpA)*KagQyGx^CTG=5qOe% zqh=2SgPLzHEDV+u7A6JT+nShL8N9_=7X1XV;*m1H{f^V9btooy^1{6E4ge`FzjqQl4}{0kKY z<;fSB+2-Cr517Q#n%6WIchH9i73C|xr^GN|;j*Yw*Cz)pg4#!-{-|d^vc7K`!PlB7iX4`Sbt4H*#@)~Do54T7P7Xc~5SMlMMr(i1 zW=a`|Fwj=I?w!Y=ywEJTx5-{nT;h3{hwn38@`YlsA146XdpVG@tw(CoKi2o<+hqry zE3~goq-&KbLHDGJl8)@eRVWxT2l>8ii4(?qxeyI?Fgpe}oOH$

o@AmBoA_#`c8KAkyU{RvN5R8r;*5bfxgs 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 FwX^iIyy>DX6gpfTdBrHMz7T_IF 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%0Ajc^&htzg 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 S@wFlN#Zr`0lPyGC^Zh^UBqBBd literal 0 HcmV?d00001 diff --git a/docs/Building_Diagrams/images/Script_task_update.png b/docs/Building_Diagrams/images/Script_task_update.png new file mode 100644 index 0000000000000000000000000000000000000000..7742e09e4c8859071508aaabdf07bd8138770c9f GIT binary patch literal 103865 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%0AkANPaJOY2%F~A>?J#xYwc*x6W#fHH21L3)cV8i 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

uGf27$FB4Q%k*xb$mJXk{s5?Tv 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 literal 0 HcmV?d00001 diff --git a/docs/Building_Diagrams/images/sub_process.png b/docs/Building_Diagrams/images/sub_process.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd66a5f3175b5231fd0e527e49ff3521066c88b GIT binary patch literal 135215 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%0DWB)jH2-Uoo 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 z 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 z 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 xBwEIF?o(aYq6)xJB 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 Tj8FsPA4^tJQ6gXb_QU@J1JW(= literal 0 HcmV?d00001 diff --git a/docs/Building_Diagrams/images/sub_process1.png b/docs/Building_Diagrams/images/sub_process1.png new file mode 100644 index 0000000000000000000000000000000000000000..e8d885af0246682e5e6a045e434275a317041a5e GIT binary patch literal 88355 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