ApiLogicServer 15.1.2__py3-none-any.whl → 15.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. api_logic_server_cli/api_logic_server.py +20 -16
  2. api_logic_server_cli/api_logic_server_info.yaml +3 -3
  3. api_logic_server_cli/cli.py +17 -2
  4. api_logic_server_cli/create_from_model/dbml.py +1 -1
  5. api_logic_server_cli/genai/genai.py +39 -28
  6. api_logic_server_cli/genai/genai_react_app.py +23 -1
  7. api_logic_server_cli/genai/genai_svcs.py +5 -3
  8. api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +164 -4
  9. api_logic_server_cli/prototypes/{manager/samples/basic_demo/.github/.copilot-instructions.md → base/.github/.copilot-instructionsZ.mdx} +84 -4
  10. api_logic_server_cli/prototypes/base/.vscode/launch.json +1 -1
  11. api_logic_server_cli/prototypes/base/api/system/api_utils.py +7 -3
  12. api_logic_server_cli/prototypes/base/config/config.py +1 -1
  13. api_logic_server_cli/prototypes/base/docs/training/readme_training.md +3 -0
  14. api_logic_server_cli/prototypes/base/docs/training/testing.md +779 -0
  15. api_logic_server_cli/prototypes/base/logic/declare_logic.py +4 -2
  16. api_logic_server_cli/prototypes/base/logic/logic_discovery/use_case.py +2 -0
  17. api_logic_server_cli/prototypes/base/test/api_logic_server_behave/AI-Generated-Tests-from-Rules.md +559 -0
  18. api_logic_server_cli/prototypes/base/test/api_logic_server_behave/behave_logic_report.py +46 -17
  19. api_logic_server_cli/prototypes/base/test/api_logic_server_behave/check_step_order.py +120 -0
  20. api_logic_server_cli/prototypes/base/test/api_logic_server_behave/features/steps/test_data_helpers.py +242 -0
  21. api_logic_server_cli/prototypes/base/test/api_logic_server_behave/features/steps/test_utils.py +5 -1
  22. api_logic_server_cli/prototypes/base/test/api_logic_server_behave/reports/Behave Logic Report Intro micro.md +15 -0
  23. api_logic_server_cli/prototypes/base/test/api_logic_server_behave/reports/Behave Logic Report Intro.md +10 -66
  24. api_logic_server_cli/prototypes/base/test/readme_test.md +72 -4
  25. api_logic_server_cli/prototypes/basic_demo/iteration/api/api_discovery/order_b2b.py +22 -18
  26. api_logic_server_cli/prototypes/basic_demo/ui/my-react-app-cards/README.md +3 -1
  27. api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +30 -9
  28. api_logic_server_cli/prototypes/manager/.github/sync-to-dev-src.sh +42 -0
  29. api_logic_server_cli/prototypes/manager/.vscode/launch.json +30 -30
  30. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.github/.copilot-instructions.md +741 -0
  31. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/db.dbml +43 -0
  32. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/readme_training.md +3 -0
  33. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/testing.md +593 -0
  34. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/AI-Generated-Tests-from-Rules.md +554 -0
  35. api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/behave_logic_report.py +35 -9
  36. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/order_processing.feature +72 -0
  37. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/about_steps.py +16 -0
  38. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/order_processing_steps.py +553 -0
  39. api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/features/steps/test_utils.py +5 -1
  40. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/behave.log +79 -0
  41. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Add_Item_Exceeding_Credit.log +8 -0
  42. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Assign_Product_to_Item.log +26 -0
  43. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/B2B_Order_-_10_Gadget.log +46 -0
  44. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/B2B_Order_-_10_carbon_neu.log +41 -0
  45. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/B2B_Order_-_1_Green.log +42 -0
  46. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/B2B_Order_-_5_Widget.log +42 -0
  47. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/B2B_Order_Placement.log +2 -0
  48. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Balance_Check.log +2 -0
  49. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Carbon_Neutral_B2B_Order.log +52 -0
  50. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Carbon_Neutral_Discount_A.log +42 -0
  51. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Item_Product.log +25 -0
  52. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Item_Product_to_Ga.log +25 -0
  53. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Order_Customer_Adj.log +19 -0
  54. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Order_Customer_to_.log +19 -0
  55. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Product_Updates_Un.log +25 -0
  56. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Multi-Item_Order.log +79 -0
  57. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Order_for_Constrai.log +2 -0
  58. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Order_for_FK_Chang.log +55 -0
  59. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Order_for_Shipping.log +55 -0
  60. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Shipped_Order.log +54 -0
  61. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Test_Customer.log +13 -0
  62. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Test_Order.log +55 -0
  63. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Credit_Limit_Constraint_T.log +2 -0
  64. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Customer_Change.log +20 -0
  65. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Delete_First_Item.log +20 -0
  66. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Delete_Item_Reduces_Order.log +20 -0
  67. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Exceed_Credit_Limit_Rejec.log +46 -0
  68. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Good_Order_Placed_via_B2B.log +42 -0
  69. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Deletion.log +20 -0
  70. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Quantity_Update.log +23 -0
  71. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Quantity_Update_Reca.log +23 -0
  72. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Quantity_Update_to_1.log +23 -0
  73. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Order_Customer_Change.log +19 -0
  74. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Order_Shipping.log +19 -0
  75. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Order_Unshipping.log +19 -0
  76. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Product_Change.log +26 -0
  77. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Product_Unit_Price_Copied.log +42 -0
  78. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Diana_for_Constrain.log +53 -0
  79. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Item_for_Product_Ch.log +53 -0
  80. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Item_for_Unit_Price.log +30 -0
  81. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Order_-_10_Widget.log +41 -0
  82. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Order_-_2_Gadget.log +41 -0
  83. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Order_-_2_Widget.log +42 -0
  84. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Order_-_3_Widget_+_.log +57 -0
  85. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Order_-_3_Widget_an.log +12 -0
  86. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Order_-_5_Gadget.log +56 -0
  87. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Order_-_5_Widget.log +41 -0
  88. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Order_for_Alice.log +53 -0
  89. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Order_for_Bob.log +53 -0
  90. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Shipped_Order.log +52 -0
  91. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Unshipped_Order.log +53 -0
  92. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Ship_Order.log +18 -0
  93. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Ship_Order_Excludes_from_.log +18 -0
  94. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/System_Ready.log +3 -0
  95. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Test_Order_Setup_-_1_Item.log +53 -0
  96. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Test_Order_Setup_-_2_Item.log +76 -0
  97. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Transaction_Processing.log +19 -0
  98. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Unship_Order.log +18 -0
  99. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Unship_Order_Includes_in_.log +18 -0
  100. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Verify_Charlie_Balance.log +1 -0
  101. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Verify_Customer_Balance.log +11 -0
  102. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Verify_Diana_Balance.log +11 -0
  103. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Verify_Item_Amount.log +1 -0
  104. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Verify_Order_Total.log +1 -0
  105. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Verify_Unit_Price_Copy.log +1 -0
  106. api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report.md +303 -0
  107. api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/readme_test.md +72 -4
  108. api_logic_server_cli/prototypes/manager/samples/readme_samples.md +1 -1
  109. api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/copilot-dev-context.md +150 -0
  110. api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/sqlite_inserts_model_test_hints_with_relns.prompt +94 -0
  111. api_logic_server_cli/prototypes/nw/test/readme_test_nw.md +333 -92
  112. apilogicserver-15.2.0.dist-info/METADATA +506 -0
  113. {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/RECORD +615 -535
  114. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/db.dbml +0 -14
  115. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/features/steps/about.py +0 -20
  116. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/logs/behave.log +0 -0
  117. apilogicserver-15.1.2.dist-info/METADATA +0 -169
  118. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.devcontainer-option/For_VSCode.dockerfile +0 -0
  119. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.devcontainer-option/devcontainer.json +0 -0
  120. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.devcontainer-option/readme.md +0 -0
  121. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.devcontainer-option/setup.sh +0 -0
  122. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.env +0 -0
  123. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.gitignore +0 -0
  124. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/ApiLogicServer.xml +0 -0
  125. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/Report_Behave_Logic.xml +0 -0
  126. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/Run_Behave.xml +0 -0
  127. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/Windows_Run_Behave.xml +0 -0
  128. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/run___No_Security.xml +0 -0
  129. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/run_docker.xml +0 -0
  130. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.vscode/launch.json +0 -0
  131. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.vscode/settings.json +0 -0
  132. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.vscode/venv_init.sh +0 -0
  133. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/_config.yml +0 -0
  134. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/_layouts/redirect.html +0 -0
  135. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/__init__.py +0 -0
  136. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/auto_discovery.py +0 -0
  137. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/mcp_discovery.py +0 -0
  138. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/mcp_expose_api_models.py +0 -0
  139. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/new_service.py +0 -0
  140. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/newer_service.py +0 -0
  141. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/ontimize_api.py +0 -0
  142. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/order_b2b_service.py +0 -0
  143. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/system.py +0 -0
  144. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/customize_api.py +0 -0
  145. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/expose_api_models.py +0 -0
  146. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/json_encoder.py +0 -0
  147. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/readme_customize_api.md +0 -0
  148. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/api_utils.py +0 -0
  149. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/custom_endpoint.py +0 -0
  150. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/expression_parser.py +0 -0
  151. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/gen_csv_report.py +0 -0
  152. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/gen_pdf_report.py +0 -0
  153. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/opt_locking/opt_locking.py +0 -0
  154. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/opt_locking/readme.md +0 -0
  155. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api_logic_server_run.py +0 -0
  156. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/__init__.py +0 -0
  157. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/activate_logicbank.py +0 -0
  158. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/config.py +0 -0
  159. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/default.env +0 -0
  160. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/logging-reduced.yml +0 -0
  161. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/logging.yml +0 -0
  162. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/mypy.ini +0 -0
  163. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/server_setup.py +0 -0
  164. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/api/api_discovery/openapi.py +0 -0
  165. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/config/default.env +0 -0
  166. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/database/db.sqlite +0 -0
  167. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/database/models.py +0 -0
  168. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/docs/mcp_learning/mcp_discovery.json +0 -0
  169. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/logic/cocktail-napkin.jpg +0 -0
  170. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/logic/declare_logic.py +0 -0
  171. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/logic/logic_discovery/email_request.py +0 -0
  172. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/logic/logic_discovery/simple_constraints.py +0 -0
  173. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/security/declare_security.py +0 -0
  174. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/admin/admin.yaml +0 -0
  175. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/admin/home.js +0 -0
  176. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/README.md +0 -0
  177. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/README_create_react_app.md +0 -0
  178. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/package-lock.json +0 -0
  179. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/package.json +0 -0
  180. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/favicon.ico +0 -0
  181. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/index.html +0 -0
  182. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/logo192.png +0 -0
  183. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/logo512.png +0 -0
  184. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/manifest.json +0 -0
  185. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/robots.txt +0 -0
  186. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/App.css +0 -0
  187. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/App.js +0 -0
  188. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/App.test.js +0 -0
  189. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Config-reference.js +0 -0
  190. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Config.js +0 -0
  191. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Customer-reference.js +0 -0
  192. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Customer.js +0 -0
  193. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Item.js +0 -0
  194. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Order.js +0 -0
  195. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Product.js +0 -0
  196. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/SysEmail.js +0 -0
  197. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/SysMcp.js +0 -0
  198. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/app_loader.js +0 -0
  199. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/index.css +0 -0
  200. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/index.js +0 -0
  201. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/logo.svg +0 -0
  202. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/.eslintrc +0 -0
  203. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/.yarnrc.yml +0 -0
  204. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/default-settings.js +0 -0
  205. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/default-settings.ts +0 -0
  206. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/errors.js +0 -0
  207. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/errors.ts +0 -0
  208. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/index.test.tsx +0 -0
  209. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/index.tsx +0 -0
  210. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/ra-jsonapi-client.js +0 -0
  211. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/ra-jsonapi-client.ts +0 -0
  212. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.js +0 -0
  213. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.ts +0 -0
  214. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/styles.module.css +0 -0
  215. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/reportWebVitals.js +0 -0
  216. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/setupTests.js +0 -0
  217. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/__init__.py +0 -0
  218. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/alembic_run.py +0 -0
  219. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/env.py +0 -0
  220. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/readme_alembic.md +0 -0
  221. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/script.py.mako +0 -0
  222. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/versions/ae6a5c2fdc47_autogenerated.py +0 -0
  223. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/versions/readme.md +0 -0
  224. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic.ini +0 -0
  225. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/authentication_db.sqlite +0 -0
  226. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/bind_dbs.py +0 -0
  227. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/customize_models.py +0 -0
  228. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/database_discovery/authentication_models.py +0 -0
  229. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/database_discovery/auto_discovery.py +0 -0
  230. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/db.sqlite +0 -0
  231. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/db_debug/db_debug.py +0 -0
  232. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/mcp_db.sqlite +0 -0
  233. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/mcp_models.py +0 -0
  234. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/models.py +0 -0
  235. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/system/SAFRSBaseX.py +0 -0
  236. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/test_data/alp_init.py +0 -0
  237. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/test_data/readme.md +0 -0
  238. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/test_data/response2code.py +0 -0
  239. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/test_data/test_data_preamble.py +0 -0
  240. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/auth-db/authdb_mysql.Dockerfile +0 -0
  241. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/auth-db/authdb_mysql.sql +0 -0
  242. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/auth-db/authdb_postgres.sql +0 -0
  243. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-compose-dev-azure/azure-deploy.sh +0 -0
  244. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-compose-dev-local/docker-compose-dev-local.yml +0 -0
  245. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-compose-dev-local/docker-compose.sh +0 -0
  246. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-image/build_image.dockerfile +0 -0
  247. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-image/build_image.sh +0 -0
  248. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-image/env.list +0 -0
  249. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-image/run_image.sh +0 -0
  250. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-standard-image/docker-compose-standard-image.yml +0 -0
  251. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-standard-image/env.list +0 -0
  252. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/h2/keycloakdb.mv.db +0 -0
  253. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/h2/keycloakdb.trace.db +0 -0
  254. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/import/kcals-realm.json +0 -0
  255. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/import/kcals-users-0.json +0 -0
  256. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/import/master-realm.json +0 -0
  257. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/import/master-users-0.json +0 -0
  258. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/tmp/kc-gzip-cache/nnbna/js/keycloak.js.gz +0 -0
  259. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/docker-compose-dev-network.yml +0 -0
  260. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/docker-compose-nginx.yml +0 -0
  261. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/docker-compose.yml +0 -0
  262. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/import/kcals-realm.json +0 -0
  263. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/import/kcals-users-0.json +0 -0
  264. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/import/master-realm.json +0 -0
  265. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/import/master-users-0.json +0 -0
  266. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/nginx/cert.pem +0 -0
  267. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/nginx/key.pem +0 -0
  268. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/nginx/nginx.conf +0 -0
  269. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/startup_log_nginx.txt +0 -0
  270. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/startup_log_no_nginx.txt +0 -0
  271. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/unused/auth_provider.py +0 -0
  272. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/unused/unused-docker-compose-keycloak.sh +0 -0
  273. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/python-anywhere/python_anywhere_wsgi.py +0 -0
  274. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/readme-devops.md +0 -0
  275. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/graphics/readme.md +0 -0
  276. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/logic/readme.md +0 -0
  277. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/logic_suggestions/readme_logic_suggestions.md +0 -0
  278. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/mcp_learning/mcp.prompt +0 -0
  279. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/mcp_learning/mcp_schema.json +0 -0
  280. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/models-not-code.png +0 -0
  281. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/runtime engines.png +0 -0
  282. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/system-creation-vibe.md +0 -0
  283. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/admin_app_1_context.prompt.md +0 -0
  284. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/admin_app_2_functionality.prompt.md +0 -0
  285. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/admin_app_3_architecture.prompt.md +0 -0
  286. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/logic_bank_api.prompt +0 -0
  287. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/logic_example.py +0 -0
  288. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/react_map.prompt.md +0 -0
  289. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/react_tree.prompt.md +0 -0
  290. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/kafka/kafka_consumer.py +0 -0
  291. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/kafka/kafka_producer.py +0 -0
  292. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/kafka/kafka_readme.md +0 -0
  293. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_context_results.txt +0 -0
  294. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_discovery_response.json +0 -0
  295. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_request.prompt +0 -0
  296. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_schema.txt +0 -0
  297. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_tool_context_response.json +0 -0
  298. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_tool_context_response_get.json +0 -0
  299. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/mcp_client_executor.py +0 -0
  300. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/mcp_server_discovery.json +0 -0
  301. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/readme-mcp.md +0 -0
  302. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/n8n/N8N_WebHook_from_ApiLogicServer.json +0 -0
  303. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/n8n/n8n_producer.py +0 -0
  304. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/n8n/n8n_readme.md +0 -0
  305. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/row_dict_maps/OrderB2BMapper.py +0 -0
  306. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/row_dict_maps/row_dict_maps_readme.md +0 -0
  307. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/system/FlaskKafka.py +0 -0
  308. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/system/RowDictMapper.py +0 -0
  309. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/api/api_discovery/order_b2b.py +0 -0
  310. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/database/db.sqlite +0 -0
  311. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/docs/er_diagram.png +0 -0
  312. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/integration/row_dict_maps/OrderB2B.py +0 -0
  313. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/integration/row_dict_maps/OrderShipping.py +0 -0
  314. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/logic/declare_logic.py +0 -0
  315. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/ui/admin/admin.yaml +0 -0
  316. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/declarative-vs-procedural-comparison.html +0 -0
  317. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/declare_logic.py +0 -0
  318. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/load_verify_rules.py +0 -0
  319. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/app_integration.py +0 -0
  320. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/auto_discovery.py +0 -0
  321. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/check_credit.py +0 -0
  322. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/mcp_client_executor_request.py +0 -0
  323. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/readme_logic_discovery.md +0 -0
  324. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/use_case.py +0 -0
  325. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/procedural/credit_service.py +0 -0
  326. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/procedural/declarative-vs-procedural-comparison.md +0 -0
  327. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/procedural/declarative-vs-procedural-comparison.png +0 -0
  328. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/readme_logic.md +0 -0
  329. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/readme.md +0 -0
  330. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/readme_project.md +0 -0
  331. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/readme_standard.md +0 -0
  332. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/readme_vibe.md +0 -0
  333. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/requirements.txt +0 -0
  334. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/run.ps1 +0 -0
  335. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/run.sh +0 -0
  336. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/__init__.py +0 -0
  337. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/__init__.py +0 -0
  338. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/abstract_authentication_provider.py +0 -0
  339. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/keycloak/auth_provider.py +0 -0
  340. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/memory/auth_provider.py +0 -0
  341. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/memory/auth_provider_no_swagger.py +0 -0
  342. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/sql/auth_provider.py +0 -0
  343. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/declare_security.py +0 -0
  344. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/readme_security.md +0 -0
  345. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/system/authentication.py +0 -0
  346. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/system/authorization.py +0 -0
  347. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/system/custom_swagger.json +0 -0
  348. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/__init__.py +0 -0
  349. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/__init__.py +0 -0
  350. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/behave_run.py +0 -0
  351. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/features/about.feature +0 -0
  352. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/reports/Behave Logic Report Intro micro.md +0 -0
  353. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/reports/Behave Logic Report Intro.md +0 -0
  354. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/reports/Behave Logic Report Sample.md +0 -0
  355. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/basic/server_test.py +0 -0
  356. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/__init__.py +0 -0
  357. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/admin.yaml +0 -0
  358. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/admin_loader.py +0 -0
  359. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/authentication_admin.yaml +0 -0
  360. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/home.js +0 -0
  361. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/mcp_admin.yaml +0 -0
  362. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.browserslistrc +0 -0
  363. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.dockerignore +0 -0
  364. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.editorconfig +0 -0
  365. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.eslintrc.json +0 -0
  366. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.gitignore +0 -0
  367. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/README.md +0 -0
  368. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/angular.json +0 -0
  369. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/app_model.yaml +0 -0
  370. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/docker-compose-ontimize.yml +0 -0
  371. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/e2e/protractor.conf.js +0 -0
  372. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/e2e/src/app.e2e-spec.ts +0 -0
  373. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/e2e/src/app.po.ts +0 -0
  374. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/e2e/tsconfig.json +0 -0
  375. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/karma.conf.js +0 -0
  376. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/nginx/nginx.conf +0 -0
  377. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/ngsw-config.json +0 -0
  378. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/package-lock.json +0 -0
  379. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/package.json +0 -0
  380. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app-routing.module.ts +0 -0
  381. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.component.html +0 -0
  382. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.component.scss +0 -0
  383. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.component.spec.ts +0 -0
  384. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.component.ts +0 -0
  385. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.config.ts +0 -0
  386. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.module.ts +0 -0
  387. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login-routing.module.ts +0 -0
  388. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.component.html +0 -0
  389. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.component.scss +0 -0
  390. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.component.ts +0 -0
  391. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.module.ts +0 -0
  392. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.theme.scss +0 -0
  393. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/Customer-routing.module.ts +0 -0
  394. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/Customer.module.ts +0 -0
  395. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/detail/Customer-detail.component.html +0 -0
  396. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/detail/Customer-detail.component.scss +0 -0
  397. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/detail/Customer-detail.component.ts +0 -0
  398. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/home/Customer-home.component.html +0 -0
  399. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/home/Customer-home.component.scss +0 -0
  400. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/home/Customer-home.component.ts +0 -0
  401. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/new/Customer-new.component.html +0 -0
  402. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/new/Customer-new.component.scss +0 -0
  403. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/new/Customer-new.component.ts +0 -0
  404. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/Item-routing.module.ts +0 -0
  405. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/Item.module.ts +0 -0
  406. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/detail/Item-detail.component.html +0 -0
  407. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/detail/Item-detail.component.scss +0 -0
  408. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/detail/Item-detail.component.ts +0 -0
  409. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/home/Item-home.component.html +0 -0
  410. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/home/Item-home.component.scss +0 -0
  411. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/home/Item-home.component.ts +0 -0
  412. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/new/Item-new.component.html +0 -0
  413. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/new/Item-new.component.scss +0 -0
  414. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/new/Item-new.component.ts +0 -0
  415. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/Order-routing.module.ts +0 -0
  416. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/Order.module.ts +0 -0
  417. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/detail/Order-detail.component.html +0 -0
  418. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/detail/Order-detail.component.scss +0 -0
  419. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/detail/Order-detail.component.ts +0 -0
  420. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/home/Order-home.component.html +0 -0
  421. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/home/Order-home.component.scss +0 -0
  422. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/home/Order-home.component.ts +0 -0
  423. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/new/Order-new.component.html +0 -0
  424. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/new/Order-new.component.scss +0 -0
  425. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/new/Order-new.component.ts +0 -0
  426. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/Product-routing.module.ts +0 -0
  427. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/Product.module.ts +0 -0
  428. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/detail/Product-detail.component.html +0 -0
  429. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/detail/Product-detail.component.scss +0 -0
  430. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/detail/Product-detail.component.ts +0 -0
  431. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/home/Product-home.component.html +0 -0
  432. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/home/Product-home.component.scss +0 -0
  433. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/home/Product-home.component.ts +0 -0
  434. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/new/Product-new.component.html +0 -0
  435. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/new/Product-new.component.scss +0 -0
  436. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/new/Product-new.component.ts +0 -0
  437. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about-routing.module.ts +0 -0
  438. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.component.html +0 -0
  439. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.component.scss +0 -0
  440. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.component.ts +0 -0
  441. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.module.ts +0 -0
  442. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.theme.scss +0 -0
  443. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home-routing.module.ts +0 -0
  444. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home.component.html +0 -0
  445. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home.component.scss +0 -0
  446. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home.component.ts +0 -0
  447. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home.module.ts +0 -0
  448. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main-routing.module.ts +0 -0
  449. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main-theme.scss +0 -0
  450. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main.component.html +0 -0
  451. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main.component.scss +0 -0
  452. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main.component.ts +0 -0
  453. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main.module.ts +0 -0
  454. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings-routing.module.ts +0 -0
  455. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings.component.html +0 -0
  456. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings.component.scss +0 -0
  457. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings.component.ts +0 -0
  458. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings.module.ts +0 -0
  459. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Customer-card/Customer-card.component.html +0 -0
  460. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Customer-card/Customer-card.component.scss +0 -0
  461. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Customer-card/Customer-card.component.ts +0 -0
  462. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Item-card/Item-card.component.html +0 -0
  463. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Item-card/Item-card.component.scss +0 -0
  464. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Item-card/Item-card.component.ts +0 -0
  465. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Order-card/Order-card.component.html +0 -0
  466. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Order-card/Order-card.component.scss +0 -0
  467. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Order-card/Order-card.component.ts +0 -0
  468. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Product-card/Product-card.component.html +0 -0
  469. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Product-card/Product-card.component.scss +0 -0
  470. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/Product-card/Product-card.component.ts +0 -0
  471. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/app.menu.config.ts +0 -0
  472. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/app.services.config.ts +0 -0
  473. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/constant.ts +0 -0
  474. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/shared.module.ts +0 -0
  475. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/.gitkeep +0 -0
  476. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/css/app.scss +0 -0
  477. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/css/loader.css +0 -0
  478. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/i18n/en.json +0 -0
  479. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/i18n/es.json +0 -0
  480. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize128.png +0 -0
  481. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize16.png +0 -0
  482. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize256.png +0 -0
  483. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize32.png +0 -0
  484. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize48.png +0 -0
  485. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize64.png +0 -0
  486. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize72.png +0 -0
  487. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize96.png +0 -0
  488. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/github.png +0 -0
  489. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/login_bg.png +0 -0
  490. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/no-image-transparent.png +0 -0
  491. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/no-image.png +0 -0
  492. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/ontimize.png +0 -0
  493. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/ontimize_web_log.png +0 -0
  494. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/sidenav-closed.png +0 -0
  495. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/sidenav-closed.svg +0 -0
  496. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/sidenav-opened.png +0 -0
  497. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/sidenav-opened.svg +0 -0
  498. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/user_profile.png +0 -0
  499. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/js/domchange.js +0 -0
  500. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/js/keyboard.js +0 -0
  501. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/environments/environment.prod.ts +0 -0
  502. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/environments/environment.ts +0 -0
  503. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/favicon.ico +0 -0
  504. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/index.html +0 -0
  505. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/main.ts +0 -0
  506. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/manifest.webmanifest +0 -0
  507. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/polyfills.ts +0 -0
  508. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/styles.scss +0 -0
  509. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/test.ts +0 -0
  510. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/tsconfig.app.json +0 -0
  511. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/tsconfig.json +0 -0
  512. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/tsconfig.spec.json +0 -0
  513. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/andrew.jpg +0 -0
  514. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/anne.jpg +0 -0
  515. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/janet.jpg +0 -0
  516. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/laura.jpg +0 -0
  517. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/margaret.jpg +0 -0
  518. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/michael.jpg +0 -0
  519. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/nancy.jpg +0 -0
  520. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/robert.jpg +0 -0
  521. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/steven.jpg +0 -0
  522. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/beverages.gif +0 -0
  523. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/cereals.gif +0 -0
  524. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/condiments.gif +0 -0
  525. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/confections.gif +0 -0
  526. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/diary.gif +0 -0
  527. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/meat.gif +0 -0
  528. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/produce.gif +0 -0
  529. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/seafood.gif +0 -0
  530. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/README.md +0 -0
  531. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/README_create_react_app.md +0 -0
  532. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/package-lock.json +0 -0
  533. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/package.json +0 -0
  534. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/favicon.ico +0 -0
  535. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/index.html +0 -0
  536. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/logo192.png +0 -0
  537. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/logo512.png +0 -0
  538. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/manifest.json +0 -0
  539. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/robots.txt +0 -0
  540. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/App.css +0 -0
  541. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/App.js +0 -0
  542. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/App.test.js +0 -0
  543. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Config.js +0 -0
  544. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Customer.js +0 -0
  545. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Item.js +0 -0
  546. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Order.js +0 -0
  547. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Product.js +0 -0
  548. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/app_loader.js +0 -0
  549. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/index.css +0 -0
  550. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/index.js +0 -0
  551. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/logo.svg +0 -0
  552. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/.eslintrc +0 -0
  553. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/.yarnrc.yml +0 -0
  554. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/default-settings.js +0 -0
  555. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/default-settings.ts +0 -0
  556. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/errors.js +0 -0
  557. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/errors.ts +0 -0
  558. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/index.test.tsx +0 -0
  559. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/index.tsx +0 -0
  560. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/ra-jsonapi-client.js +0 -0
  561. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/ra-jsonapi-client.ts +0 -0
  562. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/resourceLookup.js +0 -0
  563. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/resourceLookup.ts +0 -0
  564. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/styles.module.css +0 -0
  565. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/reportWebVitals.js +0 -0
  566. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/setupTests.js +0 -0
  567. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/README.md +0 -0
  568. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/README_create_react_app.md +0 -0
  569. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/package-lock.json +0 -0
  570. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/package.json +0 -0
  571. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/product-cards.png +0 -0
  572. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/favicon.ico +0 -0
  573. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/index.html +0 -0
  574. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/logo192.png +0 -0
  575. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/logo512.png +0 -0
  576. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/manifest.json +0 -0
  577. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/robots.txt +0 -0
  578. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/App.css +0 -0
  579. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/App.js +0 -0
  580. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/App.test.js +0 -0
  581. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Config.js +0 -0
  582. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Customer.js +0 -0
  583. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Item.js +0 -0
  584. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Order.js +0 -0
  585. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Product.js +0 -0
  586. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/app_loader.js +0 -0
  587. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/index.css +0 -0
  588. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/index.js +0 -0
  589. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/logo.svg +0 -0
  590. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/.eslintrc +0 -0
  591. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/.yarnrc.yml +0 -0
  592. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/default-settings.js +0 -0
  593. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/default-settings.ts +0 -0
  594. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/errors.js +0 -0
  595. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/errors.ts +0 -0
  596. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/index.test.tsx +0 -0
  597. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/index.tsx +0 -0
  598. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/ra-jsonapi-client.js +0 -0
  599. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/ra-jsonapi-client.ts +0 -0
  600. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/resourceLookup.js +0 -0
  601. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/resourceLookup.ts +0 -0
  602. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/styles.module.css +0 -0
  603. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/reportWebVitals.js +0 -0
  604. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/setupTests.js +0 -0
  605. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/templates/bar_chart.jinja +0 -0
  606. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/templates/content.html +0 -0
  607. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/py.py +0 -0
  608. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/readme_venv.md +0 -0
  609. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/requirements-no-cli.txt +0 -0
  610. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/venv-linux.sh +0 -0
  611. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/venv.ps1 +0 -0
  612. /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/venv.sh +0 -0
  613. /api_logic_server_cli/prototypes/manager/system/{install-ApiLogicServer-dev → ApiLogicServer-Internal-Dev}/install-ApiLogicServer-dev.ps1 +0 -0
  614. /api_logic_server_cli/prototypes/manager/system/{install-ApiLogicServer-dev → ApiLogicServer-Internal-Dev}/install-ApiLogicServer-dev.sh +0 -0
  615. /api_logic_server_cli/prototypes/manager/system/{install-ApiLogicServer-dev → ApiLogicServer-Internal-Dev}/readme.md +0 -0
  616. {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/WHEEL +0 -0
  617. {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/entry_points.txt +0 -0
  618. {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/licenses/LICENSE +0 -0
  619. {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,779 @@
1
+ # AI Training: Creating Tests from Rules
2
+
3
+ > **🤖 For AI Assistants Only**
4
+ >
5
+ > This is internal training material for AI assistants (like GitHub Copilot) to generate Behave tests from declarative business rules.
6
+ >
7
+ > **👤 For Users:** See the [public documentation](https://apilogicserver.github.io/Docs/Behave-Creation/) which covers how to run tests, generate reports, and understand the testing framework.
8
+ >
9
+ > This document focuses on Phase 2 testing (using custom business APIs) and the critical patterns AI must follow to generate correct tests.
10
+
11
+ ## CRITICAL: Test Generation Workflow
12
+
13
+ **When user says "create tests from rules", follow this EXACT sequence:**
14
+
15
+ ```
16
+ Step 1a. Read database/models.py → Understand schema (IDs, aggregates, columns)
17
+ Step 1b. Read logic/declare_logic.py → Identify rules to test
18
+ Step 1c. Scan api/api_discovery/*.py → Discover custom APIs (PHASE 2!)
19
+ Step 2. Decide Phase 1 vs Phase 2 → Based on custom API existence
20
+ Step 3. Generate .feature files → Business language scenarios
21
+ Step 4. Implement steps/*.py → Using discovered APIs or CRUD
22
+ Step 4b. VERIFY STEP ORDERING → Multi-item BEFORE single-item (Rule #0.5!)
23
+ Step 5. SUGGEST how to run tests (DO NOT run automatically)
24
+ ```
25
+
26
+ **CRITICAL PRE-TEST CHECKLIST:**
27
+ - [ ] Step 1c completed? (Custom APIs discovered)
28
+ - [ ] **Step ordering verified?** (Most specific → Most general)
29
+ - [ ] @when patterns: carbon neutral > multi-item > single-item
30
+ - [ ] @given patterns: multi-item > single-item
31
+ - [ ] Use `grep -n "@when('.*with" steps/*.py` to verify order
32
+ - [ ] Test data uses timestamps? (Rule #0: Repeatability)
33
+ - [ ] Security config read? (SECURITY_ENABLED value)
34
+
35
+ **DO NOT skip Step 1c!** Custom APIs change the entire testing approach.
36
+
37
+ **DO NOT skip Step 4b!** Wrong step ordering causes silent failures with balance=0.
38
+
39
+ **DO NOT run tests automatically!** Instead, suggest this workflow:
40
+
41
+ ```bash
42
+ # 1. Start the server (in separate terminal or background)
43
+ python api_logic_server_run.py
44
+
45
+ # 2. Run the tests (in another terminal)
46
+ python test/api_logic_server_behave/behave_run.py
47
+ ```
48
+
49
+ **Why manual execution?** Tests require a running server. The AI cannot manage multiple terminals or background processes reliably.
50
+
51
+ ## Phase 1 vs Phase 2: The Core Decision
52
+
53
+ ### Phase 1: CRUD-Level Testing
54
+ - Direct API calls (POST, PATCH, DELETE)
55
+ - Granular rule testing (update qty, change FK, delete)
56
+ - Use when: No custom API exists
57
+
58
+ ### Phase 2: Business Transaction Testing
59
+ - Custom business APIs (api/api_discovery/)
60
+ - Complete transactions (Order + Items together)
61
+ - Business-friendly language ("Account" vs "customer_id")
62
+ - Use when: Custom API exists for the business object
63
+
64
+ **Decision Tree:**
65
+ ```
66
+ Custom API exists in api/api_discovery/?
67
+ ├─ YES → Phase 2 for CREATE, Phase 1 for UPDATE/DELETE
68
+ └─ NO → Phase 1 for everything
69
+ ```
70
+
71
+ ## Step 1c: Discover Custom APIs (Phase 2)
72
+
73
+ **CRITICAL:** Check for custom APIs BEFORE generating CRUD tests!
74
+
75
+ **Discovery Process:**
76
+ ```python
77
+ # 1. Scan api/api_discovery/*.py
78
+ # 2. Find classes with @jsonapi_rpc decorator
79
+ # 3. Extract: method name, endpoint, parameters, models created
80
+ # 4. Match to business rules (which rules does it test?)
81
+ ```
82
+
83
+ **CRITICAL - Custom API Calling Convention:**
84
+
85
+ Custom APIs require **BOTH** `"method"` and `"args"` in the `meta` object:
86
+
87
+ ```python
88
+ # ✅ CORRECT - Has both "method" and "args"
89
+ {
90
+ "meta": {
91
+ "method": "OrderB2B", # ← REQUIRED!
92
+ "args": {
93
+ "data": { ... }
94
+ }
95
+ }
96
+ }
97
+
98
+ # ❌ WRONG - Missing "method" field
99
+ {
100
+ "meta": {
101
+ "args": {
102
+ "data": { ... }
103
+ }
104
+ }
105
+ }
106
+ ```
107
+
108
+ Without the `"method"` field, the API call will fail with a 500 error.
109
+
110
+ **Example Discovery - OrderB2B:**
111
+ ```python
112
+ # api/api_discovery/order_b2b_service.py
113
+ class OrderB2BEndPoint(safrs.JABase):
114
+ @jsonapi_rpc(http_methods=["POST"])
115
+ def OrderB2B(self, *args, **kwargs):
116
+ """
117
+ Creates B2B orders from external partner systems.
118
+
119
+ Parameters:
120
+ Account: str - Customer name (not ID!)
121
+ Notes: str
122
+ Items: list - [{Name, QuantityOrdered}]
123
+ """
124
+ ```
125
+
126
+ **Discovery Result:**
127
+ ```python
128
+ {
129
+ "order_b2b_service": {
130
+ "endpoint": "/api/OrderB2BEndPoint/OrderB2B",
131
+ "parameters": {
132
+ "Account": "Customer name",
133
+ "Items": [{"Name": "Product name", "QuantityOrdered": int}]
134
+ },
135
+ "creates": ["Order", "Item"],
136
+ "tests_rules": [
137
+ "Customer.Balance = sum(Order.AmountTotal)",
138
+ "Order.AmountTotal = sum(Item.Amount)",
139
+ "Customer.Balance <= CreditLimit"
140
+ ]
141
+ }
142
+ }
143
+ ```
144
+
145
+ **Using Discovered API:**
146
+ ```python
147
+ # Phase 2: CREATE using custom API
148
+ @when('B2B order placed for "{customer_name}" with items')
149
+ def step_impl(context):
150
+ add_order_uri = 'http://localhost:5656/api/OrderB2BEndPoint/OrderB2B'
151
+ add_order_args = {
152
+ "meta": {"method": "OrderB2B", "args": {"data": {
153
+ "Account": customer_name, # Business language!
154
+ "Items": [{"Name": "Widget", "QuantityOrdered": 5}]
155
+ }}}
156
+ }
157
+ r = requests.post(url=add_order_uri, json=add_order_args)
158
+
159
+ # Phase 1: UPDATE using CRUD (granular testing)
160
+ @when('Item quantity changed to {qty:d}')
161
+ def step_impl(context, qty):
162
+ patch_uri = f'http://localhost:5656/api/Item/{item_id}/'
163
+ patch_data = {"data": {"attributes": {"quantity": qty}}}
164
+ r = requests.patch(url=patch_uri, json=patch_data)
165
+ ```
166
+
167
+ ## The 6 Critical Rules (Read FIRST!)
168
+
169
+ ### Rule #0: TEST REPEATABILITY (MOST CRITICAL!) ⚠️
170
+
171
+ **TESTS MODIFY THE DATABASE. Tests MUST be repeatable and restartable.**
172
+
173
+ ```python
174
+ # ❌ WRONG - Reuses contaminated data
175
+ @given('Customer "Bob" with balance {balance:d}')
176
+ def step_impl(context, name, balance):
177
+ r = requests.get(f'/api/Customer/?filter[name]=Bob')
178
+ if r.json()['data']:
179
+ customer = r.json()['data'][0] # REUSES Bob - balance accumulated!
180
+
181
+ # ✅ CORRECT - Always creates fresh data with timestamp
182
+ @given('Customer "Bob" with balance {balance:d}')
183
+ def step_impl(context, name, balance):
184
+ unique_name = f"Bob {int(time.time() * 1000)}" # ALWAYS unique!
185
+ post_data = {
186
+ "data": {
187
+ "type": "Customer",
188
+ "attributes": {
189
+ "name": unique_name,
190
+ "balance": balance,
191
+ "credit_limit": limit
192
+ }
193
+ }
194
+ }
195
+ r = requests.post(f'/api/Customer/', json=post_data)
196
+ context.customer_id = int(r.json()['data']['id'])
197
+ context.customer_name = unique_name # Save for later use
198
+ ```
199
+
200
+ **Critical Patterns:**
201
+ - **NEVER reuse existing customers/orders** - always create fresh
202
+ - **Use timestamps** in names: `f"Bob {int(time.time() * 1000)}"`
203
+ - **Match exact database names** - "Widget" not "Widgets"
204
+ - **Don't assume clean state** - tests may run after failures
205
+ - **Track name mappings** for multi-customer tests (see Rule #8)
206
+ - **Understand DERIVED vs ADDED aggregates** (see Rule #9)
207
+
208
+ ### Rule #0.5: BEHAVE STEP ORDERING (Pattern Matching!) ⚠️
209
+
210
+ **Behave matches steps by FIRST pattern that fits. More specific patterns MUST come before general ones.**
211
+
212
+ **Example 1: Carbon Neutral Products**
213
+
214
+ ```python
215
+ # ❌ WRONG ORDER - General pattern matches first, specific never runs!
216
+ @when('B2B order placed for "{customer_name}" with {quantity:d} {product_name}')
217
+ def step_impl_general(context, customer_name, quantity, product_name):
218
+ # This matches "carbon neutral Widget" as product_name="carbon neutral Widget"
219
+ # The specific carbon neutral step below NEVER executes!
220
+ ...
221
+
222
+ @when('B2B order placed for "{customer_name}" with {quantity:d} carbon neutral {product_name}')
223
+ def step_impl_carbon_neutral(context, customer_name, quantity, product_name):
224
+ # NEVER REACHED because general pattern above matched first
225
+ ...
226
+
227
+ # ✅ CORRECT ORDER - Specific pattern first!
228
+ @when('B2B order placed for "{customer_name}" with {quantity:d} carbon neutral {product_name}')
229
+ def step_impl_carbon_neutral(context, customer_name, quantity, product_name):
230
+ # This matches first for "carbon neutral Widget"
231
+ # Sets context.item_id correctly
232
+ ...
233
+
234
+ @when('B2B order placed for "{customer_name}" with {quantity:d} {product_name}')
235
+ def step_impl_general(context, customer_name, quantity, product_name):
236
+ # Only matches if "carbon neutral" not present
237
+ ...
238
+ ```
239
+
240
+ **Example 2: Multi-Item Orders (GIVEN pattern)**
241
+
242
+ ```python
243
+ # ❌ WRONG ORDER - Single-item pattern matches "3 Widget and 2 Gadget"
244
+ @given('Order exists for "{customer_name}" with {quantity:d} {product_name}')
245
+ def step_impl_single(context, customer_name, quantity, product_name):
246
+ # This matches FIRST!
247
+ # product_name = "Widget and 2 Gadget" (treats "and 2 Gadget" as part of name)
248
+ # Creates only 1 item, context.item_ids never set properly
249
+ ...
250
+
251
+ @given('Order exists for "{customer_name}" with {qty1:d} {product1} and {qty2:d} {product2}')
252
+ def step_impl_multi(context, customer_name, qty1, product1, qty2, product2):
253
+ # NEVER REACHED! Single-item pattern above matched first
254
+ ...
255
+
256
+ # ✅ CORRECT ORDER - Multi-item pattern first!
257
+ @given('Order exists for "{customer_name}" with {qty1:d} {product1} and {qty2:d} {product2}')
258
+ def step_impl_multi(context, customer_name, qty1, product1, qty2, product2):
259
+ # This matches first for "3 Widget and 2 Gadget"
260
+ # Creates 2 items, sets context.item_ids = [id1, id2]
261
+ ...
262
+
263
+ @given('Order exists for "{customer_name}" with {quantity:d} {product_name}')
264
+ def step_impl_single(context, customer_name, quantity, product_name):
265
+ # Only matches if "and" not present
266
+ ...
267
+ ```
268
+
269
+ **Example 3: Multi-Item Orders (WHEN pattern) - Real Bug Found!**
270
+
271
+ ```python
272
+ # ❌ WRONG ORDER - Causes silent failure with balance=0 instead of expected value
273
+ @when('B2B order placed for "{customer_name}" with {quantity:d} {product_name}')
274
+ def step_impl_single(context, customer_name, quantity, product_name):
275
+ # This matches "3 Widget and 2 Gadget" FIRST!
276
+ # product_name becomes "Widget and 2 Gadget" (entire string)
277
+ # OrderB2B API tries to find product "Widget and 2 Gadget" → fails
278
+ # Returns 200 but no order created → customer balance stays 0
279
+ # Test fails: "expected 570, got 0.0"
280
+ ...
281
+
282
+ @when('B2B order placed for "{customer_name}" with {qty1:d} {product1} and {qty2:d} {product2}')
283
+ def step_impl_multi(context, customer_name, qty1, product1, qty2, product2):
284
+ # NEVER REACHED! Single-item pattern matched first
285
+ ...
286
+
287
+ # ✅ CORRECT ORDER - Multi-item pattern MUST come before single-item
288
+ @when('B2B order placed for "{customer_name}" with {qty1:d} {product1} and {qty2:d} {product2}')
289
+ def step_impl_multi(context, customer_name, qty1, product1, qty2, product2):
290
+ # Now matches "3 Widget and 2 Gadget" correctly
291
+ # Creates order with 2 items, balance = 570
292
+ ...
293
+
294
+ @when('B2B order placed for "{customer_name}" with {quantity:d} {product_name}')
295
+ def step_impl_single(context, customer_name, quantity, product_name):
296
+ # Now only matches single product patterns
297
+ ...
298
+ ```
299
+
300
+ **CRITICAL FILE ORGANIZATION:**
301
+ Within each decorator type (@given, @when, @then), organize patterns like this:
302
+
303
+ ```python
304
+ # For @when patterns:
305
+ @when('... with {qty:d} carbon neutral {product}') # Most specific (3+ keywords)
306
+ @when('... with {qty1:d} {p1} and {qty2:d} {p2}') # More specific (multi-param + "and")
307
+ @when('... with {quantity:d} {product_name}') # General (fewest keywords)
308
+
309
+ # For @given patterns:
310
+ @given('... with {qty1:d} {p1} and {qty2:d} {p2}') # More specific (multi-param + "and")
311
+ @given('... with {quantity:d} {product_name}') # General (fewer params)
312
+ ```
313
+
314
+ **Why This Matters:**
315
+ - Wrong order → context.item_id not set → "Then Item amount" step fails with "item_id not set in context"
316
+ - Behave doesn't warn about unreachable patterns
317
+ - **ALWAYS order from most specific to most general**
318
+
319
+ **Specificity Rules:**
320
+ - More literal text = more specific ("and", "carbon neutral")
321
+ - More parameters = more specific
322
+ - Tighter type constraints = more specific
323
+
324
+ **Anti-Pattern Alert:**
325
+ Using `context.execute_steps()` to reuse step logic can cause context propagation issues. Instead, duplicate the implementation for specific patterns (DRY doesn't apply to Behave steps with context dependencies).
326
+
327
+ **Debugging Tip:**
328
+ If a step seems to execute but context variables aren't set, check if a MORE GENERAL pattern exists ABOVE it in the file.
329
+
330
+ ### Rule #1: Read database/models.py First
331
+ ```python
332
+ # Check: ID types (Integer vs String), column names, aggregates
333
+ class Customer(Base):
334
+ id = Column(Integer, primary_key=True) # Integer not String!
335
+ balance = Column(Numeric) # Check logic - is this aggregate?
336
+ ```
337
+
338
+ ### Rule #2: Use Direct FK Format
339
+ ```python
340
+ # ✅ CORRECT
341
+ post_data = {
342
+ "data": {
343
+ "attributes": {"customer_id": int(customer_id)} # Direct FK
344
+ }
345
+ }
346
+
347
+ # ❌ WRONG - causes optimistic locking errors
348
+ post_data = {
349
+ "data": {
350
+ "relationships": {"customer": {"data": {"id": customer_id}}}
351
+ }
352
+ }
353
+ ```
354
+
355
+ ### Rule #3: Mandatory Patterns
356
+ ```python
357
+ # Filter format
358
+ params = {"filter[name]": "Alice"} # NOT: {"filter": "name eq 'Alice'"}
359
+
360
+ # Unique test data
361
+ name = f"Test {int(time.time() * 1000)}" # NOT: "Test Customer"
362
+
363
+ # Convert IDs
364
+ customer_id = int(result['data']['id']) # NOT: result['data']['id']
365
+
366
+ # Imports (only these!)
367
+ from behave import *
368
+ import requests, test_utils, time
369
+ from decimal import Decimal
370
+ # NO imports from logic/, database/, integration/
371
+ ```
372
+
373
+ ### Rule #4: Complete CRUD + WHERE Coverage
374
+ ```gherkin
375
+ Scenario: Good Order (CREATE - POST)
376
+ Scenario: Item Qty Change (UPDATE - PATCH)
377
+ Scenario: Change Customer (UPDATE - FK change, both parents adjust)
378
+ Scenario: Delete Item (DELETE)
379
+ Scenario: Ship Order (WHERE exclude)
380
+ Scenario: Unship Order (WHERE include - test bidirectional!)
381
+ Scenario: Exceed Credit (Constraint FAIL - negative test)
382
+ ```
383
+
384
+ **CRITICAL:** Check `logic/declare_logic.py` for custom Python logic affecting calculations (e.g., discounts, adjustments) before writing constraint test expectations!
385
+
386
+ ### Rule #5: Security Configuration
387
+ ```python
388
+ # Read config/default.env FIRST
389
+ SECURITY_ENABLED = False # or True
390
+
391
+ # Match in test code
392
+ if SECURITY_ENABLED == False:
393
+ headers = {} # Empty
394
+ else:
395
+ headers = test_utils.login()
396
+ ```
397
+
398
+ ### Rule #6: Logic Logging
399
+ ```python
400
+ @when('Good Order Placed')
401
+ def step_impl(context):
402
+ scenario_name = 'Good Order Placed'
403
+ test_utils.prt(f'\n{scenario_name}\n', scenario_name) # 2nd arg critical!
404
+ ```
405
+
406
+ ### Rule #7: Custom API Response Handling ⚠️ NEW
407
+ ```python
408
+ # Phase 2 APIs may return different formats - handle both!
409
+ r = requests.post(url=api_uri, json=args, headers=get_headers())
410
+ context.order_created = (r.status_code == 200)
411
+
412
+ if context.order_created:
413
+ response_data = r.json()
414
+ # Custom APIs may return direct dict, not JSON:API format
415
+ context.order_id = response_data.get('order_id') # Direct field
416
+ else:
417
+ context.order_id = None # Always set to prevent KeyError
418
+
419
+ # When reading back via CRUD API:
420
+ r = requests.get(url=order_uri, headers=get_headers())
421
+ if 'data' in r.json():
422
+ order_data = r.json()['data']['attributes'] # JSON:API format
423
+ else:
424
+ order_data = r.json() # Direct format
425
+ ```
426
+
427
+ ### Rule #8: Customer Name Mapping for Multi-Customer Tests ⚠️ NEW
428
+ ```python
429
+ # When tests involve MULTIPLE customers, track the mapping!
430
+ @given('Customer "{customer_name}" with balance {balance:d}')
431
+ def step_impl(context, customer_name, balance, limit):
432
+ unique_name = f"{customer_name} {int(time.time() * 1000)}"
433
+ # ... create customer ...
434
+
435
+ # Track mapping for later lookups
436
+ if not hasattr(context, 'customer_map'):
437
+ context.customer_map = {}
438
+ context.customer_map[customer_name] = {'id': customer_id, 'unique_name': unique_name}
439
+
440
+ # Then later, when checking specific customer:
441
+ @then('Customer "{customer_name}" balance should be {expected:d}')
442
+ def step_impl(context, customer_name, expected):
443
+ # ✅ CORRECT - Use ID from mapping
444
+ customer_info = context.customer_map[customer_name]
445
+ r = requests.get(f'/api/Customer/{customer_info["id"]}/')
446
+
447
+ # ❌ WRONG - Query by original name (won't find "Bob 1729...")
448
+ r = requests.get(f'/api/Customer/?filter[name]={customer_name}')
449
+ ```
450
+
451
+ ### Rule #9: Understand DERIVED Aggregates ⚠️ NEW
452
+ ```python
453
+ # Customer.balance is DERIVED from orders, not ADDED to!
454
+ Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total,
455
+ where=lambda row: row.date_shipped is None)
456
+
457
+ # ❌ WRONG expectations:
458
+ # Given Customer "Charlie" with existing balance 220
459
+ # And Order for 180
460
+ # Then balance should be 310 # WRONG! Thinks 220 + 90 (after delete)
461
+
462
+ # ✅ CORRECT expectations:
463
+ # Given Customer "Charlie" with balance 0
464
+ # And Order for 180
465
+ # Then balance should be 90 # After deleting one item
466
+ # The "existing balance 220" is REPLACED by sum of orders (180)!
467
+ ```
468
+
469
+ ### Rule #10: Verify Actual Database Values FIRST ⚠️ NEW
470
+ ```python
471
+ # ALWAYS check actual product prices/flags before writing test expectations!
472
+
473
+ # Check prices:
474
+ # sqlite3 db.sqlite "SELECT name, unit_price, carbon_neutral FROM Product;"
475
+
476
+ # Widget=90, Gadget=150, Green=109
477
+
478
+ # ❌ WRONG - Assumed Widget=$100
479
+ # Expected: 10 * 100 = 1000
480
+
481
+ # ✅ CORRECT - Verified Widget=$90
482
+ # Expected: 10 * 90 = 900
483
+
484
+ # For carbon neutral discount (10% off when qty >= 10):
485
+ # Expected: 10 * 90 * 0.9 = 810
486
+ ```
487
+
488
+ ### Rule #11: Step Definitions Must Match Feature Files ⚠️ NEW
489
+ ```python
490
+ # Feature file:
491
+ Given Customer "Alice" with balance 0 and credit limit 1000
492
+
493
+ # Step implementation - ALL parameters must be captured:
494
+ @given('Customer "{customer_name}" with balance {balance:d} and credit limit {limit:d}')
495
+ def step_impl(context, customer_name, balance, limit): # ✅ CORRECT
496
+ pass
497
+
498
+ # ❌ WRONG - hard-coded values instead of parameters:
499
+ @given('Customer "{customer_name}" exists with balance 0 and credit limit 1000')
500
+ def step_impl(context, customer_name): # Missing balance and limit parameters!
501
+ balance = 0 # Hard-coded - won't work for different scenarios
502
+ limit = 1000
503
+ ```
504
+
505
+ ### Rule #12: Always Initialize Context Variables ⚠️ NEW
506
+ ```python
507
+ # ✅ CORRECT - prevents KeyError in subsequent steps
508
+ @when('B2B order placed')
509
+ def step_impl(context):
510
+ r = requests.post(url=api_uri, json=args)
511
+ context.order_created = (r.status_code == 200)
512
+
513
+ if context.order_created:
514
+ context.order_id = r.json().get('order_id')
515
+ else:
516
+ context.order_id = None # CRITICAL - prevents "not hasattr" errors
517
+
518
+ # Then steps can safely check:
519
+ @then('Each item calculated correctly')
520
+ def step_impl(context):
521
+ if not hasattr(context, 'order_id') or context.order_id is None:
522
+ assert not context.order_created, "Order should have failed"
523
+ return # Skip gracefully
524
+ ```
525
+
526
+ ## Complete Phase 2 Example
527
+
528
+ ### .feature File
529
+ ```gherkin
530
+ Feature: Order Processing via B2B API
531
+
532
+ # Phase 2: CREATE
533
+ Scenario: Good Order Placed
534
+ When B2B order placed for "Alice" with items:
535
+ | Name | Quantity |
536
+ | Widget | 5 |
537
+ Then Customer balance is 50
538
+ Then Order created successfully
539
+
540
+ # Phase 1: UPDATE (granular)
541
+ Scenario: Alter Item Quantity
542
+ Given Order exists with 1 item (qty 5)
543
+ When Item quantity changed to 10
544
+ Then Item amount is 100
545
+ Then Order amount_total is 100
546
+ ```
547
+
548
+ ### Step Implementation
549
+ ```python
550
+ from behave import *
551
+ import requests, test_utils, time
552
+ from decimal import Decimal
553
+
554
+ BASE_URL = 'http://localhost:5656'
555
+
556
+ @when('B2B order placed for "{customer_name}" with items')
557
+ def step_impl(context):
558
+ """Phase 2: Uses OrderB2B custom API"""
559
+ scenario_name = 'B2B Order Placement'
560
+ test_utils.prt(f'\n{scenario_name}\n', scenario_name)
561
+
562
+ items = [{"Name": row['Name'], "QuantityOrdered": int(row['Quantity'])}
563
+ for row in context.table]
564
+
565
+ add_order_uri = f'{BASE_URL}/api/OrderB2BEndPoint/OrderB2B'
566
+ add_order_args = {
567
+ "meta": {"method": "OrderB2B", "args": {"data": {
568
+ "Account": customer_name,
569
+ "Notes": "Test order",
570
+ "Items": items
571
+ }}}
572
+ }
573
+
574
+ r = requests.post(url=add_order_uri, json=add_order_args,
575
+ headers=test_utils.login())
576
+ context.order_created = (r.status_code == 200)
577
+ if context.order_created:
578
+ response_data = r.json()
579
+ context.order_id = response_data.get('order_id') # Custom API direct response
580
+ else:
581
+ context.order_id = None # Always initialize to prevent KeyError
582
+
583
+ @when('Item quantity changed to {qty:d}')
584
+ def step_impl(context, qty):
585
+ """Phase 1: Uses CRUD for granular testing"""
586
+ scenario_name = 'Item Quantity Update'
587
+ test_utils.prt(f'\n{scenario_name}\n', scenario_name)
588
+
589
+ patch_uri = f'{BASE_URL}/api/Item/{context.item_id}/'
590
+ patch_data = {
591
+ "data": {
592
+ "attributes": {"quantity": qty},
593
+ "type": "Item",
594
+ "id": context.item_id
595
+ }
596
+ }
597
+ r = requests.patch(url=patch_uri, json=patch_data,
598
+ headers=test_utils.login())
599
+
600
+ @then('Customer balance is {expected:d}')
601
+ def step_impl(context, expected):
602
+ customer_uri = f'{BASE_URL}/api/Customer/{context.customer_id}/'
603
+ r = requests.get(url=customer_uri, headers=test_utils.login())
604
+ actual = float(r.json()['data']['attributes']['balance'])
605
+ assert abs(actual - expected) < 0.01
606
+ ```
607
+
608
+ ## Quick Error Reference
609
+
610
+ | Error | Fix |
611
+ |-------|-----|
612
+ | "405 Method Not Allowed" | `SECURITY_ENABLED=False`, remove auth |
613
+ | "invalid literal for int('ALFKI')" | Check models.py - use Integer IDs |
614
+ | "balance: field not writable" | Aggregate - create child Orders, don't set |
615
+ | "Invalid filter format" | Use `filter[name]=value` |
616
+ | "row altered by another user" | Use direct FK: `"customer_id": int(id)` |
617
+ | "circular import" | Remove imports from logic/, database/ |
618
+ | "empty logic log" | Add `test_utils.prt(msg, scenario_name)` |
619
+ | **"balance: expected 570, got 0.0"** | **Step ordering issue (Rule #0.5)! Multi-item pattern after single-item** |
620
+ | **"context has no attribute 'item_id'"** | **Step ordering issue! Specific pattern defined after general pattern** |
621
+ | "Order created but no items" | Check if wrong step matched (print debug in step) |
622
+
623
+ ### Debugging Step Ordering Issues
624
+
625
+ **Symptom**: Test passes WHEN step but THEN assertions fail with unexpected values (often 0 or None).
626
+
627
+ **Diagnosis**:
628
+ 1. **Check which step executed**: Look at test output for line numbers
629
+ ```
630
+ When B2B order placed for "Kevin" with 3 Widget and 2 Gadget # line=261
631
+ ```
632
+ If line 261 is single-item but you expected line 320 (multi-item), wrong pattern matched!
633
+
634
+ 2. **Verify database**: Check if records were actually created
635
+ ```bash
636
+ sqlite3 db.sqlite "SELECT * FROM 'order' WHERE customer_id = X;"
637
+ sqlite3 db.sqlite "SELECT * FROM item WHERE order_id = Y;"
638
+ ```
639
+
640
+ 3. **Check step file organization**: Count literal keywords in each pattern
641
+ ```python
642
+ # line 202: "carbon neutral" = 2 keywords (most specific)
643
+ # line 261: {quantity:d} {product_name} = 0 keywords (general)
644
+ # line 320: {qty1} {p1} "and" {qty2} {p2} = 1 keyword (more specific)
645
+ ```
646
+ Line 320 MUST come BEFORE line 261!
647
+
648
+ **Quick Fix**:
649
+ ```bash
650
+ # Find all @when patterns in your steps file
651
+ grep -n "@when('.*with.*{" features/steps/*.py
652
+
653
+ # Reorder so patterns with MORE keywords/parameters come FIRST
654
+ # Rule: Most specific → Most general (top to bottom)
655
+ ```
656
+
657
+ ## Test Generation Workflow
658
+
659
+ ```
660
+ 1. Read database/models.py → Understand schema (IDs, aggregates)
661
+ 2. Read logic/declare_logic.py → Identify rules to test
662
+ 3. Scan api/api_discovery/*.py → Discover custom APIs
663
+ 4. Decide Phase 1 vs Phase 2 → Based on custom API existence
664
+ 5. Generate .feature files → Business language scenarios
665
+ 6. Implement steps/*.py → Using discovered APIs or CRUD
666
+ 7. Run tests → python behave_run.py
667
+ 8. Generate report → python behave_logic_report.py run
668
+ ```
669
+
670
+ ## Key Testing Patterns
671
+
672
+ **Test ALL scenarios for each rule:**
673
+ - ✅ CREATE (POST) - new entity triggers rules
674
+ - ✅ UPDATE (PATCH) - modify triggers recalc
675
+ - ✅ UPDATE FK - change parent (both old/new adjust)
676
+ - ✅ DELETE - remove entity (aggregates down)
677
+ - ✅ WHERE include - condition becomes true
678
+ - ✅ WHERE exclude - condition becomes false
679
+ - ✅ Constraint pass - valid data accepted
680
+ - ✅ Constraint fail - invalid data rejected
681
+
682
+ **Common missed scenarios:**
683
+ - ❌ Only testing CREATE/UPDATE, not DELETE
684
+ - ❌ Only testing WHERE one direction (ship, not unship)
685
+ - ❌ Only testing constraint pass, not fail
686
+ - ❌ Only testing FK create, not FK change
687
+
688
+ ## Benefits of Phase 2
689
+
690
+ | Phase 2 (Custom API) | Phase 1 (CRUD) |
691
+ |---------------------|----------------|
692
+ | One API call | Multiple CRUD calls |
693
+ | Business language | Technical IDs |
694
+ | Tests API + Rules | Tests Rules only |
695
+ | Realistic scenarios | Implementation details |
696
+ | "Place Order" | "POST Order, POST Items" |
697
+
698
+ **The Magic:** Users built OrderB2B for partners → Same API provides natural test scenarios!
699
+
700
+ ## Automated Step Ordering Verification
701
+
702
+ **Command to verify step ordering in your test files:**
703
+
704
+ ```bash
705
+ # List all @when patterns with line numbers (should be ordered specific→general)
706
+ cd test/api_logic_server_behave
707
+ grep -n "@when('.*with.*{" features/steps/*.py
708
+
709
+ # Expected output (line numbers ascending = correct order):
710
+ # 202: @when('... with {qty:d} carbon neutral {product}') # Most specific
711
+ # 265: @when('... with {qty1:d} {p1} and {qty2:d} {p2}') # More specific
712
+ # 318: @when('... with {quantity:d} {product_name}') # General
713
+
714
+ # If multi-item (line 265) comes AFTER single-item (line 318) = WRONG!
715
+ ```
716
+
717
+ **Python script to auto-check ordering** (add to test directory):
718
+
719
+ ```python
720
+ #!/usr/bin/env python3
721
+ """Verify Behave step ordering for multi-param patterns."""
722
+ import re, sys
723
+ from pathlib import Path
724
+
725
+ def check_step_order(steps_file):
726
+ """Check if multi-item patterns come before single-item patterns."""
727
+ with open(steps_file) as f:
728
+ lines = f.readlines()
729
+
730
+ issues = []
731
+ when_patterns = []
732
+
733
+ for i, line in enumerate(lines, 1):
734
+ if match := re.match(r"@when\('.*with.*\{", line):
735
+ # Count parameters and keywords
736
+ param_count = line.count('{')
737
+ has_and = ' and ' in line
738
+ has_special_keyword = any(k in line for k in ['carbon neutral', 'shipped'])
739
+
740
+ specificity = param_count + (2 if has_and else 0) + (3 if has_special_keyword else 0)
741
+ when_patterns.append((i, specificity, line.strip()))
742
+
743
+ # Check if patterns are in descending specificity order
744
+ for i in range(len(when_patterns) - 1):
745
+ curr_line, curr_spec, curr_text = when_patterns[i]
746
+ next_line, next_spec, next_text = when_patterns[i + 1]
747
+
748
+ if next_spec > curr_spec:
749
+ issues.append(f"❌ Line {next_line} (specificity={next_spec}) should come BEFORE line {curr_line} (specificity={curr_spec})")
750
+ issues.append(f" More specific: {next_text}")
751
+ issues.append(f" Less specific: {curr_text}")
752
+
753
+ return issues
754
+
755
+ if __name__ == '__main__':
756
+ steps_dir = Path('features/steps')
757
+ all_issues = []
758
+
759
+ for steps_file in steps_dir.glob('*_steps.py'):
760
+ issues = check_step_order(steps_file)
761
+ if issues:
762
+ all_issues.extend([f"\n{steps_file}:"] + issues)
763
+
764
+ if all_issues:
765
+ print("Step Ordering Issues Found:")
766
+ print('\n'.join(all_issues))
767
+ sys.exit(1)
768
+ else:
769
+ print("✅ All step patterns correctly ordered (specific → general)")
770
+ sys.exit(0)
771
+ ```
772
+
773
+ **Usage:**
774
+ ```bash
775
+ cd test/api_logic_server_behave
776
+ python check_step_order.py # Run before committing tests
777
+ ```
778
+
779
+ This automation prevents Rule #0.5 violations across ALL databases and projects!