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.
- api_logic_server_cli/api_logic_server.py +20 -16
- api_logic_server_cli/api_logic_server_info.yaml +3 -3
- api_logic_server_cli/cli.py +17 -2
- api_logic_server_cli/create_from_model/dbml.py +1 -1
- api_logic_server_cli/genai/genai.py +39 -28
- api_logic_server_cli/genai/genai_react_app.py +23 -1
- api_logic_server_cli/genai/genai_svcs.py +5 -3
- api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +164 -4
- api_logic_server_cli/prototypes/{manager/samples/basic_demo/.github/.copilot-instructions.md → base/.github/.copilot-instructionsZ.mdx} +84 -4
- api_logic_server_cli/prototypes/base/.vscode/launch.json +1 -1
- api_logic_server_cli/prototypes/base/api/system/api_utils.py +7 -3
- api_logic_server_cli/prototypes/base/config/config.py +1 -1
- api_logic_server_cli/prototypes/base/docs/training/readme_training.md +3 -0
- api_logic_server_cli/prototypes/base/docs/training/testing.md +779 -0
- api_logic_server_cli/prototypes/base/logic/declare_logic.py +4 -2
- api_logic_server_cli/prototypes/base/logic/logic_discovery/use_case.py +2 -0
- api_logic_server_cli/prototypes/base/test/api_logic_server_behave/AI-Generated-Tests-from-Rules.md +559 -0
- api_logic_server_cli/prototypes/base/test/api_logic_server_behave/behave_logic_report.py +46 -17
- api_logic_server_cli/prototypes/base/test/api_logic_server_behave/check_step_order.py +120 -0
- api_logic_server_cli/prototypes/base/test/api_logic_server_behave/features/steps/test_data_helpers.py +242 -0
- api_logic_server_cli/prototypes/base/test/api_logic_server_behave/features/steps/test_utils.py +5 -1
- api_logic_server_cli/prototypes/base/test/api_logic_server_behave/reports/Behave Logic Report Intro micro.md +15 -0
- api_logic_server_cli/prototypes/base/test/api_logic_server_behave/reports/Behave Logic Report Intro.md +10 -66
- api_logic_server_cli/prototypes/base/test/readme_test.md +72 -4
- api_logic_server_cli/prototypes/basic_demo/iteration/api/api_discovery/order_b2b.py +22 -18
- api_logic_server_cli/prototypes/basic_demo/ui/my-react-app-cards/README.md +3 -1
- api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +30 -9
- api_logic_server_cli/prototypes/manager/.github/sync-to-dev-src.sh +42 -0
- api_logic_server_cli/prototypes/manager/.vscode/launch.json +30 -30
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.github/.copilot-instructions.md +741 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/db.dbml +43 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/readme_training.md +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/testing.md +593 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/AI-Generated-Tests-from-Rules.md +554 -0
- api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/behave_logic_report.py +35 -9
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/order_processing.feature +72 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/about_steps.py +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/order_processing_steps.py +553 -0
- api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/features/steps/test_utils.py +5 -1
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/behave.log +79 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Balance_Check.log +2 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Customer_Change.log +20 -0
- 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
- 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
- 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
- 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
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Deletion.log +20 -0
- 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
- 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
- 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
- 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
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Order_Shipping.log +19 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Order_Unshipping.log +19 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Product_Change.log +26 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Ship_Order.log +18 -0
- 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
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/System_Ready.log +3 -0
- 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
- 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
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Transaction_Processing.log +19 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Unship_Order.log +18 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report.md +303 -0
- api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/readme_test.md +72 -4
- api_logic_server_cli/prototypes/manager/samples/readme_samples.md +1 -1
- api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/copilot-dev-context.md +150 -0
- api_logic_server_cli/prototypes/manager/system/genai/prompt_inserts/sqlite_inserts_model_test_hints_with_relns.prompt +94 -0
- api_logic_server_cli/prototypes/nw/test/readme_test_nw.md +333 -92
- apilogicserver-15.2.0.dist-info/METADATA +506 -0
- {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/RECORD +615 -535
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/db.dbml +0 -14
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/features/steps/about.py +0 -20
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/logs/behave.log +0 -0
- apilogicserver-15.1.2.dist-info/METADATA +0 -169
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.devcontainer-option/For_VSCode.dockerfile +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.devcontainer-option/devcontainer.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.devcontainer-option/readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.devcontainer-option/setup.sh +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.env +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.gitignore +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/ApiLogicServer.xml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/Report_Behave_Logic.xml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/Run_Behave.xml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/Windows_Run_Behave.xml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/run___No_Security.xml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.idea/runConfigurations/run_docker.xml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.vscode/launch.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.vscode/settings.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/.vscode/venv_init.sh +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/_config.yml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/_layouts/redirect.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/__init__.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/auto_discovery.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/mcp_discovery.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/mcp_expose_api_models.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/new_service.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/newer_service.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/ontimize_api.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/order_b2b_service.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/api_discovery/system.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/customize_api.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/expose_api_models.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/json_encoder.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/readme_customize_api.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/api_utils.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/custom_endpoint.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/expression_parser.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/gen_csv_report.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/gen_pdf_report.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/opt_locking/opt_locking.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api/system/opt_locking/readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/api_logic_server_run.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/__init__.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/activate_logicbank.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/config.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/default.env +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/logging-reduced.yml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/logging.yml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/mypy.ini +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/config/server_setup.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/api/api_discovery/openapi.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/config/default.env +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/database/db.sqlite +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/database/models.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/docs/mcp_learning/mcp_discovery.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/logic/cocktail-napkin.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/logic/declare_logic.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/logic/logic_discovery/email_request.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/logic/logic_discovery/simple_constraints.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/security/declare_security.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/admin/admin.yaml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/admin/home.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/README.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/README_create_react_app.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/package-lock.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/package.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/favicon.ico +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/index.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/logo192.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/logo512.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/manifest.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/public/robots.txt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/App.css +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/App.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/App.test.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Config-reference.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Config.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Customer-reference.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Customer.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Item.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Order.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/Product.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/SysEmail.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/SysMcp.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/app_loader.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/index.css +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/index.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/logo.svg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/rav4-jsonapi-client/.eslintrc +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/reportWebVitals.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/customizations/ui/reference_react_app/src/setupTests.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/__init__.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/alembic_run.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/env.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/readme_alembic.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/script.py.mako +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/versions/ae6a5c2fdc47_autogenerated.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic/versions/readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/alembic.ini +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/authentication_db.sqlite +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/bind_dbs.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/customize_models.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/database_discovery/authentication_models.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/database_discovery/auto_discovery.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/db.sqlite +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/db_debug/db_debug.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/mcp_db.sqlite +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/mcp_models.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/models.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/system/SAFRSBaseX.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/test_data/alp_init.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/test_data/readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/test_data/response2code.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/database/test_data/test_data_preamble.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/auth-db/authdb_mysql.Dockerfile +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/auth-db/authdb_mysql.sql +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/auth-db/authdb_postgres.sql +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-compose-dev-azure/azure-deploy.sh +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-compose-dev-local/docker-compose-dev-local.yml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-compose-dev-local/docker-compose.sh +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-image/build_image.dockerfile +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-image/build_image.sh +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-image/env.list +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-image/run_image.sh +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-standard-image/docker-compose-standard-image.yml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/docker-standard-image/env.list +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/h2/keycloakdb.mv.db +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/h2/keycloakdb.trace.db +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/import/kcals-realm.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/import/kcals-users-0.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/import/master-realm.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/data/import/master-users-0.json +0 -0
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/docker-compose-dev-network.yml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/docker-compose-nginx.yml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/docker-compose.yml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/import/kcals-realm.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/import/kcals-users-0.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/import/master-realm.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/import/master-users-0.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/nginx/cert.pem +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/nginx/key.pem +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/nginx/nginx.conf +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/startup_log_nginx.txt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/startup_log_no_nginx.txt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/unused/auth_provider.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/keycloak/unused/unused-docker-compose-keycloak.sh +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/python-anywhere/python_anywhere_wsgi.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/devops/readme-devops.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/graphics/readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/logic/readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/logic_suggestions/readme_logic_suggestions.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/mcp_learning/mcp.prompt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/mcp_learning/mcp_schema.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/models-not-code.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/runtime engines.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/system-creation-vibe.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/admin_app_1_context.prompt.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/admin_app_2_functionality.prompt.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/admin_app_3_architecture.prompt.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/logic_bank_api.prompt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/logic_example.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/react_map.prompt.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/docs/training/react_tree.prompt.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/kafka/kafka_consumer.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/kafka/kafka_producer.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/kafka/kafka_readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_context_results.txt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_discovery_response.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_request.prompt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_schema.txt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_tool_context_response.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/examples/mcp_tool_context_response_get.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/mcp_client_executor.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/mcp_server_discovery.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/mcp/readme-mcp.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/n8n/N8N_WebHook_from_ApiLogicServer.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/n8n/n8n_producer.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/n8n/n8n_readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/row_dict_maps/OrderB2BMapper.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/row_dict_maps/row_dict_maps_readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/system/FlaskKafka.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/integration/system/RowDictMapper.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/api/api_discovery/order_b2b.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/database/db.sqlite +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/docs/er_diagram.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/integration/row_dict_maps/OrderB2B.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/integration/row_dict_maps/OrderShipping.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/logic/declare_logic.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/iteration/ui/admin/admin.yaml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/declarative-vs-procedural-comparison.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/declare_logic.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/load_verify_rules.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/app_integration.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/auto_discovery.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/check_credit.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/mcp_client_executor_request.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/readme_logic_discovery.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/logic_discovery/use_case.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/procedural/credit_service.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/procedural/declarative-vs-procedural-comparison.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/procedural/declarative-vs-procedural-comparison.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/logic/readme_logic.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/readme.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/readme_project.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/readme_standard.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/readme_vibe.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/requirements.txt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/run.ps1 +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/run.sh +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/__init__.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/__init__.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/abstract_authentication_provider.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/keycloak/auth_provider.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/memory/auth_provider.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/memory/auth_provider_no_swagger.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/authentication_provider/sql/auth_provider.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/declare_security.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/readme_security.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/system/authentication.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/system/authorization.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/security/system/custom_swagger.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/__init__.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/__init__.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/behave_run.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/api_logic_server_behave/features/about.feature +0 -0
- /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
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/test/basic/server_test.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/__init__.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/admin.yaml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/admin_loader.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/authentication_admin.yaml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/home.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/admin/mcp_admin.yaml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.browserslistrc +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.dockerignore +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.editorconfig +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.eslintrc.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/.gitignore +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/README.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/angular.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/app_model.yaml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/docker-compose-ontimize.yml +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/e2e/protractor.conf.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/e2e/src/app.e2e-spec.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/e2e/src/app.po.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/e2e/tsconfig.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/karma.conf.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/nginx/nginx.conf +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/ngsw-config.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/package-lock.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/package.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.component.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.component.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.component.spec.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.component.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.config.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/app.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.component.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.component.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.component.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/login/login.theme.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/Customer-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Customer/Customer.module.ts +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/Item-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Item/Item.module.ts +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/Order-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Order/Order.module.ts +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/Product-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/Product/Product.module.ts +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.component.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.component.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.component.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/about/about.theme.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home.component.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home.component.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home.component.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/home/home.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main-theme.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main.component.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main.component.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main.component.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/main.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings-routing.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings.component.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings.component.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings.component.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/main/settings/settings.module.ts +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/app.menu.config.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/app.services.config.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/constant.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/app/shared/shared.module.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/.gitkeep +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/css/app.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/css/loader.css +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/i18n/en.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/i18n/es.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize128.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize16.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize256.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize32.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize48.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize64.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize72.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/icons/ontimize96.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/github.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/login_bg.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/no-image-transparent.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/no-image.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/ontimize.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/ontimize_web_log.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/sidenav-closed.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/sidenav-closed.svg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/sidenav-opened.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/sidenav-opened.svg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/images/user_profile.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/js/domchange.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/assets/js/keyboard.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/environments/environment.prod.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/environments/environment.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/favicon.ico +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/index.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/main.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/manifest.webmanifest +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/polyfills.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/styles.scss +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/src/test.ts +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/tsconfig.app.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/tsconfig.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/app/tsconfig.spec.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/andrew.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/anne.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/janet.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/laura.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/margaret.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/michael.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/nancy.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/robert.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Employee/steven.jpg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/beverages.gif +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/cereals.gif +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/condiments.gif +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/confections.gif +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/diary.gif +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/meat.gif +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/produce.gif +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/images/Product/seafood.gif +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/README.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/README_create_react_app.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/package-lock.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/package.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/favicon.ico +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/index.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/logo192.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/logo512.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/manifest.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/public/robots.txt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/App.css +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/App.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/App.test.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Config.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Customer.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Item.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Order.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/Product.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/app_loader.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/index.css +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/index.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/logo.svg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/.eslintrc +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/.yarnrc.yml +0 -0
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/errors.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/errors.ts +0 -0
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/index.tsx +0 -0
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/resourceLookup.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/rav4-jsonapi-client/resourceLookup.ts +0 -0
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/reportWebVitals.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app/src/setupTests.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/README.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/README_create_react_app.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/package-lock.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/package.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/product-cards.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/favicon.ico +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/index.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/logo192.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/logo512.png +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/manifest.json +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/public/robots.txt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/App.css +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/App.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/App.test.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Config.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Customer.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Item.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Order.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/Product.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/app_loader.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/index.css +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/index.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/logo.svg +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/rav4-jsonapi-client/.eslintrc +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/reportWebVitals.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/my-react-app-cards/src/setupTests.js +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/templates/bar_chart.jinja +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/ui/templates/content.html +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/py.py +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/readme_venv.md +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/requirements-no-cli.txt +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/venv-linux.sh +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/venv.ps1 +0 -0
- /api_logic_server_cli/prototypes/manager/samples/{basic_demo → basic_demo_sample}/venv_setup/venv.sh +0 -0
- /api_logic_server_cli/prototypes/manager/system/{install-ApiLogicServer-dev → ApiLogicServer-Internal-Dev}/install-ApiLogicServer-dev.ps1 +0 -0
- /api_logic_server_cli/prototypes/manager/system/{install-ApiLogicServer-dev → ApiLogicServer-Internal-Dev}/install-ApiLogicServer-dev.sh +0 -0
- /api_logic_server_cli/prototypes/manager/system/{install-ApiLogicServer-dev → ApiLogicServer-Internal-Dev}/readme.md +0 -0
- {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/WHEEL +0 -0
- {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/entry_points.txt +0 -0
- {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/licenses/LICENSE +0 -0
- {apilogicserver-15.1.2.dist-info → apilogicserver-15.2.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Verify Behave step ordering for multi-param patterns.
|
|
4
|
+
|
|
5
|
+
Usage:
|
|
6
|
+
cd test/api_logic_server_behave
|
|
7
|
+
python check_step_order.py
|
|
8
|
+
|
|
9
|
+
This script checks if Behave step patterns are ordered from most specific
|
|
10
|
+
to most general, preventing Rule #0.5 violations that cause silent test failures.
|
|
11
|
+
|
|
12
|
+
Rule #0.5: Behave matches steps by FIRST pattern that fits.
|
|
13
|
+
More specific patterns MUST come before general ones.
|
|
14
|
+
"""
|
|
15
|
+
import re
|
|
16
|
+
import sys
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def check_step_order(steps_file):
|
|
21
|
+
"""
|
|
22
|
+
Check if multi-item patterns come before single-item patterns.
|
|
23
|
+
|
|
24
|
+
Returns list of issues found, or empty list if order is correct.
|
|
25
|
+
"""
|
|
26
|
+
with open(steps_file) as f:
|
|
27
|
+
lines = f.readlines()
|
|
28
|
+
|
|
29
|
+
issues = []
|
|
30
|
+
when_patterns = []
|
|
31
|
+
|
|
32
|
+
for i, line in enumerate(lines, 1):
|
|
33
|
+
# Look for @when patterns with parameters
|
|
34
|
+
if match := re.match(r"@when\('.*with.*\{", line):
|
|
35
|
+
# Calculate specificity score
|
|
36
|
+
param_count = line.count('{') # More parameters = more specific
|
|
37
|
+
has_and = ' and ' in line # "and" keyword = multi-item pattern
|
|
38
|
+
|
|
39
|
+
# Check for special keywords that make patterns more specific
|
|
40
|
+
special_keywords = ['carbon neutral', 'shipped', 'unshipped']
|
|
41
|
+
has_special_keyword = any(k in line for k in special_keywords)
|
|
42
|
+
|
|
43
|
+
# Specificity score: higher = more specific
|
|
44
|
+
specificity = param_count + (2 if has_and else 0) + (3 if has_special_keyword else 0)
|
|
45
|
+
|
|
46
|
+
when_patterns.append((i, specificity, line.strip()))
|
|
47
|
+
|
|
48
|
+
# Check if patterns are in descending specificity order
|
|
49
|
+
for i in range(len(when_patterns) - 1):
|
|
50
|
+
curr_line, curr_spec, curr_text = when_patterns[i]
|
|
51
|
+
next_line, next_spec, next_text = when_patterns[i + 1]
|
|
52
|
+
|
|
53
|
+
# Check if patterns are mutually exclusive (both have unique keywords)
|
|
54
|
+
curr_has_unique = any(k in curr_text for k in ['carbon neutral', 'shipped'])
|
|
55
|
+
next_has_unique = any(k in next_text for k in [' and '])
|
|
56
|
+
mutually_exclusive = curr_has_unique and next_has_unique
|
|
57
|
+
|
|
58
|
+
# If next pattern is MORE specific than current AND not mutually exclusive
|
|
59
|
+
if next_spec > curr_spec and not mutually_exclusive:
|
|
60
|
+
issues.append(f"❌ Line {next_line} (specificity={next_spec}) should come BEFORE line {curr_line} (specificity={curr_spec})")
|
|
61
|
+
issues.append(f" More specific: {next_text}")
|
|
62
|
+
issues.append(f" Less specific: {curr_text}")
|
|
63
|
+
issues.append(f" FIX: Move line {next_line} to BEFORE line {curr_line}")
|
|
64
|
+
|
|
65
|
+
# CRITICAL CHECK: Multi-item must come before single-item (same base pattern)
|
|
66
|
+
curr_has_and = ' and ' in curr_text
|
|
67
|
+
next_has_and = ' and ' in next_text
|
|
68
|
+
curr_param_count = curr_text.count('{')
|
|
69
|
+
next_param_count = next_text.count('{')
|
|
70
|
+
|
|
71
|
+
# If current is single-item (2 params, no 'and') and next is multi-item (4+ params, has 'and')
|
|
72
|
+
if (not curr_has_and and curr_param_count == 2 and
|
|
73
|
+
next_has_and and next_param_count >= 4):
|
|
74
|
+
issues.append(f"❌ CRITICAL: Line {next_line} (multi-item) MUST come BEFORE line {curr_line} (single-item)")
|
|
75
|
+
issues.append(f" This causes silent failures: orders not created, balance=0")
|
|
76
|
+
issues.append(f" Multi-item: {next_text}")
|
|
77
|
+
issues.append(f" Single-item: {curr_text}")
|
|
78
|
+
issues.append(f" FIX: Move line {next_line} to BEFORE line {curr_line}")
|
|
79
|
+
|
|
80
|
+
return issues
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def main():
|
|
84
|
+
"""Check all step files in features/steps directory."""
|
|
85
|
+
steps_dir = Path('features/steps')
|
|
86
|
+
|
|
87
|
+
if not steps_dir.exists():
|
|
88
|
+
print(f"❌ Directory not found: {steps_dir}")
|
|
89
|
+
print(" Run this script from: test/api_logic_server_behave/")
|
|
90
|
+
sys.exit(1)
|
|
91
|
+
|
|
92
|
+
all_issues = []
|
|
93
|
+
files_checked = 0
|
|
94
|
+
|
|
95
|
+
for steps_file in steps_dir.glob('*_steps.py'):
|
|
96
|
+
files_checked += 1
|
|
97
|
+
issues = check_step_order(steps_file)
|
|
98
|
+
if issues:
|
|
99
|
+
all_issues.extend([f"\n📁 {steps_file}:"] + issues)
|
|
100
|
+
|
|
101
|
+
if all_issues:
|
|
102
|
+
print("=" * 70)
|
|
103
|
+
print("Step Ordering Issues Found (Rule #0.5 Violation)")
|
|
104
|
+
print("=" * 70)
|
|
105
|
+
print('\n'.join(all_issues))
|
|
106
|
+
print("\n" + "=" * 70)
|
|
107
|
+
print("IMPACT: Tests may pass but produce wrong results (e.g., balance=0)")
|
|
108
|
+
print("ACTION: Reorder @when patterns from most→least specific")
|
|
109
|
+
print("=" * 70)
|
|
110
|
+
sys.exit(1)
|
|
111
|
+
else:
|
|
112
|
+
print("=" * 70)
|
|
113
|
+
print(f"✅ All step patterns correctly ordered ({files_checked} files checked)")
|
|
114
|
+
print(" Rule #0.5: Most specific → Most general ✓")
|
|
115
|
+
print("=" * 70)
|
|
116
|
+
sys.exit(0)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
if __name__ == '__main__':
|
|
120
|
+
main()
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Test Data Helpers - Query or Create Test Data
|
|
3
|
+
|
|
4
|
+
These helpers ensure tests work with any database state by:
|
|
5
|
+
1. Querying existing data when available
|
|
6
|
+
2. Creating test data programmatically when needed
|
|
7
|
+
3. Using correct data types (Integer IDs, not strings)
|
|
8
|
+
|
|
9
|
+
Usage:
|
|
10
|
+
customer_id = get_or_create_test_customer(balance=0, credit_limit=1000)
|
|
11
|
+
product_id = get_or_create_test_product(unit_price=5.00)
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
import requests
|
|
15
|
+
import json
|
|
16
|
+
import test_utils
|
|
17
|
+
from decimal import Decimal
|
|
18
|
+
import time
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def get_or_create_test_customer(name: str = "Test Customer",
|
|
22
|
+
balance: float = 0,
|
|
23
|
+
credit_limit: float = 1000) -> int:
|
|
24
|
+
"""
|
|
25
|
+
Create a NEW test customer (always creates, never reuses).
|
|
26
|
+
|
|
27
|
+
IMPORTANT: balance is a derived aggregate (sum of unshipped orders).
|
|
28
|
+
- If balance=0: Just create customer (aggregates default to 0)
|
|
29
|
+
- If balance>0: Must be created by caller via orders/items (see note below)
|
|
30
|
+
|
|
31
|
+
NOTE: This function does NOT create filler orders to reach target balance.
|
|
32
|
+
If you need balance > 0, the caller must create orders/items after getting customer_id.
|
|
33
|
+
|
|
34
|
+
Returns INTEGER customer ID (not string!)
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
name: Customer name (timestamp added to ensure uniqueness)
|
|
38
|
+
balance: Target balance (for documentation - NOT enforced by this function)
|
|
39
|
+
credit_limit: Credit limit
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
int: Customer ID (e.g., 1, not 'CUST-1')
|
|
43
|
+
"""
|
|
44
|
+
# Always create NEW customer (add timestamp to name for uniqueness)
|
|
45
|
+
unique_name = f"{name} {int(time.time() * 1000)}" # Add millisecond timestamp
|
|
46
|
+
|
|
47
|
+
post_uri = 'http://localhost:5656/api/Customer/'
|
|
48
|
+
post_data = {
|
|
49
|
+
"data": {
|
|
50
|
+
"attributes": {
|
|
51
|
+
"name": unique_name,
|
|
52
|
+
# NOTE: Do NOT set balance here - it's a derived aggregate!
|
|
53
|
+
"credit_limit": credit_limit
|
|
54
|
+
},
|
|
55
|
+
"type": "Customer"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
r = requests.post(url=post_uri, json=post_data, headers=test_utils.login())
|
|
59
|
+
result = json.loads(r.text)
|
|
60
|
+
return int(result['data']['id']) # Convert to int!
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def get_or_create_test_product(name: str = "Test Product",
|
|
64
|
+
unit_price: float = 5.00) -> int:
|
|
65
|
+
"""
|
|
66
|
+
Get or create a test product with specified attributes.
|
|
67
|
+
|
|
68
|
+
Returns INTEGER product ID (not string!)
|
|
69
|
+
|
|
70
|
+
Args:
|
|
71
|
+
name: Product name
|
|
72
|
+
unit_price: Unit price
|
|
73
|
+
|
|
74
|
+
Returns:
|
|
75
|
+
int: Product ID (e.g., 1, not 'PROD-A')
|
|
76
|
+
"""
|
|
77
|
+
# Try to find existing product
|
|
78
|
+
get_uri = f'http://localhost:5656/api/Product/?filter[name]={name}'
|
|
79
|
+
r = requests.get(url=get_uri, headers=test_utils.login())
|
|
80
|
+
data = json.loads(r.text)
|
|
81
|
+
|
|
82
|
+
if data.get('data') and len(data['data']) > 0:
|
|
83
|
+
product_id = int(data['data'][0]['id']) # Convert to int!
|
|
84
|
+
# Update to ensure correct price
|
|
85
|
+
patch_uri = f'http://localhost:5656/api/Product/{product_id}/'
|
|
86
|
+
patch_data = {
|
|
87
|
+
"data": {
|
|
88
|
+
"attributes": {"unit_price": unit_price},
|
|
89
|
+
"type": "Product",
|
|
90
|
+
"id": product_id
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
requests.patch(url=patch_uri, json=patch_data, headers=test_utils.login())
|
|
94
|
+
return product_id
|
|
95
|
+
else:
|
|
96
|
+
# Create new product
|
|
97
|
+
post_uri = 'http://localhost:5656/api/Product/'
|
|
98
|
+
post_data = {
|
|
99
|
+
"data": {
|
|
100
|
+
"attributes": {
|
|
101
|
+
"name": name,
|
|
102
|
+
"unit_price": unit_price
|
|
103
|
+
},
|
|
104
|
+
"type": "Product"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
r = requests.post(url=post_uri, json=post_data, headers=test_utils.login())
|
|
108
|
+
result = json.loads(r.text)
|
|
109
|
+
return int(result['data']['id']) # Convert to int!
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def create_test_order(customer_id: int, notes: str = "Test Order") -> int:
|
|
113
|
+
"""
|
|
114
|
+
Create a test order (always creates new, doesn't reuse).
|
|
115
|
+
|
|
116
|
+
Args:
|
|
117
|
+
customer_id: INTEGER customer ID
|
|
118
|
+
notes: Order notes
|
|
119
|
+
|
|
120
|
+
Returns:
|
|
121
|
+
int: Order ID
|
|
122
|
+
"""
|
|
123
|
+
post_uri = 'http://localhost:5656/api/Order/'
|
|
124
|
+
post_data = {
|
|
125
|
+
"data": {
|
|
126
|
+
"attributes": {
|
|
127
|
+
"customer_id": customer_id, # Integer, not string!
|
|
128
|
+
"notes": notes,
|
|
129
|
+
"date_shipped": None # Unshipped
|
|
130
|
+
},
|
|
131
|
+
"type": "Order"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
r = requests.post(url=post_uri, json=post_data, headers=test_utils.login())
|
|
135
|
+
result = json.loads(r.text)
|
|
136
|
+
return int(result['data']['id']) # Convert to int!
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def create_test_item(order_id: int, product_id: int, quantity: int = 10) -> int:
|
|
140
|
+
"""
|
|
141
|
+
Create a test order item.
|
|
142
|
+
|
|
143
|
+
Args:
|
|
144
|
+
order_id: INTEGER order ID
|
|
145
|
+
product_id: INTEGER product ID
|
|
146
|
+
quantity: Quantity
|
|
147
|
+
|
|
148
|
+
Returns:
|
|
149
|
+
int: Item ID
|
|
150
|
+
"""
|
|
151
|
+
post_uri = 'http://localhost:5656/api/Item/'
|
|
152
|
+
post_data = {
|
|
153
|
+
"data": {
|
|
154
|
+
"attributes": {
|
|
155
|
+
"order_id": order_id, # Integer!
|
|
156
|
+
"product_id": product_id, # Integer!
|
|
157
|
+
"quantity": quantity
|
|
158
|
+
},
|
|
159
|
+
"type": "Item"
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
r = requests.post(url=post_uri, json=post_data, headers=test_utils.login())
|
|
163
|
+
result = json.loads(r.text)
|
|
164
|
+
if r.status_code > 300 or 'data' not in result:
|
|
165
|
+
raise Exception(f"Failed to create item: {r.status_code} - {r.text}")
|
|
166
|
+
return int(result['data']['id']) # Convert to int!
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
def delete_test_data(customer_id: int = None, order_id: int = None, item_id: int = None):
|
|
170
|
+
"""
|
|
171
|
+
Clean up test data (use in teardown or when resetting state).
|
|
172
|
+
|
|
173
|
+
Args:
|
|
174
|
+
customer_id: Customer to delete
|
|
175
|
+
order_id: Order to delete
|
|
176
|
+
item_id: Item to delete
|
|
177
|
+
"""
|
|
178
|
+
if item_id:
|
|
179
|
+
delete_uri = f'http://localhost:5656/api/Item/{item_id}/'
|
|
180
|
+
requests.delete(url=delete_uri, headers=test_utils.login())
|
|
181
|
+
|
|
182
|
+
if order_id:
|
|
183
|
+
delete_uri = f'http://localhost:5656/api/Order/{order_id}/'
|
|
184
|
+
requests.delete(url=delete_uri, headers=test_utils.login())
|
|
185
|
+
|
|
186
|
+
if customer_id:
|
|
187
|
+
delete_uri = f'http://localhost:5656/api/Customer/{customer_id}/'
|
|
188
|
+
requests.delete(url=delete_uri, headers=test_utils.login())
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
def get_customer(customer_id: int) -> dict:
|
|
192
|
+
"""
|
|
193
|
+
Fetch customer data by INTEGER ID.
|
|
194
|
+
|
|
195
|
+
Args:
|
|
196
|
+
customer_id: INTEGER customer ID (e.g., 1, not 'CUST-1')
|
|
197
|
+
|
|
198
|
+
Returns:
|
|
199
|
+
dict: Customer attributes (id, name, balance, credit_limit, etc.)
|
|
200
|
+
"""
|
|
201
|
+
get_uri = f'http://localhost:5656/api/Customer/{customer_id}/'
|
|
202
|
+
r = requests.get(url=get_uri, headers=test_utils.login())
|
|
203
|
+
if r.status_code > 300:
|
|
204
|
+
raise Exception(f'get_customer failed with {r.text}')
|
|
205
|
+
result_data = json.loads(r.text)
|
|
206
|
+
return result_data['data']['attributes']
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
def get_order(order_id: int) -> dict:
|
|
210
|
+
"""
|
|
211
|
+
Fetch order data by INTEGER ID.
|
|
212
|
+
|
|
213
|
+
Args:
|
|
214
|
+
order_id: INTEGER order ID
|
|
215
|
+
|
|
216
|
+
Returns:
|
|
217
|
+
dict: Order attributes
|
|
218
|
+
"""
|
|
219
|
+
get_uri = f'http://localhost:5656/api/Order/{order_id}/'
|
|
220
|
+
r = requests.get(url=get_uri, headers=test_utils.login())
|
|
221
|
+
if r.status_code > 300:
|
|
222
|
+
raise Exception(f'get_order failed with {r.text}')
|
|
223
|
+
result_data = json.loads(r.text)
|
|
224
|
+
return result_data['data']['attributes']
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
def get_item(item_id: int) -> dict:
|
|
228
|
+
"""
|
|
229
|
+
Fetch item data by INTEGER ID.
|
|
230
|
+
|
|
231
|
+
Args:
|
|
232
|
+
item_id: INTEGER item ID
|
|
233
|
+
|
|
234
|
+
Returns:
|
|
235
|
+
dict: Item attributes
|
|
236
|
+
"""
|
|
237
|
+
get_uri = f'http://localhost:5656/api/Item/{item_id}/'
|
|
238
|
+
r = requests.get(url=get_uri, headers=test_utils.login())
|
|
239
|
+
if r.status_code > 300:
|
|
240
|
+
raise Exception(f'get_item failed with {r.text}')
|
|
241
|
+
result_data = json.loads(r.text)
|
|
242
|
+
return result_data['data']['attributes']
|
api_logic_server_cli/prototypes/base/test/api_logic_server_behave/features/steps/test_utils.py
CHANGED
|
@@ -3,6 +3,7 @@ import json
|
|
|
3
3
|
from dotmap import DotMap
|
|
4
4
|
import sys, os
|
|
5
5
|
from pathlib import Path
|
|
6
|
+
from urllib.parse import quote
|
|
6
7
|
|
|
7
8
|
__version__ = '0.0.1' # keycloak support
|
|
8
9
|
|
|
@@ -29,7 +30,10 @@ def prt(msg: any, test: str= None) -> None:
|
|
|
29
30
|
test_val = test[0:25]
|
|
30
31
|
if "Server Log: Behave Run Successfully Completed" in msg:
|
|
31
32
|
debug_stop = 'good breakpoint'
|
|
32
|
-
|
|
33
|
+
# URL-encode msg and test to handle special characters, newlines, spaces, etc.
|
|
34
|
+
msg_encoded = quote(str(msg))
|
|
35
|
+
test_encoded = quote(str(test)) if test else 'None'
|
|
36
|
+
msg_url = f'http://localhost:5656/server_log?msg={msg_encoded}&test={test_encoded}&dir=test/api_logic_server_behave/logs/scenario_logic_logs'
|
|
33
37
|
r = requests.get(msg_url)
|
|
34
38
|
|
|
35
39
|
|
|
@@ -1,4 +1,19 @@
|
|
|
1
|
+
This report shows test results with embedded logic execution traces.
|
|
2
|
+
|
|
3
|
+
**For complete documentation on using Behave:** See [Behave.md](https://apilogicserver.github.io/Docs/Behave/)
|
|
4
|
+
|
|
5
|
+
**About This Project:**
|
|
6
|
+
|
|
7
|
+
_**TODO:** [Describe your project here - what it does, key features tested, etc.]_
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
1
11
|
This report combines:
|
|
12
|
+
|
|
2
13
|
* Behave log (lists Features, test Scenarios, results), with embedded
|
|
3
14
|
* Logic showing rules executed, and how they operated
|
|
4
15
|
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Behave Logic Report
|
|
19
|
+
|
|
@@ -1,75 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
This report shows test results with embedded logic execution traces.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**For complete documentation on using Behave:** See [Behave.md](https://apilogicserver.github.io/Docs/Behave/)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**About This Project:**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
_**TODO:** [Describe your project here - what it does, key features tested, etc.]_
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
This report combines:
|
|
12
12
|
|
|
13
|
+
* Behave log (lists Features, test Scenarios, results), with embedded
|
|
14
|
+
* Logic showing rules executed, and how they operated
|
|
13
15
|
|
|
16
|
+
---
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
# Behave Logic Report
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
# Using Behave
|
|
20
|
-
|
|
21
|
-
<figure><img src="https://raw.githubusercontent.com/ApiLogicServer/Docs/main/docs/images/behave/TDD-ide.png?raw=true"></figure>
|
|
22
|
-
|
|
23
|
-
Behave is pre-installed with API Logic Server. Use it as shown above:
|
|
24
|
-
|
|
25
|
-
1. Create `.feature` files to define ***Scenarios*** (aka tests) for ***Features*** (aka Stories)
|
|
26
|
-
|
|
27
|
-
2. Code `.py` files to implement Scenario tests
|
|
28
|
-
|
|
29
|
-
3. Run Test Suite: Launch Configuration `Behave Run`. This runs all your Scenarios, and produces a summary report of your Features and the test results.
|
|
30
|
-
|
|
31
|
-
4. Report: Launch Configuration `Behave Report` to create the wiki file shown at the top of this page.
|
|
32
|
-
|
|
33
|
-
These steps are further defined, below. Explore the samples in the sample project.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
## 1. Create `.feature` file to define Scenario
|
|
38
|
-
|
|
39
|
-
Feature (aka Story) files are designed to promote IT / business user collaboration.
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
## 2. Code `.py` file to implement test
|
|
44
|
-
|
|
45
|
-
Implement your tests in Python. Here, the tests are largely _read existing data_, _run transaction_, and _test results_, using the API. You can obtain the URLs from the swagger.
|
|
46
|
-
|
|
47
|
-
Key points:
|
|
48
|
-
|
|
49
|
-
* Link your scenario / implementations with annotations, as shown for _Order Placed with excessive quantity_.
|
|
50
|
-
|
|
51
|
-
* Include the `test_utils.prt()` call; be sure to use specify the scenario name as the 2nd argument. This is what drives the name of the Logic Log file, discussed below.
|
|
52
|
-
|
|
53
|
-
* Optionally, include a Python docstring on your `when` implementation as shown above, delimited by `"""` strings (see _"Familiar logic pattern"_ in the screen shot, above). If provided, this will be written into the wiki report.
|
|
54
|
-
|
|
55
|
-
* Important: the system assumes the following line identifies the scenario_name; be sure to include it.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## 3. Run Test Suite: Launch Configuration `Behave Run`
|
|
60
|
-
|
|
61
|
-
You can now execute your Test Suite. Run the `Behave Run` Launch Configuration, and Behave will run all of the tests, producing the outputs (`behave.log` and `<scenario.logs>` shown above.
|
|
62
|
-
|
|
63
|
-
* Windows users will need to run `Windows Behave Run`
|
|
64
|
-
|
|
65
|
-
* You can run just 1 scenario using `Behave Scenario`
|
|
66
|
-
|
|
67
|
-
* You can set breakpoints in your tests
|
|
68
|
-
|
|
69
|
-
The server must be running for these tests. Use the Launch Configuration `ApiLogicServer`, or `python api_logic_server_run.py`. The latter does not run the debugger, which you may find more convenient since changes to your test code won't restart the server.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
## 4. Report: Launch Configuration `Behave Report'
|
|
74
|
-
|
|
75
|
-
Run this to create the wiki reports from the logs in step 3.
|
|
@@ -49,6 +49,26 @@ python behave_run.py
|
|
|
49
49
|
# In Debug Console, select "Behave Run" from dropdown (not server log)
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
+
### Running Specific Tests
|
|
53
|
+
|
|
54
|
+
You can run specific features or scenarios using behave's command-line options:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Run a specific feature file
|
|
58
|
+
behave features/check_credit.feature
|
|
59
|
+
|
|
60
|
+
# Run a specific scenario by name
|
|
61
|
+
behave -n "Good Order - Basic Chain"
|
|
62
|
+
|
|
63
|
+
# Run scenarios matching a pattern
|
|
64
|
+
behave -n ".*credit.*"
|
|
65
|
+
|
|
66
|
+
# Run with tags (if you've tagged scenarios with @smoke, @wip, etc.)
|
|
67
|
+
behave --tags=smoke
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Note**: When using `behave` directly (not `behave_run.py`), logic logs still generate in `logs/scenario_logic_logs/`, but the wrapper provides additional error checking.
|
|
71
|
+
|
|
52
72
|
### Alternative: Basic Server Tests
|
|
53
73
|
|
|
54
74
|
```bash
|
|
@@ -205,6 +225,29 @@ def step_impl(context):
|
|
|
205
225
|
assert final_state.calculated_field == expected_value
|
|
206
226
|
```
|
|
207
227
|
|
|
228
|
+
**Understanding the `context` Object:**
|
|
229
|
+
|
|
230
|
+
The `context` object in Behave is shared across all steps in a scenario, making it perfect for passing data between Given/When/Then steps:
|
|
231
|
+
|
|
232
|
+
```python
|
|
233
|
+
# Store values in GIVEN steps
|
|
234
|
+
context.customer_id = 123
|
|
235
|
+
context.initial_balance = 1000
|
|
236
|
+
|
|
237
|
+
# Access in WHEN steps
|
|
238
|
+
order_data = {"customer_id": context.customer_id, "amount": 500}
|
|
239
|
+
|
|
240
|
+
# Verify in THEN steps
|
|
241
|
+
assert context.response.status_code == 200
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**Common context patterns:**
|
|
245
|
+
- `context.customer_id`, `context.order_id`, etc. - Store entity IDs
|
|
246
|
+
- `context.initial_balance`, `context.before_amount` - Capture "before" state
|
|
247
|
+
- `context.response` - Store API response for later assertions
|
|
248
|
+
- `context.auth_header` - Store authentication token
|
|
249
|
+
- `context.expected_error` - Store expected error for negative tests
|
|
250
|
+
|
|
208
251
|
## 🤖 For GitHub Copilot
|
|
209
252
|
|
|
210
253
|
When generating tests for API Logic Server projects:
|
|
@@ -354,10 +397,35 @@ delete_url = f"{base_url}/{EntityName}/{entity_id}/"
|
|
|
354
397
|
|
|
355
398
|
## 📊 Test Reports and Logging
|
|
356
399
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
400
|
+
### Viewing Test Output
|
|
401
|
+
|
|
402
|
+
After running tests, you can view results in multiple locations:
|
|
403
|
+
|
|
404
|
+
- **Console Output**: Real-time pass/fail status during test execution
|
|
405
|
+
- **Behave Log**: `logs/behave.log` - Detailed test execution output
|
|
406
|
+
- **Scenario Logic Logs**: `logs/scenario_logic_logs/*.log` - One file per scenario showing rule execution
|
|
407
|
+
- **Server Logs**: API request/response details and errors in server console
|
|
408
|
+
|
|
409
|
+
### Generating Logic Reports
|
|
410
|
+
|
|
411
|
+
To create a comprehensive markdown report showing which rules executed in each scenario:
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
# From test/api_logic_server_behave directory
|
|
415
|
+
python behave_logic_report.py run
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
This generates `reports/Behave Logic Report.md` containing:
|
|
419
|
+
- **Test Scenarios**: All executed scenarios with descriptions
|
|
420
|
+
- **Logic Documentation**: Step docstrings explaining what each test validates
|
|
421
|
+
- **Rules Fired**: Which business logic rules executed during each scenario
|
|
422
|
+
- **Disclosure Areas**: Expandable sections showing detailed logic traces
|
|
423
|
+
|
|
424
|
+
The report is useful for:
|
|
425
|
+
- Understanding which rules are tested by which scenarios
|
|
426
|
+
- Documenting test coverage for business stakeholders
|
|
427
|
+
- Debugging rule execution order and dependencies
|
|
428
|
+
- Verifying that expected rules actually fired
|
|
361
429
|
|
|
362
430
|
## 🔍 Debugging Tests
|
|
363
431
|
|
|
@@ -57,27 +57,31 @@ class ServicesEndPoint(safrs.JABase):
|
|
|
57
57
|
See: https://apilogicserver.github.io/Docs/Sample-Integration/
|
|
58
58
|
Test with swagger, or, from command line:
|
|
59
59
|
|
|
60
|
+
CRITICAL: Custom API calls require BOTH "method" and "args" in meta object:
|
|
61
|
+
|
|
60
62
|
$(venv) ApiLogicServer login --user=admin --password=p
|
|
61
63
|
$(venv) ApiLogicServer curl "'POST' 'http://localhost:5656/api/ServicesEndPoint/OrderB2B'" --data '
|
|
62
|
-
{"meta": {
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
64
|
+
{"meta": {
|
|
65
|
+
"method": "OrderB2B",
|
|
66
|
+
"args": {"order": {
|
|
67
|
+
"Account": "Customer 1",
|
|
68
|
+
"Notes": "Please Rush",
|
|
69
|
+
"Items": [
|
|
70
|
+
{
|
|
71
|
+
"Name": "Product A",
|
|
72
|
+
"QuantityOrdered": 1
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"Name": "Product B",
|
|
76
|
+
"QuantityOrdered": 2
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"Name": "Product B",
|
|
80
|
+
"QuantityOrdered": 2
|
|
81
|
+
}
|
|
78
82
|
]
|
|
79
|
-
}
|
|
80
|
-
}}
|
|
83
|
+
}}
|
|
84
|
+
}}'
|
|
81
85
|
|
|
82
86
|
"""
|
|
83
87
|
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
GenAI-Logic created this app (`genai-logic genai-add-app`) [(docs here)](https://apilogicserver.github.io/Docs/Admin-Vibe/), typically from `ui/admin/admin.yaml`.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Use it as a reference example.
|
|
6
|
+
|
|
7
|
+
We then used CoPilot to add cards, as described in `readme_vibe.md`:
|
|
6
8
|
|
|
7
9
|

|
|
8
10
|
|