ApiLogicServer 15.0.61__py3-none-any.whl → 15.1.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 (531) hide show
  1. api_logic_server_cli/api_logic_server.py +4 -3
  2. api_logic_server_cli/api_logic_server_info.yaml +2 -2
  3. api_logic_server_cli/cli.py +2 -2
  4. api_logic_server_cli/database/basic_demo.sqlite +0 -0
  5. api_logic_server_cli/genai/{genai_admin_app.py → genai_react_app.py} +10 -2
  6. api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +321 -2
  7. api_logic_server_cli/prototypes/base/docs/training/logic_bank_api.prompt +27 -0
  8. api_logic_server_cli/prototypes/base/logic/logic_discovery/use_case.py +5 -1
  9. api_logic_server_cli/prototypes/base/test/readme_test.md +395 -0
  10. api_logic_server_cli/prototypes/basic_demo/customizations/database/db.sqlite +0 -0
  11. api_logic_server_cli/prototypes/basic_demo/docs/models-not-code.png +0 -0
  12. api_logic_server_cli/prototypes/basic_demo/docs/runtime engines.png +0 -0
  13. api_logic_server_cli/prototypes/basic_demo/iteration/database/db.sqlite +0 -0
  14. api_logic_server_cli/prototypes/basic_demo/logic/procedural/credit_service.py +204 -0
  15. api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +1 -12
  16. api_logic_server_cli/prototypes/manager/.vscode/launch.json +2 -1
  17. api_logic_server_cli/prototypes/manager/samples/basic_demo/.devcontainer-option/For_VSCode.dockerfile +10 -0
  18. api_logic_server_cli/prototypes/manager/samples/basic_demo/.devcontainer-option/devcontainer.json +64 -0
  19. api_logic_server_cli/prototypes/manager/samples/basic_demo/.devcontainer-option/readme.md +1 -0
  20. api_logic_server_cli/prototypes/manager/samples/basic_demo/.devcontainer-option/setup.sh +10 -0
  21. api_logic_server_cli/prototypes/manager/samples/basic_demo/.env +4 -0
  22. api_logic_server_cli/prototypes/manager/samples/basic_demo/.github/.copilot-instructions.md +581 -0
  23. api_logic_server_cli/prototypes/manager/samples/basic_demo/.gitignore +9 -0
  24. api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/ApiLogicServer.xml +24 -0
  25. api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/Report_Behave_Logic.xml +24 -0
  26. api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/Run_Behave.xml +24 -0
  27. api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/Windows_Run_Behave.xml +24 -0
  28. api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/run___No_Security.xml +25 -0
  29. api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/run_docker.xml +59 -0
  30. api_logic_server_cli/prototypes/manager/samples/basic_demo/.vscode/launch.json +314 -0
  31. api_logic_server_cli/prototypes/manager/samples/basic_demo/.vscode/settings.json +40 -0
  32. api_logic_server_cli/prototypes/manager/samples/basic_demo/.vscode/venv_init.sh +64 -0
  33. api_logic_server_cli/prototypes/manager/samples/basic_demo/_config.yml +8 -0
  34. api_logic_server_cli/prototypes/manager/samples/basic_demo/_layouts/redirect.html +15 -0
  35. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/__init__.py +0 -0
  36. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/auto_discovery.py +27 -0
  37. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/mcp_discovery.py +97 -0
  38. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/mcp_expose_api_models.py +53 -0
  39. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/new_service.py +21 -0
  40. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/newer_service.py +21 -0
  41. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/ontimize_api.py +495 -0
  42. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/order_b2b_service.py +60 -0
  43. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/system.py +77 -0
  44. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/customize_api.py +63 -0
  45. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/expose_api_models.py +52 -0
  46. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/json_encoder.py +17 -0
  47. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/readme_customize_api.md +103 -0
  48. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/api_utils.py +171 -0
  49. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/custom_endpoint.py +1085 -0
  50. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/expression_parser.py +685 -0
  51. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/gen_csv_report.py +41 -0
  52. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/gen_pdf_report.py +215 -0
  53. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/opt_locking/opt_locking.py +158 -0
  54. api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/opt_locking/readme.md +225 -0
  55. api_logic_server_cli/prototypes/manager/samples/basic_demo/api_logic_server_run.py +162 -0
  56. api_logic_server_cli/prototypes/manager/samples/basic_demo/config/__init__.py +0 -0
  57. api_logic_server_cli/prototypes/manager/samples/basic_demo/config/activate_logicbank.py +46 -0
  58. api_logic_server_cli/prototypes/manager/samples/basic_demo/config/config.py +772 -0
  59. api_logic_server_cli/prototypes/manager/samples/basic_demo/config/default.env +16 -0
  60. api_logic_server_cli/prototypes/manager/samples/basic_demo/config/logging-reduced.yml +112 -0
  61. api_logic_server_cli/prototypes/manager/samples/basic_demo/config/logging.yml +123 -0
  62. api_logic_server_cli/prototypes/manager/samples/basic_demo/config/mypy.ini +25 -0
  63. api_logic_server_cli/prototypes/manager/samples/basic_demo/config/server_setup.py +459 -0
  64. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/api/api_discovery/openapi.py +92 -0
  65. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/config/default.env +13 -0
  66. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/database/db.sqlite +0 -0
  67. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/database/models.py +130 -0
  68. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/docs/mcp_learning/mcp_discovery.json +108 -0
  69. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/logic/cocktail-napkin.jpg +0 -0
  70. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/logic/declare_logic.py +106 -0
  71. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/logic/logic_discovery/email_request.py +49 -0
  72. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/logic/logic_discovery/simple_constraints.py +25 -0
  73. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/security/declare_security.py +60 -0
  74. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/admin/admin.yaml +162 -0
  75. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/admin/home.js +48 -0
  76. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/README.md +17 -0
  77. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/README_create_react_app.md +70 -0
  78. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/package-lock.json +18469 -0
  79. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/package.json +47 -0
  80. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/favicon.ico +0 -0
  81. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/index.html +43 -0
  82. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/logo192.png +0 -0
  83. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/logo512.png +0 -0
  84. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/manifest.json +25 -0
  85. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/robots.txt +3 -0
  86. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/App.css +38 -0
  87. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/App.js +61 -0
  88. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/App.test.js +8 -0
  89. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Config-reference.js +527 -0
  90. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Config.js +527 -0
  91. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Customer-reference.js +216 -0
  92. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Customer.js +230 -0
  93. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Item.js +170 -0
  94. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Order.js +207 -0
  95. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Product.js +140 -0
  96. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/SysEmail.js +157 -0
  97. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/SysMcp.js +110 -0
  98. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/app_loader.js +24 -0
  99. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/index.css +13 -0
  100. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/index.js +17 -0
  101. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/logo.svg +1 -0
  102. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/.eslintrc +5 -0
  103. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/.yarnrc.yml +4 -0
  104. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/default-settings.js +25 -0
  105. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/default-settings.ts +25 -0
  106. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/errors.js +116 -0
  107. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/errors.ts +116 -0
  108. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/index.test.tsx +7 -0
  109. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/index.tsx +11 -0
  110. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/ra-jsonapi-client.js +577 -0
  111. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/ra-jsonapi-client.ts +577 -0
  112. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.js +124 -0
  113. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.ts +124 -0
  114. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/styles.module.css +9 -0
  115. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/reportWebVitals.js +13 -0
  116. api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/setupTests.js +5 -0
  117. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/__init__.py +0 -0
  118. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/alembic_run.py +98 -0
  119. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/env.py +78 -0
  120. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/readme_alembic.md +36 -0
  121. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/script.py.mako +24 -0
  122. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/versions/ae6a5c2fdc47_autogenerated.py +34 -0
  123. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/versions/readme.md +1 -0
  124. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic.ini +103 -0
  125. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/authentication_db.sqlite +0 -0
  126. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/bind_dbs.py +25 -0
  127. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/customize_models.py +19 -0
  128. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/database_discovery/authentication_models.py +183 -0
  129. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/database_discovery/auto_discovery.py +27 -0
  130. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/db.sqlite +0 -0
  131. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/db_debug/db_debug.py +90 -0
  132. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/mcp_db.sqlite +0 -0
  133. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/mcp_models.py +58 -0
  134. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/models.py +132 -0
  135. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/system/SAFRSBaseX.py +139 -0
  136. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/alp_init.py +40 -0
  137. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/readme.md +13 -0
  138. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/response2code.py +148 -0
  139. api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/test_data_preamble.py +83 -0
  140. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/auth-db/authdb_mysql.Dockerfile +65 -0
  141. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/auth-db/authdb_mysql.sql +112 -0
  142. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/auth-db/authdb_postgres.sql +57 -0
  143. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-compose-dev-azure/azure-deploy.sh +98 -0
  144. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-compose-dev-local/docker-compose-dev-local.yml +38 -0
  145. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-compose-dev-local/docker-compose.sh +34 -0
  146. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-image/build_image.dockerfile +20 -0
  147. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-image/build_image.sh +67 -0
  148. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-image/env.list +35 -0
  149. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-image/run_image.sh +23 -0
  150. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-standard-image/docker-compose-standard-image.yml +33 -0
  151. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-standard-image/env.list +55 -0
  152. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/h2/keycloakdb.mv.db +0 -0
  153. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/h2/keycloakdb.trace.db +236 -0
  154. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/import/kcals-realm.json +1807 -0
  155. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/import/kcals-users-0.json +24 -0
  156. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/import/master-realm.json +1953 -0
  157. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/import/master-users-0.json +23 -0
  158. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/tmp/kc-gzip-cache/nnbna/js/keycloak.js.gz +0 -0
  159. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/docker-compose-dev-network.yml +31 -0
  160. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/docker-compose-nginx.yml +48 -0
  161. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/docker-compose.yml +24 -0
  162. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/import/kcals-realm.json +1898 -0
  163. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/import/kcals-users-0.json +319 -0
  164. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/import/master-realm.json +1953 -0
  165. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/import/master-users-0.json +23 -0
  166. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/nginx/cert.pem +25 -0
  167. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/nginx/key.pem +28 -0
  168. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/nginx/nginx.conf +73 -0
  169. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/startup_log_nginx.txt +0 -0
  170. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/startup_log_no_nginx.txt +0 -0
  171. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/unused/auth_provider.py +80 -0
  172. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/unused/unused-docker-compose-keycloak.sh +13 -0
  173. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/python-anywhere/python_anywhere_wsgi.py +116 -0
  174. api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/readme-devops.md +31 -0
  175. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/db.dbml +14 -0
  176. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/graphics/readme.md +12 -0
  177. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/logic/readme.md +19 -0
  178. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/logic_suggestions/readme_logic_suggestions.md +3 -0
  179. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/mcp_learning/mcp.prompt +39 -0
  180. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/mcp_learning/mcp_schema.json +30 -0
  181. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/models-not-code.png +0 -0
  182. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/runtime engines.png +0 -0
  183. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/system-creation-vibe.md +158 -0
  184. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/admin_app_1_context.prompt.md +43 -0
  185. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/admin_app_2_functionality.prompt.md +69 -0
  186. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/admin_app_3_architecture.prompt.md +29 -0
  187. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/logic_bank_api.prompt +342 -0
  188. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/logic_example.py +41 -0
  189. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/react_map.prompt.md +13 -0
  190. api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/react_tree.prompt.md +10 -0
  191. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/kafka/kafka_consumer.py +60 -0
  192. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/kafka/kafka_producer.py +127 -0
  193. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/kafka/kafka_readme.md +3 -0
  194. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_context_results.txt +142 -0
  195. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_discovery_response.json +150 -0
  196. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_request.prompt +46 -0
  197. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_schema.txt +47 -0
  198. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_tool_context_response.json +34 -0
  199. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_tool_context_response_get.json +18 -0
  200. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/mcp_client_executor.py +545 -0
  201. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/mcp_server_discovery.json +9 -0
  202. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/readme-mcp.md +9 -0
  203. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/n8n/N8N_WebHook_from_ApiLogicServer.json +394 -0
  204. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/n8n/n8n_producer.py +172 -0
  205. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/n8n/n8n_readme.md +67 -0
  206. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/row_dict_maps/OrderB2BMapper.py +54 -0
  207. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/row_dict_maps/row_dict_maps_readme.md +3 -0
  208. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/system/FlaskKafka.py +105 -0
  209. api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/system/RowDictMapper.py +416 -0
  210. api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/api/api_discovery/order_b2b.py +92 -0
  211. api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/database/db.sqlite +0 -0
  212. api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/docs/er_diagram.png +0 -0
  213. api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/integration/row_dict_maps/OrderB2B.py +36 -0
  214. api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/integration/row_dict_maps/OrderShipping.py +30 -0
  215. api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/logic/declare_logic.py +147 -0
  216. api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/ui/admin/admin.yaml +175 -0
  217. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/declarative-vs-procedural-comparison.html +110 -0
  218. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/declare_logic.py +81 -0
  219. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/load_verify_rules.py +217 -0
  220. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/app_integration.py +23 -0
  221. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/auto_discovery.py +52 -0
  222. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/check_credit.py +44 -0
  223. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/mcp_client_executor_request.py +50 -0
  224. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/readme_logic_discovery.md +9 -0
  225. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/use_case.py +31 -0
  226. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/procedural/credit_service.py +204 -0
  227. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/procedural/declarative-vs-procedural-comparison.md +295 -0
  228. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/procedural/declarative-vs-procedural-comparison.png +0 -0
  229. api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/readme_logic.md +249 -0
  230. api_logic_server_cli/prototypes/manager/samples/basic_demo/readme.md +495 -0
  231. api_logic_server_cli/prototypes/manager/samples/basic_demo/readme_project.md +43 -0
  232. api_logic_server_cli/prototypes/manager/samples/basic_demo/readme_standard.md +492 -0
  233. api_logic_server_cli/prototypes/manager/samples/basic_demo/readme_vibe.md +353 -0
  234. api_logic_server_cli/prototypes/manager/samples/basic_demo/requirements.txt +3 -0
  235. api_logic_server_cli/prototypes/manager/samples/basic_demo/run.ps1 +30 -0
  236. api_logic_server_cli/prototypes/manager/samples/basic_demo/run.sh +55 -0
  237. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/__init__.py +0 -0
  238. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/__init__.py +0 -0
  239. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/abstract_authentication_provider.py +34 -0
  240. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/keycloak/auth_provider.py +238 -0
  241. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/memory/auth_provider.py +161 -0
  242. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/memory/auth_provider_no_swagger.py +98 -0
  243. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/sql/auth_provider.py +127 -0
  244. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/declare_security.py +49 -0
  245. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/readme_security.md +16 -0
  246. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/system/authentication.py +129 -0
  247. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/system/authorization.py +473 -0
  248. api_logic_server_cli/prototypes/manager/samples/basic_demo/security/system/custom_swagger.json +62 -0
  249. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/__init__.py +0 -0
  250. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/__init__.py +0 -0
  251. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/behave_logic_report.py +256 -0
  252. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/behave_run.py +64 -0
  253. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/features/about.feature +12 -0
  254. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/features/steps/about.py +20 -0
  255. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/features/steps/test_utils.py +133 -0
  256. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/logs/behave.log +0 -0
  257. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/reports/Behave Logic Report Intro micro.md +4 -0
  258. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/reports/Behave Logic Report Intro.md +75 -0
  259. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/reports/Behave Logic Report Sample.md +1180 -0
  260. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/basic/server_test.py +33 -0
  261. api_logic_server_cli/prototypes/manager/samples/basic_demo/test/readme_test.md +395 -0
  262. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/__init__.py +0 -0
  263. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/admin.yaml +173 -0
  264. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/admin_loader.py +217 -0
  265. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/authentication_admin.yaml +99 -0
  266. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/home.js +48 -0
  267. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/mcp_admin.yaml +53 -0
  268. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.browserslistrc +12 -0
  269. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.dockerignore +47 -0
  270. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.editorconfig +16 -0
  271. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.eslintrc.json +51 -0
  272. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.gitignore +47 -0
  273. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/README.md +42 -0
  274. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/angular.json +206 -0
  275. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/app_model.yaml +303 -0
  276. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/docker-compose-ontimize.yml +54 -0
  277. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/e2e/protractor.conf.js +32 -0
  278. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/e2e/src/app.e2e-spec.ts +23 -0
  279. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/e2e/src/app.po.ts +11 -0
  280. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/e2e/tsconfig.json +13 -0
  281. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/karma.conf.js +32 -0
  282. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/nginx/nginx.conf +29 -0
  283. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/ngsw-config.json +29 -0
  284. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/package-lock.json +22651 -0
  285. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/package.json +69 -0
  286. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app-routing.module.ts +25 -0
  287. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.component.html +1 -0
  288. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.component.scss +1 -0
  289. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.component.spec.ts +35 -0
  290. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.component.ts +9 -0
  291. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.config.ts +43 -0
  292. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.module.ts +37 -0
  293. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login-routing.module.ts +12 -0
  294. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.component.html +58 -0
  295. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.component.scss +155 -0
  296. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.component.ts +81 -0
  297. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.module.ts +18 -0
  298. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.theme.scss +51 -0
  299. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/Customer-routing.module.ts +37 -0
  300. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/Customer.module.ts +19 -0
  301. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/detail/Customer-detail.component.html +90 -0
  302. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/detail/Customer-detail.component.scss +0 -0
  303. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/detail/Customer-detail.component.ts +32 -0
  304. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/home/Customer-home.component.html +44 -0
  305. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/home/Customer-home.component.scss +0 -0
  306. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/home/Customer-home.component.ts +23 -0
  307. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/new/Customer-new.component.html +26 -0
  308. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/new/Customer-new.component.scss +0 -0
  309. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/new/Customer-new.component.ts +18 -0
  310. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/Item-routing.module.ts +30 -0
  311. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/Item.module.ts +19 -0
  312. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/detail/Item-detail.component.html +72 -0
  313. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/detail/Item-detail.component.scss +0 -0
  314. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/detail/Item-detail.component.ts +32 -0
  315. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/home/Item-home.component.html +55 -0
  316. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/home/Item-home.component.scss +0 -0
  317. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/home/Item-home.component.ts +23 -0
  318. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/new/Item-new.component.html +60 -0
  319. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/new/Item-new.component.scss +0 -0
  320. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/new/Item-new.component.ts +18 -0
  321. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/Order-routing.module.ts +37 -0
  322. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/Order.module.ts +19 -0
  323. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/detail/Order-detail.component.html +114 -0
  324. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/detail/Order-detail.component.scss +0 -0
  325. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/detail/Order-detail.component.ts +32 -0
  326. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/home/Order-home.component.html +48 -0
  327. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/home/Order-home.component.scss +0 -0
  328. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/home/Order-home.component.ts +23 -0
  329. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/new/Order-new.component.html +43 -0
  330. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/new/Order-new.component.scss +0 -0
  331. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/new/Order-new.component.ts +18 -0
  332. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/Product-routing.module.ts +37 -0
  333. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/Product.module.ts +19 -0
  334. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/detail/Product-detail.component.html +91 -0
  335. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/detail/Product-detail.component.scss +0 -0
  336. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/detail/Product-detail.component.ts +32 -0
  337. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/home/Product-home.component.html +35 -0
  338. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/home/Product-home.component.scss +0 -0
  339. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/home/Product-home.component.ts +23 -0
  340. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/new/Product-new.component.html +20 -0
  341. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/new/Product-new.component.scss +0 -0
  342. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/new/Product-new.component.ts +18 -0
  343. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about-routing.module.ts +13 -0
  344. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.component.html +39 -0
  345. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.component.scss +35 -0
  346. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.component.ts +17 -0
  347. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.module.ts +18 -0
  348. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.theme.scss +14 -0
  349. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home-routing.module.ts +17 -0
  350. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home.component.html +1 -0
  351. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home.component.scss +3 -0
  352. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home.component.ts +21 -0
  353. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home.module.ts +18 -0
  354. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main-routing.module.ts +32 -0
  355. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main-theme.scss +56 -0
  356. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main.component.html +8 -0
  357. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main.component.scss +1 -0
  358. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main.component.ts +20 -0
  359. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main.module.ts +22 -0
  360. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings-routing.module.ts +14 -0
  361. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings.component.html +14 -0
  362. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings.component.scss +44 -0
  363. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings.component.ts +46 -0
  364. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings.module.ts +18 -0
  365. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Customer-card/Customer-card.component.html +1 -0
  366. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Customer-card/Customer-card.component.scss +0 -0
  367. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Customer-card/Customer-card.component.ts +16 -0
  368. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Item-card/Item-card.component.html +1 -0
  369. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Item-card/Item-card.component.scss +0 -0
  370. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Item-card/Item-card.component.ts +16 -0
  371. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Order-card/Order-card.component.html +1 -0
  372. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Order-card/Order-card.component.scss +0 -0
  373. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Order-card/Order-card.component.ts +16 -0
  374. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Product-card/Product-card.component.html +1 -0
  375. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Product-card/Product-card.component.scss +0 -0
  376. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Product-card/Product-card.component.ts +16 -0
  377. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/app.menu.config.ts +45 -0
  378. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/app.services.config.ts +5 -0
  379. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/constant.ts +4 -0
  380. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/shared.module.ts +15 -0
  381. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/.gitkeep +0 -0
  382. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/css/app.scss +20 -0
  383. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/css/loader.css +173 -0
  384. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/i18n/en.json +44 -0
  385. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/i18n/es.json +42 -0
  386. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize128.png +0 -0
  387. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize16.png +0 -0
  388. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize256.png +0 -0
  389. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize32.png +0 -0
  390. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize48.png +0 -0
  391. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize64.png +0 -0
  392. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize72.png +0 -0
  393. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize96.png +0 -0
  394. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/github.png +0 -0
  395. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/login_bg.png +0 -0
  396. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/no-image-transparent.png +0 -0
  397. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/no-image.png +0 -0
  398. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/ontimize.png +0 -0
  399. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/ontimize_web_log.png +0 -0
  400. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/sidenav-closed.png +0 -0
  401. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/sidenav-closed.svg +1 -0
  402. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/sidenav-opened.png +0 -0
  403. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/sidenav-opened.svg +1 -0
  404. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/user_profile.png +0 -0
  405. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/js/domchange.js +110 -0
  406. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/js/keyboard.js +24 -0
  407. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/environments/environment.prod.ts +11 -0
  408. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/environments/environment.ts +15 -0
  409. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/favicon.ico +0 -0
  410. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/index.html +30 -0
  411. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/main.ts +15 -0
  412. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/manifest.webmanifest +59 -0
  413. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/polyfills.ts +66 -0
  414. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/styles.scss +1 -0
  415. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/test.ts +16 -0
  416. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/tsconfig.app.json +18 -0
  417. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/tsconfig.json +25 -0
  418. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/tsconfig.spec.json +18 -0
  419. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/andrew.jpg +0 -0
  420. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/anne.jpg +0 -0
  421. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/janet.jpg +0 -0
  422. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/laura.jpg +0 -0
  423. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/margaret.jpg +0 -0
  424. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/michael.jpg +0 -0
  425. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/nancy.jpg +0 -0
  426. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/robert.jpg +0 -0
  427. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/steven.jpg +0 -0
  428. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/beverages.gif +0 -0
  429. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/cereals.gif +0 -0
  430. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/condiments.gif +0 -0
  431. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/confections.gif +0 -0
  432. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/diary.gif +0 -0
  433. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/meat.gif +0 -0
  434. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/produce.gif +0 -0
  435. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/seafood.gif +0 -0
  436. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/README.md +16 -0
  437. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/README_create_react_app.md +70 -0
  438. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/package-lock.json +18469 -0
  439. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/package.json +47 -0
  440. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/favicon.ico +0 -0
  441. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/index.html +43 -0
  442. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/logo192.png +0 -0
  443. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/logo512.png +0 -0
  444. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/manifest.json +25 -0
  445. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/robots.txt +3 -0
  446. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/App.css +38 -0
  447. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/App.js +80 -0
  448. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/App.test.js +8 -0
  449. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Config.js +527 -0
  450. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Customer.js +218 -0
  451. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Item.js +190 -0
  452. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Order.js +189 -0
  453. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Product.js +159 -0
  454. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/app_loader.js +24 -0
  455. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/index.css +13 -0
  456. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/index.js +17 -0
  457. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/logo.svg +1 -0
  458. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/.eslintrc +5 -0
  459. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/.yarnrc.yml +4 -0
  460. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/default-settings.js +25 -0
  461. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/default-settings.ts +25 -0
  462. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/errors.js +116 -0
  463. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/errors.ts +116 -0
  464. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/index.test.tsx +7 -0
  465. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/index.tsx +11 -0
  466. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/ra-jsonapi-client.js +577 -0
  467. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/ra-jsonapi-client.ts +577 -0
  468. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/resourceLookup.js +124 -0
  469. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/resourceLookup.ts +124 -0
  470. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/styles.module.css +9 -0
  471. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/reportWebVitals.js +13 -0
  472. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/setupTests.js +5 -0
  473. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/README.md +20 -0
  474. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/README_create_react_app.md +72 -0
  475. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/package-lock.json +18469 -0
  476. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/package.json +47 -0
  477. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/product-cards.png +0 -0
  478. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/favicon.ico +0 -0
  479. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/index.html +43 -0
  480. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/logo192.png +0 -0
  481. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/logo512.png +0 -0
  482. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/manifest.json +25 -0
  483. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/robots.txt +3 -0
  484. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/App.css +38 -0
  485. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/App.js +80 -0
  486. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/App.test.js +8 -0
  487. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Config.js +527 -0
  488. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Customer.js +218 -0
  489. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Item.js +190 -0
  490. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Order.js +189 -0
  491. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Product.js +241 -0
  492. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/app_loader.js +24 -0
  493. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/index.css +13 -0
  494. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/index.js +17 -0
  495. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/logo.svg +1 -0
  496. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/.eslintrc +5 -0
  497. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/.yarnrc.yml +4 -0
  498. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/default-settings.js +25 -0
  499. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/default-settings.ts +25 -0
  500. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/errors.js +116 -0
  501. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/errors.ts +116 -0
  502. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/index.test.tsx +7 -0
  503. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/index.tsx +11 -0
  504. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/ra-jsonapi-client.js +577 -0
  505. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/ra-jsonapi-client.ts +577 -0
  506. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/resourceLookup.js +124 -0
  507. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/resourceLookup.ts +124 -0
  508. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/styles.module.css +9 -0
  509. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/reportWebVitals.js +13 -0
  510. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/setupTests.js +5 -0
  511. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/templates/bar_chart.jinja +64 -0
  512. api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/templates/content.html +3 -0
  513. api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/py.py +121 -0
  514. api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/readme_venv.md +20 -0
  515. api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/requirements-no-cli.txt +33 -0
  516. api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/venv-linux.sh +28 -0
  517. api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/venv.ps1 +21 -0
  518. api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/venv.sh +28 -0
  519. api_logic_server_cli/prototypes/manager/samples/dbs/readme_dbs.md +4 -4
  520. api_logic_server_cli/prototypes/manager/samples/readme_samples.md +13 -6
  521. api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace +3 -2
  522. api_logic_server_cli/prototypes/nw/test/readme_test_nw.md +224 -0
  523. {apilogicserver-15.0.61.dist-info → apilogicserver-15.1.0.dist-info}/METADATA +1 -1
  524. {apilogicserver-15.0.61.dist-info → apilogicserver-15.1.0.dist-info}/RECORD +528 -24
  525. api_logic_server_cli/prototypes/manager/.vscode/.copilot-instructions.md +0 -58
  526. api_logic_server_cli/prototypes/manager/.vscode/ApiLogicServer.code-workspace +0 -15
  527. api_logic_server_cli/prototypes/nw/test/readme_test.md +0 -13
  528. {apilogicserver-15.0.61.dist-info → apilogicserver-15.1.0.dist-info}/WHEEL +0 -0
  529. {apilogicserver-15.0.61.dist-info → apilogicserver-15.1.0.dist-info}/entry_points.txt +0 -0
  530. {apilogicserver-15.0.61.dist-info → apilogicserver-15.1.0.dist-info}/licenses/LICENSE +0 -0
  531. {apilogicserver-15.0.61.dist-info → apilogicserver-15.1.0.dist-info}/top_level.txt +0 -0
@@ -8,14 +8,15 @@ ApiLogicServer CLI: given a database url, create [and run] customizable ApiLogic
8
8
  * api/expose_api_models.py for a safrs api - using introspected models.py
9
9
  * Special provisions for NW Sample, to show customizations.
10
10
  * See end for key_module_map() quick links
11
-
11
+ ;
12
12
  Called from api_logic_server_cli.py, by instantiating the ProjectRun object.
13
13
  '''
14
14
 
15
- __version__ = "15.00.61" # last public release: 15.00.52 (15.00.12)
15
+ __version__ = "15.01.00" # last public release: 15.00.65
16
16
  recent_changes = \
17
17
  f'\n\nRecent Changes:\n' +\
18
- "\t07/27/2024 - 15.00.61: no mgr fix, confluent-kafka==2.6.0 for 3.13, system vibe support -- initial testing \n"\
18
+ "\t08/09/2024 - 15.01.00: improved vibe instructions \n"\
19
+ "\t08/06/2024 - 15.00.65: instructions for custom API endpoints, behave testing \n"\
19
20
  "\t07/20/2024 - 15.00.52: Python 3.13 compatibility fixes - psycopg2→psycopg3, SQLAlchemy 2.0+, pkg_resources→importlib.metadata. mgr dbs \n"\
20
21
  "\t07/17/2024 - 15.00.49: venv fix+, ext bldr * fix, copilot vibe tweaks - creation, mcp logic, basic_demo autonums \n"\
21
22
  "\t07/10/2024 - 15.00.41: copilot vibe support for logic, UI, MCP, bug[98] \n"\
@@ -1,3 +1,3 @@
1
- last_created_date: July 24, 2025 19:58:07
1
+ last_created_date: August 06, 2025 17:34:43
2
2
  last_created_project_name: ../../../servers/basic_demo
3
- last_created_version: 15.00.57
3
+ last_created_version: 15.00.65
@@ -823,8 +823,8 @@ def genai_add_app(ctx, app_name: str, vibe: click.BOOL, retries: int, schema: st
823
823
  log.info(f'... Error - does not appear to be a project: {str(project.project_directory_path)}')
824
824
  log.info(f'... Typical usage - cd into project, use --project_name=. \n')
825
825
  exit (1)
826
- from api_logic_server_cli.genai.genai_admin_app import GenAIAdminApp
827
- genai_admin = GenAIAdminApp(project=project, app_name=app_name, vibe=vibe, schema=schema, retries=retries, genai_version=genai_version)
826
+ from api_logic_server_cli.genai.genai_react_app import GenAIReactApp
827
+ genai_react = GenAIReactApp(project=project, app_name=app_name, vibe=vibe, schema=schema, retries=retries, genai_version=genai_version)
828
828
  pass
829
829
  log.info("")
830
830
 
@@ -37,7 +37,15 @@ class JSResponseFormat(BaseModel): # must match system/genai/prompt_inserts/res
37
37
  code : str # generated javascript code (only)
38
38
 
39
39
 
40
- class GenAIAdminApp:
40
+ class GenAIReactApp:
41
+ """Create a react app:
42
+ 1. Clones <mgr>/system/genai/app_templates/react-admin-template
43
+ 2. For each data model class, uses creates page with list and show
44
+ * Uses ChatGpt with system/genai/app_templates/app_learning/Admin-App-Resource-Learning-Prompt.md
45
+ * Regrettably, repairs imports
46
+ 3. Creates Admin.js
47
+ * Uses ChatGpt with system/genai/app_templates/app_learning/Admin-App-js-Learning-Prompt.md
48
+ """
41
49
 
42
50
  def __init__(self, project: Project, app_name: str, vibe: bool, schema: str, genai_version: str, retries: int):
43
51
  self.start_time = time.time()
@@ -135,7 +143,7 @@ class GenAIAdminApp:
135
143
 
136
144
  def a_generate_resource_files(self):
137
145
 
138
- def fix_resource(genai_app: GenAIAdminApp, raw_source: str) -> str:
146
+ def fix_resource(genai_app: GenAIReactApp, raw_source: str) -> str:
139
147
  ''' Remove occasional begin/end code markers <br>
140
148
  And horrific override of ChatGPT refusal to generate imports AS DIRECTED!<br>
141
149
  '''
@@ -4,6 +4,25 @@
4
4
 
5
5
  This is a **GenAI-Logic (aka API Logic Server) project** - a complete, working microservice - auto-generated from a database schema.
6
6
 
7
+ ## 🔑 Key Technical Points
8
+
9
+ **Critical Implementation Details:**
10
+
11
+ 1. **Discovery Systems**:
12
+ - **Logic Discovery**: Business rules automatically loaded from `logic/logic_discovery/use_case.py` via `logic/logic_discovery/auto_discovery.py`
13
+ - **API Discovery**: Custom APIs automatically loaded from `api/api_discovery/[service_name].py` via `api/api_discovery/auto_discovery.py`
14
+ - Do NOT manually duplicate rule calls or API registrations
15
+
16
+ 2. **API Record ID Pattern**: When creating records via custom APIs, use `session.flush()` before accessing the ID to ensure it's generated:
17
+ ```python
18
+ session.add(sql_alchemy_row)
19
+ session.flush() # Ensures ID is generated
20
+ record_id = sql_alchemy_row.id
21
+ return {"message": "Success", "record_id": record_id}
22
+ ```
23
+
24
+ 3. **Automatic Business Logic**: All APIs (standard and custom) automatically inherit LogicBank rules without additional code.
25
+
7
26
  ## ⚠️ IMPORTANT: What's Already Built
8
27
 
9
28
  **DO NOT recreate these - they're already working:**
@@ -14,6 +33,8 @@ This is a **GenAI-Logic (aka API Logic Server) project** - a complete, working m
14
33
  4. **Authentication System** - JWT-based auth framework
15
34
  5. **Business Logic Engine** - Declarative rules system
16
35
 
36
+ > **📋 Testing:** For comprehensive testing conventions, patterns, and examples, see `test/readme_test.md`
37
+
17
38
  ## 🎯 Common Tasks
18
39
 
19
40
  If the user asks "what do I do now?", these subsections are good suggestions.
@@ -80,14 +101,68 @@ Use case: App Integration
80
101
  Generally CoPilot solicits Natural Language logic for translation (see logic/readme_logic.md),
81
102
  but you can also offer to suggest rules.
82
103
 
104
+ ### Discovery Systems
105
+
106
+ **IMPORTANT**: The project uses automated discovery systems that:
107
+
108
+ **Logic Discovery:**
109
+ 1. **Automatically loads business logic** from `logic/logic_discovery/*.py`
110
+ * **CRITICAL: Always create separate files named for each use case** (e.g., `check_credit.py`, `app_integration.py`)
111
+ * **Never put multiple use cases in `use_case.py`** - that file is for templates/examples only
112
+ 2. **Discovers rules at startup** via `logic/logic_discovery/auto_discovery.py`
113
+ 3. **No manual rule loading required** - the `discover_logic()` function automatically finds and registers rules
114
+
115
+ **API Discovery:**
116
+ 1. **Automatically loads custom APIs** from `api/api_discovery/[service_name].py`
117
+ 2. **Discovers services at startup** via `api/api_discovery/auto_discovery.py` (called from `api/customize_api.py`)
118
+ 3. **No manual API registration required** - services are automatically discovered and exposed
119
+
120
+ **Do NOT duplicate** by calling them manually. The discovery systems handle this automatically.
121
+
122
+ **Implementation Locations**:
123
+ - Business rules: `logic/logic_discovery/use_case.py`
124
+ - Custom APIs: `api/api_discovery/[service_name].py`
125
+ - System automatically discovers and loads both
126
+
127
+ **Pattern**:
128
+ ```python
129
+ # logic/logic_discovery/use_case.py
130
+ def declare_logic():
131
+ """Business logic rules for the application"""
132
+ Rule.sum(derive=Customer.balance, as_sum_of=Order.amount_total)
133
+ Rule.constraint(validate=Customer, as_condition=lambda row: row.balance <= row.credit_limit)
134
+ # ... other rules
135
+ ```
136
+
137
+ **PATTERN RECOGNITION for Business Logic**:
138
+ When users provide natural language with multiple use cases like:
139
+ - "Use case: Check Credit" + "Use case: App Integration"
140
+
141
+ **ALWAYS create separate files**:
142
+ - `logic/logic_discovery/check_credit.py` - for credit checking rules
143
+ - `logic/logic_discovery/app_integration.py` - for integration rules
144
+
145
+ **NEVER put everything in `use_case.py`** - that defeats the discovery system purpose.
146
+
83
147
  ### Adding MCP
84
148
 
85
- The API is automatically MCP-enabled. This adds the MCP Client:
149
+ The API is automatically MCP-enabled. The project includes a comprehensive MCP client executor at `integration/mcp/mcp_client_executor.py`, but to enable the **user interface** for MCP requests, you must run this command:
86
150
 
87
151
  ```bash
88
152
  genai-logic genai-add-mcp-client
89
153
  ```
90
154
 
155
+ **CRITICAL DISTINCTION**:
156
+ - **`integration/mcp/mcp_client_executor.py`** = MCP processing engine (already exists)
157
+ - **`genai-logic genai-add-mcp-client`** = Command to add SysMcp table and UI infrastructure (must be run)
158
+
159
+ **When users ask to "Create the MCP client executor"**, they mean run the `genai-logic genai-add-mcp-client` command, NOT recreate the existing processing engine.
160
+
161
+ This command adds:
162
+ 1. **SysMcp table** for business users to enter natural language requests
163
+ 2. **Admin App integration** for MCP request interface
164
+ 3. **Database infrastructure** for MCP client operations
165
+
91
166
  ### Configuring Admin UI
92
167
 
93
168
  This is built when project is created - no need to add it.
@@ -105,7 +180,10 @@ resources:
105
180
 
106
181
  ### Create and Customize React Apps
107
182
 
108
- Complete customization is provided by generating a React Application (requires OpenAI key, Node):
183
+ **REQUIRED METHOD**: Complete customization is provided by generating a React Application (requires OpenAI key, Node):
184
+
185
+ **DO NOT use `create-react-app` or `npx create-react-app`**
186
+ **ALWAYS use this command instead:**
109
187
 
110
188
  ```bash
111
189
  # Create: ui/admin/my-app-name
@@ -120,6 +198,39 @@ Temporary restriction: security must be disabled.
120
198
 
121
199
  Customize using CoPilot chat, with `docs/training`.
122
200
 
201
+ #### React Component Development Best Practices
202
+
203
+ **Critical Pattern for List/Card Views**: When implementing custom views (like card layouts) in React Admin components:
204
+
205
+ 1. **Use `useListContext()` correctly**: Access `data` as an array, not as an object with `ids`
206
+ ```javascript
207
+ // CORRECT Pattern:
208
+ const { data, isLoading } = useListContext();
209
+ return (
210
+ <Grid container spacing={2}>
211
+ {data?.map(record => (
212
+ <Grid item key={record.id}>
213
+ <CustomCard record={record} />
214
+ </Grid>
215
+ ))}
216
+ </Grid>
217
+ );
218
+
219
+ // AVOID: Trying to use data[id] pattern - this is for older React Admin versions
220
+ ```
221
+
222
+ 2. **Component Naming Consistency**: Ensure component names match their usage in JSX - mismatched names cause runtime errors.
223
+
224
+ 3. **Simple Error Handling**: Use straightforward loading states rather than complex error checking:
225
+ ```javascript
226
+ if (isLoading) return <div>Loading...</div>;
227
+ ```
228
+
229
+ **Common Mistakes to Avoid**:
230
+ - Using `{ data, ids }` destructuring and trying to map over `ids` - this pattern is outdated
231
+ - Creating complex error handling when simple loading checks suffice
232
+ - Not referencing existing working implementations before creating new patterns
233
+
123
234
  ### Security - Role-Based Access Control
124
235
 
125
236
  Configure:
@@ -149,6 +260,8 @@ Grant(on_entity=Customer, to_role=sales, filter=lambda: Customer.SalesRep == cur
149
260
  ```
150
261
 
151
262
  ### Adding Custom API Endpoints
263
+
264
+ For simple endpoints:
152
265
  ```python
153
266
  # Edit: api/customize_api.py
154
267
  @app.route('/api/custom-endpoint')
@@ -156,6 +269,211 @@ def my_endpoint():
156
269
  return {"message": "Custom endpoint"}
157
270
  ```
158
271
 
272
+ ### Creating Advanced B2B Integration APIs with Natural Language
273
+
274
+ Users can create sophisticated custom API endpoints for B2B integration using natural language. The system automatically generates and discovers:
275
+
276
+ 1. **Custom API Service** (`api/api_discovery/[service_name].py`) - automatically discovered by `api/api_discovery/auto_discovery.py`
277
+ 2. **Row Dict Mapper** (`integration/row_dict_maps/[MapperName].py`)
278
+
279
+ **Example Implementation**: This project includes a working **OrderB2B API** that demonstrates the complete pattern:
280
+ - **API**: `api/api_discovery/order_b2b_service.py`
281
+ - **Mapper**: `integration/row_dict_maps/OrderB2BMapper.py`
282
+ - **Test Cases**: `test_requests.http` and `test_b2b_order_api.py`
283
+
284
+ **Pattern Recognition**: When users describe B2B integration scenarios involving:
285
+ - External partner data formats (✅ Account → Customer lookup)
286
+ - Field aliasing/renaming (✅ "Name" → Product.name, "QuantityOrdered" → Item.quantity)
287
+ - Nested data structures (✅ Items array handling)
288
+ - Lookups and joins (✅ Customer by name, Product by name)
289
+ - Data transformation (✅ External format to internal models)
290
+
291
+ Generate both the API service and corresponding Row Dict Mapper following these patterns:
292
+
293
+ **API Service Template** (`api/api_discovery/[service_name].py`) - Keep it concise:
294
+ ```python
295
+ from flask import request
296
+ from safrs import jsonapi_rpc
297
+ import safrs
298
+ from integration.row_dict_maps.OrderB2BMapper import OrderB2BMapper
299
+ import logging
300
+
301
+ app_logger = logging.getLogger("api_logic_server_app")
302
+
303
+ def add_service(app, api, project_dir, swagger_host: str, PORT: str, method_decorators = []):
304
+ api.expose_object(OrderB2BEndPoint)
305
+
306
+ class OrderB2BEndPoint(safrs.JABase):
307
+ @classmethod
308
+ @jsonapi_rpc(http_methods=["POST"])
309
+ def OrderB2B(self, *args, **kwargs): # yaml comment => swagger description
310
+ """ # yaml creates Swagger description
311
+ args :
312
+ data:
313
+ Account: "Alice"
314
+ Notes: "Rush order for Q4 promotion"
315
+ Items :
316
+ - Name: "Widget"
317
+ QuantityOrdered: 5
318
+ - Name: "Gadget"
319
+ QuantityOrdered: 3
320
+ ---
321
+
322
+ Creates B2B orders from external partner systems with automatic lookups and business logic.
323
+ Features automatic customer/product lookups by name, unit price copying,
324
+ amount calculations, customer balance updates, and credit limit validation.
325
+ """
326
+ db = safrs.DB
327
+ session = db.session
328
+
329
+ try:
330
+ mapper_def = OrderB2BMapper()
331
+ request_dict_data = request.json["meta"]["args"]["data"]
332
+
333
+ app_logger.info(f"OrderB2B: Processing order for account: {request_dict_data.get('Account')}")
334
+
335
+ sql_alchemy_row = mapper_def.dict_to_row(row_dict=request_dict_data, session=session)
336
+
337
+ session.add(sql_alchemy_row)
338
+ session.flush() # Ensures ID is generated before accessing it
339
+
340
+ order_id = sql_alchemy_row.id
341
+ customer_name = sql_alchemy_row.customer.name if sql_alchemy_row.customer else "Unknown"
342
+ item_count = len(sql_alchemy_row.ItemList)
343
+
344
+ return {
345
+ "message": "B2B Order created successfully",
346
+ "order_id": order_id,
347
+ "customer": customer_name,
348
+ "items_count": item_count
349
+ }
350
+
351
+ except Exception as e:
352
+ app_logger.error(f"OrderB2B: Error creating order: {str(e)}")
353
+ session.rollback()
354
+ return {"error": "Failed to create B2B order", "details": str(e)}, 400
355
+ ```
356
+
357
+ **IMPORTANT**: The project includes a working B2B integration example:
358
+ - **API Endpoint**: `OrderB2BEndPoint.OrderB2B` - Creates orders from external partner format
359
+ - **Error Handling**: Proper exception handling with session rollback for failed operations
360
+ - **Business Logic**: Automatic inheritance of all LogicBank rules (pricing, calculations, validation)
361
+ - **Testing**: Comprehensive test suite demonstrating success and error scenarios
362
+ - **Documentation**: Professional Swagger docs with YAML examples using real database data
363
+
364
+ When creating new B2B APIs, follow this proven pattern:
365
+ - Use `session.flush()` when you need generated IDs before commit
366
+ - Include proper error handling with try/catch and session.rollback()
367
+ - Provide meaningful success messages with key information (ID, customer, item count)
368
+ - Use YAML format in docstrings for clean Swagger documentation
369
+ - Always use actual database data in examples (check with sqlite3 queries)
370
+
371
+ **AI Anti-Patterns to Avoid**:
372
+ - **Don't assume CRUD operations**: If user asks for "create order API", only implement POST/insert (ask if they need GET/PUT/DELETE)
373
+ - **Don't add "enterprise" features** unless specifically requested:
374
+ - Detailed logging/monitoring beyond basic debugging
375
+ - Complex response objects with metadata
376
+ - Extensive documentation/comments
377
+ - HTTP status code handling beyond defaults
378
+ - **Don't import unused libraries**: Skip `logging`, `jsonify`, etc. unless actually needed
379
+ - **Don't over-engineer**: Simple success messages beat complex response objects
380
+
381
+ **Swagger Examples Must Use Real Data**:
382
+ When creating YAML docstring examples, use actual database data. Check first:
383
+ ```bash
384
+ sqlite3 database/db.sqlite "SELECT name FROM customer LIMIT 3;"
385
+ sqlite3 database/db.sqlite "SELECT name FROM product LIMIT 3;"
386
+ ```
387
+
388
+ **Getting Sample Data for Tests**:
389
+ ```bash
390
+ # Check actual customer names
391
+ sqlite3 database/db.sqlite "SELECT name FROM customer LIMIT 5;"
392
+
393
+ # Check actual product names
394
+ sqlite3 database/db.sqlite "SELECT name FROM product LIMIT 5;"
395
+ ```
396
+ Never assume data from other databases (like Northwind's "ALFKI") - always use the current project's actual data.
397
+
398
+ **Row Dict Mapper Template** (`integration/row_dict_maps/[MapperName].py`):
399
+ ```python
400
+ from integration.system.RowDictMapper import RowDictMapper
401
+ from database import models
402
+
403
+ class OrderB2BMapper(RowDictMapper):
404
+ def __init__(self):
405
+ """
406
+ B2B Order API Mapper for external partner integration.
407
+
408
+ Maps external B2B format to internal Order/Item structure:
409
+ - 'Account' field maps to Customer lookup by name
410
+ - 'Notes' field maps directly to Order notes
411
+ - 'Items' array with 'Name' and 'QuantityOrdered' maps to Item records
412
+ """
413
+ mapper = super(OrderB2BMapper, self).__init__(
414
+ model_class=models.Order,
415
+ alias="Order",
416
+ fields=[
417
+ (models.Order.notes, "Notes"),
418
+ # customer_id will be set via parent lookup
419
+ # amount_total will be calculated by business logic
420
+ # CreatedOn will be set by business logic
421
+ ],
422
+ parent_lookups=[
423
+ (models.Customer, [(models.Customer.name, 'Account')])
424
+ ],
425
+ related=[
426
+ ItemB2BMapper()
427
+ ]
428
+ )
429
+ return mapper
430
+
431
+ class ItemB2BMapper(RowDictMapper):
432
+ def __init__(self):
433
+ """
434
+ B2B Item Mapper for order line items.
435
+
436
+ Maps external item format to internal Item structure:
437
+ - 'Name' field maps to Product lookup by name
438
+ - 'QuantityOrdered' maps to Item quantity
439
+ """
440
+ mapper = super(ItemB2BMapper, self).__init__(
441
+ model_class=models.Item,
442
+ alias="Items",
443
+ fields=[
444
+ (models.Item.quantity, "QuantityOrdered"),
445
+ # unit_price will be copied from product by business logic
446
+ # amount will be calculated by business logic (quantity * unit_price)
447
+ ],
448
+ parent_lookups=[
449
+ (models.Product, [(models.Product.name, 'Name')])
450
+ ],
451
+ isParent=False
452
+ )
453
+ return mapper
454
+ ```
455
+
456
+ **Key Components for Natural Language Processing**:
457
+ - **Field Aliasing**: `(models.Table.field, "ExternalName")`
458
+ - **Parent Lookups**: `(models.ParentTable, [(models.ParentTable.lookup_field, 'ExternalKey')])`
459
+ - **Related Entities**: Nested RowDictMapper instances for child records
460
+ - **Automatic Joins**: System handles foreign key relationships automatically
461
+
462
+ **Business Logic Integration**: All generated APIs automatically inherit the full LogicBank rule engine through the discovery systems (`logic/logic_discovery/auto_discovery.py` and `api/api_discovery/auto_discovery.py`), ensuring data integrity, calculations, and constraints without additional code. Rules are automatically loaded from `logic/logic_discovery/use_case.py` and APIs from `api/api_discovery/[service_name].py` at startup.
463
+
464
+ **Testing B2B APIs**: The project includes comprehensive testing infrastructure:
465
+ - **REST Client Tests**: `test_requests.http` - Test directly in VS Code with REST Client extension
466
+ - **Python Test Suite**: `test_b2b_order_api.py` - Automated testing with requests library
467
+ - **Swagger UI**: `http://localhost:5656/api` - Interactive API testing and documentation
468
+ - **Sample Requests**: `sample_b2b_request.json` - Copy-paste examples for testing
469
+
470
+ **Working Example Results**: The OrderB2B API demonstrates:
471
+ - ✅ External format mapping (Account → Customer, Name → Product)
472
+ - ✅ Automatic lookups with error handling (missing customer/product detection)
473
+ - ✅ Business logic inheritance (unit price copying, amount calculations, balance updates)
474
+ - ✅ Professional Swagger documentation with YAML examples
475
+ - ✅ Complete test coverage (success cases and error scenarios)
476
+
159
477
  ### Customize Models - Add Tables, Attributes
160
478
 
161
479
  To add tables / columns to the database (highly impactful - request permission):
@@ -260,3 +578,4 @@ All events receive `(row, old_row, logic_row)` parameters and should use `logic_
260
578
  - Business logic uses LogicBank (declarative rule engine)
261
579
  - Everything is auto-generated from database introspection
262
580
  - Focus on CUSTOMIZATION, not re-creation
581
+ - Use CoPilot to assist with logic translation and API generation
@@ -8,6 +8,8 @@ If you create sum, count or formula LogicBank rules, you MUST create a correspon
8
8
 
9
9
  Use only the methods provided below.
10
10
 
11
+ IMPORTANT: Keep it simple! Use the built-in Rule methods with their parameters (like if_condition) rather than creating custom functions. The Rule methods are designed to handle common patterns directly.
12
+
11
13
 
12
14
  class Rule:
13
15
  """ Invoke these functions to declare rules """
@@ -131,6 +133,11 @@ class Rule:
131
133
  if_condition: any = None,
132
134
  when_condition: any = None,
133
135
  with_args: dict = None):
136
+ """
137
+ Events are triggered after database flush for integration (Kafka, etc.)
138
+
139
+ IMPORTANT: Use this simple pattern - do NOT create custom functions unless absolutely necessary.
140
+ Use if_condition parameter for conditional logic instead of writing custom event handlers.
134
141
 
135
142
  Example:
136
143
  Prompt:
@@ -146,6 +153,13 @@ class Rule:
146
153
  if_condition=lambda row: row.is_complete is True,
147
154
  with_args={"topic": "ready_to_ship"})
148
155
 
156
+ Args:
157
+ on_class: The model class to watch for changes
158
+ calling: Use kafka_producer.send_row_to_kafka for Kafka integration
159
+ if_condition: Lambda function to specify when the event should trigger
160
+ with_args: Dictionary with parameters like {"topic": "topic_name"}
161
+ """
162
+
149
163
 
150
164
  Expanded example:
151
165
 
@@ -310,5 +324,18 @@ Required (must-have) related parent constraints require an update to the data mo
310
324
  Prompt: Each Item must have a valid entry in the Product table.
311
325
  Response: product_id = Column(ForeignKey('product.id'), nullable=False)
312
326
 
327
+ CRITICAL: For event handling (Kafka integration, etc.), do NOT create custom event functions.
328
+ Use Rule.after_flush_row_event with if_condition parameter instead.
329
+
330
+ WRONG (do not do this):
331
+ def my_custom_kafka_function(row, old_row, logic_row):
332
+ # custom logic here
333
+ Rule.commit_row_event(on_class=Order, calling=my_custom_kafka_function)
334
+
335
+ RIGHT (do this instead):
336
+ Rule.after_flush_row_event(on_class=Order, calling=kafka_producer.send_row_to_kafka,
337
+ if_condition=lambda row: row.date_shipped is not None,
338
+ with_args={"topic": "order_shipping"})
339
+
313
340
  logic should create python files in logic/logic_discovery,
314
341
  and cross-check/use attribute names in database/models.py
@@ -1,5 +1,6 @@
1
1
  import datetime
2
2
  from decimal import Decimal
3
+ from integration.kafka import kafka_producer
3
4
  from logic_bank.exec_row_logic.logic_row import LogicRow
4
5
  from logic_bank.extensions.rule_extensions import RuleExtension
5
6
  from logic_bank.logic_bank import Rule
@@ -10,7 +11,10 @@ import logging
10
11
  from flask import jsonify
11
12
 
12
13
 
13
- """ Best practice: create logic files for each use case """
14
+ """
15
+ Best practice: create logic files for each use case,
16
+ named for the use case (eg, check_credit.py)
17
+ """
14
18
 
15
19
  app_logger = logging.getLogger(__name__)
16
20