ApiLogicServer 15.0.65__py3-none-any.whl → 15.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- api_logic_server_cli/api_logic_server.py +2 -2
- api_logic_server_cli/database/basic_demo.sqlite +0 -0
- api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +25 -2
- api_logic_server_cli/prototypes/basic_demo/customizations/database/db.sqlite +0 -0
- api_logic_server_cli/prototypes/basic_demo/iteration/database/db.sqlite +0 -0
- api_logic_server_cli/prototypes/manager/.vscode/launch.json +2 -1
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.devcontainer-option/For_VSCode.dockerfile +10 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.devcontainer-option/devcontainer.json +64 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.devcontainer-option/readme.md +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.devcontainer-option/setup.sh +10 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.env +4 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.github/.copilot-instructions.md +581 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.gitignore +9 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/ApiLogicServer.xml +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/Report_Behave_Logic.xml +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/Run_Behave.xml +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/Windows_Run_Behave.xml +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/run___No_Security.xml +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.idea/runConfigurations/run_docker.xml +59 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.vscode/launch.json +314 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.vscode/settings.json +40 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/.vscode/venv_init.sh +64 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/_config.yml +8 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/_layouts/redirect.html +15 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/__init__.py +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/auto_discovery.py +27 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/mcp_discovery.py +97 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/mcp_expose_api_models.py +53 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/new_service.py +21 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/newer_service.py +21 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/ontimize_api.py +495 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/order_b2b_service.py +60 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/api_discovery/system.py +77 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/customize_api.py +63 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/expose_api_models.py +52 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/json_encoder.py +17 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/readme_customize_api.md +103 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/api_utils.py +171 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/custom_endpoint.py +1085 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/expression_parser.py +685 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/gen_csv_report.py +41 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/gen_pdf_report.py +215 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/opt_locking/opt_locking.py +158 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api/system/opt_locking/readme.md +225 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/api_logic_server_run.py +162 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/config/__init__.py +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/config/activate_logicbank.py +46 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/config/config.py +772 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/config/default.env +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/config/logging-reduced.yml +112 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/config/logging.yml +123 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/config/mypy.ini +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/config/server_setup.py +459 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/api/api_discovery/openapi.py +92 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/config/default.env +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/database/db.sqlite +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/database/models.py +130 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/docs/mcp_learning/mcp_discovery.json +108 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/logic/cocktail-napkin.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/logic/declare_logic.py +106 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/logic/logic_discovery/email_request.py +49 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/logic/logic_discovery/simple_constraints.py +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/security/declare_security.py +60 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/admin/admin.yaml +162 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/admin/home.js +48 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/README.md +17 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/README_create_react_app.md +70 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/package-lock.json +18469 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/package.json +47 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/favicon.ico +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/index.html +43 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/logo192.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/logo512.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/manifest.json +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/public/robots.txt +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/App.css +38 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/App.js +61 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/App.test.js +8 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Config-reference.js +527 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Config.js +527 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Customer-reference.js +216 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Customer.js +230 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Item.js +170 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Order.js +207 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/Product.js +140 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/SysEmail.js +157 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/SysMcp.js +110 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/app_loader.js +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/index.css +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/index.js +17 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/logo.svg +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/.eslintrc +5 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/.yarnrc.yml +4 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/default-settings.js +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/default-settings.ts +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/errors.js +116 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/errors.ts +116 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/index.test.tsx +7 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/index.tsx +11 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/ra-jsonapi-client.js +577 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/ra-jsonapi-client.ts +577 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.js +124 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.ts +124 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/styles.module.css +9 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/reportWebVitals.js +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/customizations/ui/reference_react_app/src/setupTests.js +5 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/__init__.py +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/alembic_run.py +98 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/env.py +78 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/readme_alembic.md +36 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/script.py.mako +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/versions/ae6a5c2fdc47_autogenerated.py +34 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic/versions/readme.md +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/alembic.ini +103 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/authentication_db.sqlite +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/bind_dbs.py +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/customize_models.py +19 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/database_discovery/authentication_models.py +183 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/database_discovery/auto_discovery.py +27 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/db.sqlite +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/db_debug/db_debug.py +90 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/mcp_db.sqlite +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/mcp_models.py +58 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/models.py +132 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/system/SAFRSBaseX.py +139 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/alp_init.py +40 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/readme.md +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/response2code.py +148 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/test_data_preamble.py +83 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/auth-db/authdb_mysql.Dockerfile +65 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/auth-db/authdb_mysql.sql +112 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/auth-db/authdb_postgres.sql +57 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-compose-dev-azure/azure-deploy.sh +98 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-compose-dev-local/docker-compose-dev-local.yml +38 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-compose-dev-local/docker-compose.sh +34 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-image/build_image.dockerfile +20 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-image/build_image.sh +67 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-image/env.list +35 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-image/run_image.sh +23 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-standard-image/docker-compose-standard-image.yml +33 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/docker-standard-image/env.list +55 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/h2/keycloakdb.mv.db +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/h2/keycloakdb.trace.db +236 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/import/kcals-realm.json +1807 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/import/kcals-users-0.json +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/import/master-realm.json +1953 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/import/master-users-0.json +23 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/data/tmp/kc-gzip-cache/nnbna/js/keycloak.js.gz +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/docker-compose-dev-network.yml +31 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/docker-compose-nginx.yml +48 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/docker-compose.yml +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/import/kcals-realm.json +1898 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/import/kcals-users-0.json +319 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/import/master-realm.json +1953 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/import/master-users-0.json +23 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/nginx/cert.pem +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/nginx/key.pem +28 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/nginx/nginx.conf +73 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/startup_log_nginx.txt +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/startup_log_no_nginx.txt +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/unused/auth_provider.py +80 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/keycloak/unused/unused-docker-compose-keycloak.sh +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/python-anywhere/python_anywhere_wsgi.py +116 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/readme-devops.md +31 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/db.dbml +14 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/graphics/readme.md +12 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/logic/readme.md +19 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/logic_suggestions/readme_logic_suggestions.md +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/mcp_learning/mcp.prompt +39 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/mcp_learning/mcp_schema.json +30 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/models-not-code.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/runtime engines.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/system-creation-vibe.md +158 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/admin_app_1_context.prompt.md +43 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/admin_app_2_functionality.prompt.md +69 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/admin_app_3_architecture.prompt.md +29 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/logic_bank_api.prompt +342 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/logic_example.py +41 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/react_map.prompt.md +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/docs/training/react_tree.prompt.md +10 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/kafka/kafka_consumer.py +60 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/kafka/kafka_producer.py +127 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/kafka/kafka_readme.md +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_context_results.txt +142 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_discovery_response.json +150 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_request.prompt +46 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_schema.txt +47 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_tool_context_response.json +34 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/examples/mcp_tool_context_response_get.json +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/mcp_client_executor.py +545 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/mcp_server_discovery.json +9 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/mcp/readme-mcp.md +9 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/n8n/N8N_WebHook_from_ApiLogicServer.json +394 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/n8n/n8n_producer.py +172 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/n8n/n8n_readme.md +67 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/row_dict_maps/OrderB2BMapper.py +54 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/row_dict_maps/row_dict_maps_readme.md +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/system/FlaskKafka.py +105 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/integration/system/RowDictMapper.py +416 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/api/api_discovery/order_b2b.py +92 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/database/db.sqlite +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/docs/er_diagram.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/integration/row_dict_maps/OrderB2B.py +36 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/integration/row_dict_maps/OrderShipping.py +30 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/logic/declare_logic.py +147 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/iteration/ui/admin/admin.yaml +175 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/declarative-vs-procedural-comparison.html +110 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/declare_logic.py +81 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/load_verify_rules.py +217 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/app_integration.py +23 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/auto_discovery.py +52 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/check_credit.py +44 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/mcp_client_executor_request.py +50 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/readme_logic_discovery.md +9 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/logic_discovery/use_case.py +31 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/procedural/credit_service.py +204 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/procedural/declarative-vs-procedural-comparison.md +295 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/procedural/declarative-vs-procedural-comparison.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/logic/readme_logic.md +249 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/readme.md +495 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/readme_project.md +43 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/readme_standard.md +492 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/readme_vibe.md +353 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/requirements.txt +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/run.ps1 +30 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/run.sh +55 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/__init__.py +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/__init__.py +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/abstract_authentication_provider.py +34 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/keycloak/auth_provider.py +238 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/memory/auth_provider.py +161 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/memory/auth_provider_no_swagger.py +98 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/authentication_provider/sql/auth_provider.py +127 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/declare_security.py +49 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/readme_security.md +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/system/authentication.py +129 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/system/authorization.py +473 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/security/system/custom_swagger.json +62 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/__init__.py +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/__init__.py +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/behave_logic_report.py +256 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/behave_run.py +64 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/features/about.feature +12 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/features/steps/about.py +20 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/features/steps/test_utils.py +133 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/logs/behave.log +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/reports/Behave Logic Report Intro micro.md +4 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/reports/Behave Logic Report Intro.md +75 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/api_logic_server_behave/reports/Behave Logic Report Sample.md +1180 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/basic/server_test.py +33 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/test/readme_test.md +395 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/__init__.py +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/admin.yaml +173 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/admin_loader.py +217 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/authentication_admin.yaml +99 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/home.js +48 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/admin/mcp_admin.yaml +53 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.browserslistrc +12 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.dockerignore +47 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.editorconfig +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.eslintrc.json +51 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/.gitignore +47 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/README.md +42 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/angular.json +206 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/app_model.yaml +303 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/docker-compose-ontimize.yml +54 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/e2e/protractor.conf.js +32 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/e2e/src/app.e2e-spec.ts +23 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/e2e/src/app.po.ts +11 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/e2e/tsconfig.json +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/karma.conf.js +32 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/nginx/nginx.conf +29 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/ngsw-config.json +29 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/package-lock.json +22651 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/package.json +69 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app-routing.module.ts +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.component.html +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.component.scss +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.component.spec.ts +35 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.component.ts +9 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.config.ts +43 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/app.module.ts +37 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login-routing.module.ts +12 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.component.html +58 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.component.scss +155 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.component.ts +81 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.module.ts +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/login/login.theme.scss +51 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/Customer-routing.module.ts +37 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/Customer.module.ts +19 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/detail/Customer-detail.component.html +90 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/detail/Customer-detail.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/detail/Customer-detail.component.ts +32 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/home/Customer-home.component.html +44 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/home/Customer-home.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/home/Customer-home.component.ts +23 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/new/Customer-new.component.html +26 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/new/Customer-new.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Customer/new/Customer-new.component.ts +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/Item-routing.module.ts +30 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/Item.module.ts +19 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/detail/Item-detail.component.html +72 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/detail/Item-detail.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/detail/Item-detail.component.ts +32 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/home/Item-home.component.html +55 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/home/Item-home.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/home/Item-home.component.ts +23 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/new/Item-new.component.html +60 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/new/Item-new.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Item/new/Item-new.component.ts +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/Order-routing.module.ts +37 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/Order.module.ts +19 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/detail/Order-detail.component.html +114 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/detail/Order-detail.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/detail/Order-detail.component.ts +32 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/home/Order-home.component.html +48 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/home/Order-home.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/home/Order-home.component.ts +23 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/new/Order-new.component.html +43 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/new/Order-new.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Order/new/Order-new.component.ts +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/Product-routing.module.ts +37 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/Product.module.ts +19 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/detail/Product-detail.component.html +91 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/detail/Product-detail.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/detail/Product-detail.component.ts +32 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/home/Product-home.component.html +35 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/home/Product-home.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/home/Product-home.component.ts +23 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/new/Product-new.component.html +20 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/new/Product-new.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/Product/new/Product-new.component.ts +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about-routing.module.ts +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.component.html +39 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.component.scss +35 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.component.ts +17 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.module.ts +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/about/about.theme.scss +14 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home-routing.module.ts +17 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home.component.html +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home.component.scss +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home.component.ts +21 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/home/home.module.ts +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main-routing.module.ts +32 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main-theme.scss +56 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main.component.html +8 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main.component.scss +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main.component.ts +20 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/main.module.ts +22 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings-routing.module.ts +14 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings.component.html +14 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings.component.scss +44 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings.component.ts +46 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/main/settings/settings.module.ts +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Customer-card/Customer-card.component.html +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Customer-card/Customer-card.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Customer-card/Customer-card.component.ts +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Item-card/Item-card.component.html +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Item-card/Item-card.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Item-card/Item-card.component.ts +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Order-card/Order-card.component.html +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Order-card/Order-card.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Order-card/Order-card.component.ts +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Product-card/Product-card.component.html +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Product-card/Product-card.component.scss +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/Product-card/Product-card.component.ts +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/app.menu.config.ts +45 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/app.services.config.ts +5 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/constant.ts +4 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/app/shared/shared.module.ts +15 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/.gitkeep +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/css/app.scss +20 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/css/loader.css +173 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/i18n/en.json +44 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/i18n/es.json +42 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize128.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize16.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize256.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize32.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize48.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize64.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize72.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/icons/ontimize96.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/github.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/login_bg.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/no-image-transparent.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/no-image.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/ontimize.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/ontimize_web_log.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/sidenav-closed.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/sidenav-closed.svg +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/sidenav-opened.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/sidenav-opened.svg +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/images/user_profile.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/js/domchange.js +110 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/assets/js/keyboard.js +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/environments/environment.prod.ts +11 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/environments/environment.ts +15 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/favicon.ico +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/index.html +30 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/main.ts +15 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/manifest.webmanifest +59 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/polyfills.ts +66 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/styles.scss +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/src/test.ts +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/tsconfig.app.json +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/tsconfig.json +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/app/tsconfig.spec.json +18 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/andrew.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/anne.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/janet.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/laura.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/margaret.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/michael.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/nancy.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/robert.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Employee/steven.jpg +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/beverages.gif +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/cereals.gif +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/condiments.gif +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/confections.gif +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/diary.gif +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/meat.gif +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/produce.gif +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/images/Product/seafood.gif +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/README.md +16 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/README_create_react_app.md +70 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/package-lock.json +18469 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/package.json +47 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/favicon.ico +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/index.html +43 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/logo192.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/logo512.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/manifest.json +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/public/robots.txt +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/App.css +38 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/App.js +80 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/App.test.js +8 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Config.js +527 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Customer.js +218 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Item.js +190 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Order.js +189 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/Product.js +159 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/app_loader.js +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/index.css +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/index.js +17 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/logo.svg +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/.eslintrc +5 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/.yarnrc.yml +4 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/default-settings.js +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/default-settings.ts +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/errors.js +116 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/errors.ts +116 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/index.test.tsx +7 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/index.tsx +11 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/ra-jsonapi-client.js +577 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/ra-jsonapi-client.ts +577 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/resourceLookup.js +124 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/resourceLookup.ts +124 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/rav4-jsonapi-client/styles.module.css +9 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/reportWebVitals.js +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app/src/setupTests.js +5 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/README.md +20 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/README_create_react_app.md +72 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/package-lock.json +18469 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/package.json +47 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/product-cards.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/favicon.ico +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/index.html +43 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/logo192.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/logo512.png +0 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/manifest.json +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/public/robots.txt +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/App.css +38 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/App.js +80 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/App.test.js +8 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Config.js +527 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Customer.js +218 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Item.js +190 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Order.js +189 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/Product.js +241 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/app_loader.js +24 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/index.css +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/index.js +17 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/logo.svg +1 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/.eslintrc +5 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/.yarnrc.yml +4 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/default-settings.js +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/default-settings.ts +25 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/errors.js +116 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/errors.ts +116 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/index.test.tsx +7 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/index.tsx +11 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/ra-jsonapi-client.js +577 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/ra-jsonapi-client.ts +577 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/resourceLookup.js +124 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/resourceLookup.ts +124 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/rav4-jsonapi-client/styles.module.css +9 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/reportWebVitals.js +13 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/my-react-app-cards/src/setupTests.js +5 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/templates/bar_chart.jinja +64 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/ui/templates/content.html +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/py.py +121 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/readme_venv.md +20 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/requirements-no-cli.txt +33 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/venv-linux.sh +28 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/venv.ps1 +21 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo/venv_setup/venv.sh +28 -0
- api_logic_server_cli/prototypes/manager/samples/dbs/readme_dbs.md +4 -4
- api_logic_server_cli/prototypes/manager/samples/readme_samples.md +13 -6
- api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace +3 -2
- {apilogicserver-15.0.65.dist-info → apilogicserver-15.1.0.dist-info}/METADATA +1 -1
- {apilogicserver-15.0.65.dist-info → apilogicserver-15.1.0.dist-info}/RECORD +517 -17
- api_logic_server_cli/prototypes/manager/.vscode/.copilot-instructions.md +0 -58
- api_logic_server_cli/prototypes/manager/.vscode/ApiLogicServer.code-workspace +0 -15
- {apilogicserver-15.0.65.dist-info → apilogicserver-15.1.0.dist-info}/WHEEL +0 -0
- {apilogicserver-15.0.65.dist-info → apilogicserver-15.1.0.dist-info}/entry_points.txt +0 -0
- {apilogicserver-15.0.65.dist-info → apilogicserver-15.1.0.dist-info}/licenses/LICENSE +0 -0
- {apilogicserver-15.0.65.dist-info → apilogicserver-15.1.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
This rebuilds test data into `database/test_data/db.sqlite`, for example as used by genai project creation.
|
|
2
|
+
|
|
3
|
+
ChatGPT sometimes fails to build proper test data that matches the derivation rules.
|
|
4
|
+
|
|
5
|
+
You can rebuild the test data, using Logic Bank rules for proper derivations, to rebuild your `database/db.sqlite` (make a copy first to preserve your existing data).
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
als genai-utils --rebuild-test-data
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
You can explore the generated `database/test_data/test_data_code.py` to control test data generation.
|
|
12
|
+
|
|
13
|
+
If required, you can copy `database/test_data/test_data_preamble.py` to a new file, to rebuild your database (e.g., from an altered model file), and load your own test data (if any).
|
api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/response2code.py
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
#
|
|
3
|
+
# Convert a GPT response (WGResult) to code
|
|
4
|
+
# This script reads a GPT response JSON file and generates Python code that can be used to add the test data to the database.
|
|
5
|
+
#
|
|
6
|
+
# # Generate test data code from a GPT response JSON file:
|
|
7
|
+
# python database/test_data/response2code.py --test-data --response=docs/Customer_Order_System_003.response
|
|
8
|
+
# # Run the generated test data code:
|
|
9
|
+
# python database/test_data/test_data_code.py
|
|
10
|
+
|
|
11
|
+
# soon:
|
|
12
|
+
# cd project_dir
|
|
13
|
+
# export APILOGICPROJECT_NO_FLASK=1
|
|
14
|
+
# als genai-utils --rebuild-test-data --response=docs/genai_demo_informal_003.response
|
|
15
|
+
#
|
|
16
|
+
import ast
|
|
17
|
+
import json
|
|
18
|
+
import sys
|
|
19
|
+
import os
|
|
20
|
+
import logging
|
|
21
|
+
import logging.config
|
|
22
|
+
import click
|
|
23
|
+
from pathlib import Path
|
|
24
|
+
|
|
25
|
+
logging.basicConfig(level=logging.DEBUG)
|
|
26
|
+
log = logging.getLogger("response2code")
|
|
27
|
+
|
|
28
|
+
source_code_preamble = open(Path(__file__).parent / 'test_data_preamble.py').read()
|
|
29
|
+
|
|
30
|
+
add_instance_code_template = """
|
|
31
|
+
try:
|
|
32
|
+
if not {hash} in succeeded_hashes: # avoid duplicate inserts
|
|
33
|
+
instance = {code}
|
|
34
|
+
session.add(instance)
|
|
35
|
+
session.commit()
|
|
36
|
+
succeeded_hashes.add({hash})
|
|
37
|
+
except Exception as e:
|
|
38
|
+
has_errors = True
|
|
39
|
+
if 'UNIQUE' in str(e) and restart_count > 1:
|
|
40
|
+
pass
|
|
41
|
+
else:
|
|
42
|
+
error_str = f"Error adding variable to session: {{e}}"
|
|
43
|
+
if not error_str in data_log:
|
|
44
|
+
data_log.append(error_str)
|
|
45
|
+
if not restart_count in [2,3]:
|
|
46
|
+
session.rollback()
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def fix_code(code):
|
|
51
|
+
"""
|
|
52
|
+
Fix syntax errors in code
|
|
53
|
+
"""
|
|
54
|
+
ori_code = code
|
|
55
|
+
try:
|
|
56
|
+
ast.parse(code)
|
|
57
|
+
return code
|
|
58
|
+
except SyntaxError:
|
|
59
|
+
log.warning(f"Syntax error in code (1): {code}")
|
|
60
|
+
|
|
61
|
+
code = ori_code.replace("'s", "''s")
|
|
62
|
+
try:
|
|
63
|
+
ast.parse(code)
|
|
64
|
+
return code
|
|
65
|
+
except SyntaxError:
|
|
66
|
+
log.warning(f"Syntax error in code (2): {code}")
|
|
67
|
+
|
|
68
|
+
code = ori_code.replace("'", "")
|
|
69
|
+
try:
|
|
70
|
+
ast.parse(code)
|
|
71
|
+
return code
|
|
72
|
+
except SyntaxError:
|
|
73
|
+
log.warning(f"Syntax error in code (3): {code}")
|
|
74
|
+
|
|
75
|
+
code = ori_code.replace('"', '')
|
|
76
|
+
try:
|
|
77
|
+
ast.parse(code)
|
|
78
|
+
return code
|
|
79
|
+
except SyntaxError:
|
|
80
|
+
log.warning(f"Syntax error in code (4): {code}")
|
|
81
|
+
|
|
82
|
+
return None
|
|
83
|
+
|
|
84
|
+
def write_test_data(test_data):
|
|
85
|
+
test_data_code = source_code_preamble
|
|
86
|
+
|
|
87
|
+
for row in test_data:
|
|
88
|
+
try:
|
|
89
|
+
fixed_code = fix_code(row.get("code",''))
|
|
90
|
+
if not fixed_code:
|
|
91
|
+
continue
|
|
92
|
+
except Exception as e:
|
|
93
|
+
log.warning(f"Error fixing code: {e}")
|
|
94
|
+
continue
|
|
95
|
+
test_data_code += add_instance_code_template.format(code=fixed_code, hash=hash(fixed_code))
|
|
96
|
+
|
|
97
|
+
test_data_code += f"print('\\n'.join(data_log))\n"
|
|
98
|
+
test_data_code += "with open(project_dir / 'database/test_data/test_data_code_log.txt', 'w') as log_file:\n"
|
|
99
|
+
test_data_code += " log_file.write('\\n'.join(data_log))\n"
|
|
100
|
+
test_data_code += "print('\\n'.join(data_log))\n"
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
test_data_file = 'database/test_data/test_data_code.py'
|
|
104
|
+
|
|
105
|
+
with open(test_data_file, 'w') as f:
|
|
106
|
+
f.write(test_data_code)
|
|
107
|
+
|
|
108
|
+
log.info(f"Successfully wrote test data code to {test_data_file}")
|
|
109
|
+
|
|
110
|
+
def models2code():
|
|
111
|
+
log.info("models2code function called")
|
|
112
|
+
# ...existing code...
|
|
113
|
+
pass
|
|
114
|
+
|
|
115
|
+
def rules2code():
|
|
116
|
+
log.info("rules2code function called")
|
|
117
|
+
# ...existing code...
|
|
118
|
+
pass
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def get_test_data(response):
|
|
122
|
+
if not response:
|
|
123
|
+
response = '../docs/response.json'
|
|
124
|
+
|
|
125
|
+
log.info(f"Loading GPT response from {response}")
|
|
126
|
+
|
|
127
|
+
with open(response) as f:
|
|
128
|
+
test_data = json.load(f).get("test_data_rows", [])
|
|
129
|
+
|
|
130
|
+
return test_data
|
|
131
|
+
|
|
132
|
+
@click.command()
|
|
133
|
+
@click.option('--models', is_flag=True, help='Call models2code function')
|
|
134
|
+
@click.option('--rules', is_flag=True, help='Call rules2code function')
|
|
135
|
+
@click.option('--test-data', is_flag=True, help='Call test_data2code function')
|
|
136
|
+
@click.option('--response', type=click.Path(exists=True), help='Path to GPT response JSON file')
|
|
137
|
+
def main(models, rules, test_data, response):
|
|
138
|
+
|
|
139
|
+
if models:
|
|
140
|
+
models2code()
|
|
141
|
+
if rules:
|
|
142
|
+
rules2code()
|
|
143
|
+
if test_data:
|
|
144
|
+
test_data = get_test_data(response)
|
|
145
|
+
write_test_data(test_data)
|
|
146
|
+
|
|
147
|
+
if __name__ == "__main__":
|
|
148
|
+
main()
|
api_logic_server_cli/prototypes/manager/samples/basic_demo/database/test_data/test_data_preamble.py
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
import logging.config
|
|
3
|
+
import json
|
|
4
|
+
import os
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
os.environ["APILOGICPROJECT_NO_FLASK"] = "1" # must be present before importing models
|
|
8
|
+
|
|
9
|
+
import traceback
|
|
10
|
+
import yaml
|
|
11
|
+
from datetime import date, datetime
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
from decimal import Decimal
|
|
14
|
+
from sqlalchemy import (Boolean, Column, Date, DateTime, DECIMAL, Float, ForeignKey, Integer, Numeric, String, Text, create_engine)
|
|
15
|
+
from sqlalchemy.dialects.sqlite import *
|
|
16
|
+
from sqlalchemy.ext.declarative import declarative_base
|
|
17
|
+
from sqlalchemy.orm import sessionmaker
|
|
18
|
+
from sqlalchemy.sql import func
|
|
19
|
+
|
|
20
|
+
current_path = Path(__file__)
|
|
21
|
+
project_path = (current_path.parent.parent.parent).resolve()
|
|
22
|
+
sys.path.append(str(project_path))
|
|
23
|
+
|
|
24
|
+
from logic_bank.logic_bank import LogicBank, Rule
|
|
25
|
+
from logic import declare_logic
|
|
26
|
+
from database.models import *
|
|
27
|
+
from database.models import Base
|
|
28
|
+
|
|
29
|
+
project_dir = Path(os.getenv("PROJECT_DIR",'./')).resolve()
|
|
30
|
+
|
|
31
|
+
assert str(os.getcwd()) == str(project_dir), f"Current directory must be {project_dir}"
|
|
32
|
+
|
|
33
|
+
data_log : list[str] = []
|
|
34
|
+
|
|
35
|
+
logging_config = project_dir / 'config/logging.yml'
|
|
36
|
+
if logging_config.is_file():
|
|
37
|
+
with open(logging_config,'rt') as f:
|
|
38
|
+
config=yaml.safe_load(f.read())
|
|
39
|
+
logging.config.dictConfig(config)
|
|
40
|
+
logic_logger = logging.getLogger('logic_logger')
|
|
41
|
+
logic_logger.setLevel(logging.DEBUG)
|
|
42
|
+
logic_logger.info(f'.. logic_logger: {logic_logger}')
|
|
43
|
+
|
|
44
|
+
db_url_path = project_dir.joinpath('database/test_data/db.sqlite')
|
|
45
|
+
db_url = f'sqlite:///{db_url_path.resolve()}'
|
|
46
|
+
logging.info(f'.. db_url: {db_url}')
|
|
47
|
+
logging.info(f'.. cwd: {os.getcwd()}')
|
|
48
|
+
logging.info(f'.. python_loc: {sys.executable}')
|
|
49
|
+
logging.info(f'.. test_data_loader version: 1.1')
|
|
50
|
+
data_log.append(f'.. db_url: {db_url}')
|
|
51
|
+
data_log.append(f'.. cwd: {os.getcwd()}')
|
|
52
|
+
data_log.append(f'.. python_loc: {sys.executable}')
|
|
53
|
+
data_log.append(f'.. test_data_loader version: 1.1')
|
|
54
|
+
|
|
55
|
+
if db_url_path.is_file():
|
|
56
|
+
db_url_path.unlink()
|
|
57
|
+
|
|
58
|
+
try:
|
|
59
|
+
engine = create_engine(db_url)
|
|
60
|
+
Base.metadata.create_all(engine)
|
|
61
|
+
Session = sessionmaker(bind=engine) # note: LogicBank activated for this session only
|
|
62
|
+
session = Session()
|
|
63
|
+
LogicBank.activate(session=session, activator=declare_logic.declare_logic)
|
|
64
|
+
except Exception as e:
|
|
65
|
+
logging.error(f'Error creating engine: {e}')
|
|
66
|
+
data_log.append(f'Error creating engine: {e}')
|
|
67
|
+
print('\n'.join(data_log))
|
|
68
|
+
with open(project_dir / 'database/test_data/test_data_code_log.txt', 'w') as log_file:
|
|
69
|
+
log_file.write('\n'.join(data_log))
|
|
70
|
+
print('\n'.join(data_log))
|
|
71
|
+
raise
|
|
72
|
+
|
|
73
|
+
logging.info(f'.. LogicBank activated')
|
|
74
|
+
data_log.append(f'.. LogicBank activated')
|
|
75
|
+
|
|
76
|
+
restart_count = 0
|
|
77
|
+
has_errors = True
|
|
78
|
+
succeeded_hashes = set()
|
|
79
|
+
|
|
80
|
+
while restart_count < 5 and has_errors:
|
|
81
|
+
has_errors = False
|
|
82
|
+
restart_count += 1
|
|
83
|
+
data_log.append("print(Pass: " + str(restart_count) + ")" )
|
api_logic_server_cli/prototypes/manager/samples/basic_demo/devops/auth-db/authdb_mysql.Dockerfile
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# add security to your project with commands like
|
|
2
|
+
# ApiLogicServer add-auth --project_name=. --db_url=mysql+pymysql://root:p@localhost:3306/authdb
|
|
3
|
+
|
|
4
|
+
# You can create your *own* security database, as a super set of those shown here
|
|
5
|
+
# That enables you to use additional columns in Grant declarations.
|
|
6
|
+
|
|
7
|
+
# For more information, see https://apilogicserver.github.io/Docs/Security-Activation/
|
|
8
|
+
|
|
9
|
+
# the apilogicserver sample
|
|
10
|
+
# create a mysql that stores data in the container, not a volume (simpler, for dev env)
|
|
11
|
+
# create database for auth
|
|
12
|
+
|
|
13
|
+
# you might first create a project for mysql like this:
|
|
14
|
+
# ApiLogicServer create --project_name=my_project --db_url='mysql+pymysql://root:p@localhost:3306/my_project_db'
|
|
15
|
+
# cd my_project # create your venv as usual...
|
|
16
|
+
|
|
17
|
+
# now, build MySQL image from this file
|
|
18
|
+
# cd devops/docker
|
|
19
|
+
# docker build -t my-org/my-project-mysql --file authdb_mysql.Dockerfile --rm .
|
|
20
|
+
|
|
21
|
+
# run container from built image
|
|
22
|
+
# docker run --name my-project-mysql-container --net dev-network -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=p my-org/my-project-mysql
|
|
23
|
+
|
|
24
|
+
# Now set up your mysql database.
|
|
25
|
+
# docker exec -it my-project-mysql-container /bin/bash
|
|
26
|
+
# bash> cd home
|
|
27
|
+
# bash> mkdir mysql_ddl
|
|
28
|
+
|
|
29
|
+
# on your local machine, copy the ddl (create tables) dump file
|
|
30
|
+
# cd devops/docker
|
|
31
|
+
# docker cp authdb_mysql.sql my-project-mysql-container:/home/mysql_ddl
|
|
32
|
+
|
|
33
|
+
# back to docker terminal...
|
|
34
|
+
# cd /var/lib/mysql
|
|
35
|
+
# mysql -p # open mysql command line, then enter your super-secret password, `p`
|
|
36
|
+
# mysql> DROP DATABASE IF EXISTS `authdb`;
|
|
37
|
+
# mysql> CREATE DATABASE `authdb`;
|
|
38
|
+
# mysql> USE `authdb`;
|
|
39
|
+
# mysql> source /home/mysql_ddl/authdb_mysql.sql
|
|
40
|
+
# mysql> show databases;
|
|
41
|
+
# restore other database dumps as desired
|
|
42
|
+
# mysql> exit
|
|
43
|
+
|
|
44
|
+
# after adding users/roles (see below), you can dump authdb
|
|
45
|
+
# mysqldump -p authdb > /home/mysql_ddl/authdb_dump.sql
|
|
46
|
+
# bash> exit
|
|
47
|
+
|
|
48
|
+
# optionally add security
|
|
49
|
+
# create the Dockers' MySql authdb as above, using auth-db.sql
|
|
50
|
+
# cd my_project
|
|
51
|
+
# ApiLogicServer add-auth
|
|
52
|
+
# you should now be able to start server, login and access data
|
|
53
|
+
# add users via http://localhost:5656/admin/authentication_admin/
|
|
54
|
+
|
|
55
|
+
# Now convert container to image, and push to docker hub (change lines below to your account)
|
|
56
|
+
# docker commit my-project-mysql-container my-project-mysql-image
|
|
57
|
+
# docker tag my-project-mysql-image my-org/my-project-mysql-image:version1.0.0
|
|
58
|
+
# docker push my-org/my-project-mysql-image:version1.0.0
|
|
59
|
+
|
|
60
|
+
# thanks - https://medium.com/@stevenlandow/persist-share-dev-mysql-data-in-a-docker-image-with-commit-f9aa9910be0a
|
|
61
|
+
|
|
62
|
+
FROM mysql:8.0
|
|
63
|
+
|
|
64
|
+
RUN mkdir /var/lib/mysql-no-volume
|
|
65
|
+
CMD ["--datadir", "/var/lib/mysql-no-volume"]
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
-- MySQL dump 10.13 Distrib 8.0.32, for Linux (aarch64)
|
|
2
|
+
--
|
|
3
|
+
-- Host: localhost Database: authdb
|
|
4
|
+
-- ------------------------------------------------------
|
|
5
|
+
-- Server version 8.0.32
|
|
6
|
+
|
|
7
|
+
-- mysql -u root -p
|
|
8
|
+
-- use authdb
|
|
9
|
+
--
|
|
10
|
+
|
|
11
|
+
DROP DATABASE IF EXISTS `authdb`;
|
|
12
|
+
CREATE DATABASE `authdb`;
|
|
13
|
+
USE `authdb`;
|
|
14
|
+
|
|
15
|
+
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
|
16
|
+
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
|
17
|
+
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
|
18
|
+
/*!50503 SET NAMES utf8mb4 */;
|
|
19
|
+
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
|
20
|
+
/*!40103 SET TIME_ZONE='+00:00' */;
|
|
21
|
+
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
|
22
|
+
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
|
23
|
+
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
|
24
|
+
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
|
25
|
+
|
|
26
|
+
--
|
|
27
|
+
-- Table structure for table `Role`
|
|
28
|
+
--
|
|
29
|
+
|
|
30
|
+
DROP TABLE IF EXISTS `Role`;
|
|
31
|
+
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
32
|
+
/*!50503 SET character_set_client = utf8mb4 */;
|
|
33
|
+
CREATE TABLE `Role` (
|
|
34
|
+
`name` varchar(64) NOT NULL,
|
|
35
|
+
PRIMARY KEY (`name`)
|
|
36
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
37
|
+
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
38
|
+
|
|
39
|
+
--
|
|
40
|
+
-- Dumping data for table `Role`
|
|
41
|
+
--
|
|
42
|
+
|
|
43
|
+
LOCK TABLES `Role` WRITE;
|
|
44
|
+
/*!40000 ALTER TABLE `Role` DISABLE KEYS */;
|
|
45
|
+
/*!40000 ALTER TABLE `Role` ENABLE KEYS */;
|
|
46
|
+
UNLOCK TABLES;
|
|
47
|
+
|
|
48
|
+
--
|
|
49
|
+
-- Table structure for table `User`
|
|
50
|
+
--
|
|
51
|
+
|
|
52
|
+
DROP TABLE IF EXISTS `User`;
|
|
53
|
+
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
54
|
+
/*!50503 SET character_set_client = utf8mb4 */;
|
|
55
|
+
CREATE TABLE `User` (
|
|
56
|
+
`name` varchar(128) DEFAULT NULL,
|
|
57
|
+
`notes` text,
|
|
58
|
+
`id` varchar(64) NOT NULL,
|
|
59
|
+
`username` varchar(128) DEFAULT NULL,
|
|
60
|
+
`email` varchar(128) DEFAULT NULL,
|
|
61
|
+
`password_hash` varchar(200) DEFAULT NULL,
|
|
62
|
+
PRIMARY KEY (`id`)
|
|
63
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
64
|
+
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
65
|
+
|
|
66
|
+
--
|
|
67
|
+
-- Dumping data for table `User`
|
|
68
|
+
--
|
|
69
|
+
|
|
70
|
+
LOCK TABLES `User` WRITE;
|
|
71
|
+
/*!40000 ALTER TABLE `User` DISABLE KEYS */;
|
|
72
|
+
INSERT INTO `User` VALUES ('Administrator',NULL,'admin','Admin User','admin@corp.com','p');
|
|
73
|
+
/*!40000 ALTER TABLE `User` ENABLE KEYS */;
|
|
74
|
+
UNLOCK TABLES;
|
|
75
|
+
|
|
76
|
+
--
|
|
77
|
+
-- Table structure for table `UserRole`
|
|
78
|
+
--
|
|
79
|
+
|
|
80
|
+
DROP TABLE IF EXISTS `UserRole`;
|
|
81
|
+
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
|
82
|
+
/*!50503 SET character_set_client = utf8mb4 */;
|
|
83
|
+
CREATE TABLE `UserRole` (
|
|
84
|
+
`user_id` varchar(64) NOT NULL,
|
|
85
|
+
`notes` text,
|
|
86
|
+
`role_name` varchar(32) NOT NULL,
|
|
87
|
+
PRIMARY KEY (`user_id`,`role_name`),
|
|
88
|
+
KEY `in_role` (`role_name`),
|
|
89
|
+
CONSTRAINT `in_client` FOREIGN KEY (`user_id`) REFERENCES `User` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
90
|
+
CONSTRAINT `in_role` FOREIGN KEY (`role_name`) REFERENCES `Role` (`name`) ON DELETE CASCADE ON UPDATE CASCADE
|
|
91
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
|
92
|
+
/*!40101 SET character_set_client = @saved_cs_client */;
|
|
93
|
+
|
|
94
|
+
--
|
|
95
|
+
-- Dumping data for table `UserRole`
|
|
96
|
+
--
|
|
97
|
+
|
|
98
|
+
LOCK TABLES `UserRole` WRITE;
|
|
99
|
+
/*!40000 ALTER TABLE `UserRole` DISABLE KEYS */;
|
|
100
|
+
/*!40000 ALTER TABLE `UserRole` ENABLE KEYS */;
|
|
101
|
+
UNLOCK TABLES;
|
|
102
|
+
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
|
|
103
|
+
|
|
104
|
+
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
|
|
105
|
+
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
|
|
106
|
+
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
|
|
107
|
+
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
|
108
|
+
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
|
109
|
+
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
|
110
|
+
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
|
111
|
+
|
|
112
|
+
-- Dump completed on 2023-02-25 3:04:42
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
DROP DATABASE IF EXISTS authdb;
|
|
2
|
+
CREATE DATABASE authdb;
|
|
3
|
+
\c authdb;
|
|
4
|
+
|
|
5
|
+
-- in docker container/terminal
|
|
6
|
+
-- psql--username=postgres
|
|
7
|
+
-- \l
|
|
8
|
+
-- \dt
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
--
|
|
12
|
+
-- Table structure for table Role
|
|
13
|
+
--
|
|
14
|
+
|
|
15
|
+
DROP TABLE IF EXISTS "Role";
|
|
16
|
+
CREATE TABLE "Role" (
|
|
17
|
+
name varchar(64) NOT NULL,
|
|
18
|
+
PRIMARY KEY (name)
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
--
|
|
23
|
+
-- Table structure for table User
|
|
24
|
+
--
|
|
25
|
+
|
|
26
|
+
DROP TABLE IF EXISTS "User";
|
|
27
|
+
CREATE TABLE "User" (
|
|
28
|
+
name varchar(128) DEFAULT NULL,
|
|
29
|
+
notes text,
|
|
30
|
+
id varchar(64) NOT NULL,
|
|
31
|
+
username varchar(128) DEFAULT NULL,
|
|
32
|
+
email varchar(128) DEFAULT NULL,
|
|
33
|
+
password_hash varchar(200) DEFAULT NULL,
|
|
34
|
+
PRIMARY KEY (id)
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
--
|
|
38
|
+
-- Dumping data for table User
|
|
39
|
+
--
|
|
40
|
+
|
|
41
|
+
INSERT INTO "User" VALUES ('Administrator',NULL,'admin','Admin User','admin@corp.com','p');
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
--
|
|
45
|
+
-- Table structure for table UserRole
|
|
46
|
+
--
|
|
47
|
+
|
|
48
|
+
DROP TABLE IF EXISTS "UserRole";
|
|
49
|
+
CREATE TABLE "UserRole" (
|
|
50
|
+
user_id varchar(64) NOT NULL,
|
|
51
|
+
notes text,
|
|
52
|
+
role_name varchar(32) NOT NULL,
|
|
53
|
+
PRIMARY KEY (user_id,role_name),
|
|
54
|
+
CONSTRAINT in_client FOREIGN KEY (user_id) REFERENCES "User" (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
|
55
|
+
CONSTRAINT in_role FOREIGN KEY (role_name) REFERENCES "Role" (name) ON DELETE CASCADE ON UPDATE CASCADE
|
|
56
|
+
);
|
|
57
|
+
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# intended for use in portal cli - not to be run on your local machine.
|
|
4
|
+
|
|
5
|
+
projectname="apilogicserver_project" # project directory
|
|
6
|
+
resourcename="basicdemo" # lower case, only
|
|
7
|
+
resourcegroup="basicdemo_rg"
|
|
8
|
+
dockerrepositoryname="apilogicserver" # change this to your DockerHub Repository
|
|
9
|
+
githubaccount="apilogicserver" # change this to your GitHub account
|
|
10
|
+
version="1.0.0"
|
|
11
|
+
|
|
12
|
+
# see docs: https://apilogicserver.github.io/Docs/DevOps-Containers-Deploy-Multi/
|
|
13
|
+
# modeled after: https://learn.microsoft.com/en-us/azure/app-service/tutorial-multi-container-app
|
|
14
|
+
# which uses: https://github.com/Azure-Samples/multicontainerwordpress
|
|
15
|
+
|
|
16
|
+
# login to Azure Portal CLI (substitute your github account for apilogicserver)
|
|
17
|
+
# git clone https://github.com/apilogicserver/basicdemo.git
|
|
18
|
+
# cd basicdemo
|
|
19
|
+
# sh devops/docker-compose-dev-azure/azure-deploy.sh
|
|
20
|
+
|
|
21
|
+
echo " "
|
|
22
|
+
if [ "$#" -eq 0 ]; then
|
|
23
|
+
echo "..using defaults - press ctl+C to stop run"
|
|
24
|
+
else
|
|
25
|
+
if [ "$1" = "." ]; then
|
|
26
|
+
echo "..using defaults"
|
|
27
|
+
else
|
|
28
|
+
echo "using arg overrides"
|
|
29
|
+
projectname="$1"
|
|
30
|
+
resourcename="$2"
|
|
31
|
+
githubaccount="$3"
|
|
32
|
+
dockerrepositoryname="$4"
|
|
33
|
+
resourcegroup="$5"
|
|
34
|
+
fi
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
echo " "
|
|
38
|
+
echo "Azure Deploy here - Azure Portal CLI commands to deploy project, 1.0"
|
|
39
|
+
echo " "
|
|
40
|
+
echo "Prereqs"
|
|
41
|
+
echo " 1. You have published your project to GitHub: https://github.com/${githubaccount}/${projectname}.git"
|
|
42
|
+
echo " 2. You have built your project image, and pushed it to DockerHub: ${dockerrepositoryname}/${resourcename}"
|
|
43
|
+
echo " "
|
|
44
|
+
echo "Steps performed on Azure Portal CLI to enable running these commands:"
|
|
45
|
+
echo " # we really only need the docker shell script"
|
|
46
|
+
echo " git clone https://github.com/$githubaccount/$projectname.git"
|
|
47
|
+
echo " cd classicmodels"
|
|
48
|
+
echo " "
|
|
49
|
+
echo "Then, in Azure CLI:"
|
|
50
|
+
echo " sh devops/docker-compose-dev-azure/azure-deploy.sh [ . | args ]"
|
|
51
|
+
echo " . means use defaults:"
|
|
52
|
+
echo " ${dockerrepositoryname}/${projectname}:${version}"
|
|
53
|
+
echo " <args> = projectname resourcename githubaccount dockerrepositoryname resourcegroupname"
|
|
54
|
+
echo " "
|
|
55
|
+
|
|
56
|
+
# security assumed; disable this if you are not using security
|
|
57
|
+
if [ ! -f "./database/authentication_models.py" ]
|
|
58
|
+
then
|
|
59
|
+
echo "\nYou need to activate security first. With mysql-container running...\n"
|
|
60
|
+
echo "genai-logic add-auth --project_name=. --db_url=mysql+pymysql://root:p@localhost:3306/authdb"
|
|
61
|
+
echo "\nRebuild your image"
|
|
62
|
+
echo "\nThen, stop mysql-container\n"
|
|
63
|
+
exit 1
|
|
64
|
+
else
|
|
65
|
+
echo "\n... security check complete\n"
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
read -p "Verify settings above, then press ENTER to proceed> "
|
|
69
|
+
|
|
70
|
+
set -x # echo commands
|
|
71
|
+
|
|
72
|
+
# create container group
|
|
73
|
+
az group create --name $resourcegroup --location "westus"
|
|
74
|
+
|
|
75
|
+
# create service plan
|
|
76
|
+
az appservice plan create --name myAppServicePlan --resource-group $resourcegroup --sku S1 --is-linux
|
|
77
|
+
|
|
78
|
+
# create single-container app
|
|
79
|
+
az container create --resource-group $resourcegroup --name ${projectname} --image ${dockerrepositoryname}/${resourcename}:latest --dns-name-label ${resourcename} --ports 5656 --environment-variables 'VERBOSE'='True' 'APILOGICPROJECT_CLIENT_URI'='//{resourcename}.westus.azurecontainer.io:5656'
|
|
80
|
+
|
|
81
|
+
# or, issue commands like these (fix the git repo name) directly in portal, or local az cli
|
|
82
|
+
az group create --name basicdemo_rg --location "westus"
|
|
83
|
+
az appservice plan create --name myAppServicePlan --resource-group basicdemo_rg --sku S1 --is-linux
|
|
84
|
+
az container create --resource-group basicdemo_rg --name basicdemo --image apilogicserver/basicdemo:latest --dns-name-label basicdemo --ports 5656 --environment-variables 'VERBOSE'='True' 'APILOGICPROJECT_CLIENT_URI'='//basicdemo.westus.azurecontainer.io:5656'
|
|
85
|
+
|
|
86
|
+
# e.g.: az container create --resource-group aicustomerorders_rg --name aicustomerorders --image apilogicserver/aicustomerorders:latest --dns-name-label aicustomerorders --ports 5656 --environment-variables VERBOSE=True APILOGICPROJECT_CLIENT_URI=//aicustomerorders.westus.azurecontainer.io:5656
|
|
87
|
+
|
|
88
|
+
set +x # reset echo
|
|
89
|
+
|
|
90
|
+
echo "enable logging: https://learn.microsoft.com/en-us/azure/app-service/troubleshoot-diagnostic-logs#enable-application-logging-linuxcontainer"
|
|
91
|
+
echo " To enable web server logging for Windows apps in the Azure portal, navigate to your app and select App Service logs"
|
|
92
|
+
echo " For Web server logging, select Storage to store logs on blob storage, or File System to store logs on the App Service file system"
|
|
93
|
+
|
|
94
|
+
echo " "
|
|
95
|
+
echo "Completed. Browse to the app:"
|
|
96
|
+
echo "http://$resourcename.westus.azurecontainer.io:5656"
|
|
97
|
+
eche "e.g.: aicustomerorders.westus.azurecontainer.io:5656"
|
|
98
|
+
echo " "
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# First, build image: sh devops/docker-image/build_image.sh .
|
|
2
|
+
|
|
3
|
+
# ALERT - this is a pre-configured for the sqlite databases
|
|
4
|
+
# see https://apilogicserver.github.io/Docs/Database-Docker/#classicmodels-mysql-docker
|
|
5
|
+
|
|
6
|
+
# cd <project>
|
|
7
|
+
# sh ./devops/docker-compose-dev-local/docker-compose.sh
|
|
8
|
+
# --> builds, runs at localhost:5656
|
|
9
|
+
|
|
10
|
+
version: "3.5"
|
|
11
|
+
|
|
12
|
+
services:
|
|
13
|
+
|
|
14
|
+
sqlite3:
|
|
15
|
+
# hmm... runs, but not access; SQLAlchemy syntax for sqlite service? (it's just files below)
|
|
16
|
+
image: nouchka/sqlite3:latest
|
|
17
|
+
stdin_open: true
|
|
18
|
+
tty: true
|
|
19
|
+
volumes:
|
|
20
|
+
- ../../database/:/root/db/
|
|
21
|
+
# thanks: https://stackoverflow.com/questions/65811608/how-to-connect-flask-app-to-sqlite-db-running-in-docker
|
|
22
|
+
|
|
23
|
+
api-logic-server:
|
|
24
|
+
image: apilogicserver/basicdemo
|
|
25
|
+
environment:
|
|
26
|
+
- APILOGICPROJECT_VERBOSE=true
|
|
27
|
+
- SECURITY_ENABLED=true
|
|
28
|
+
## todid - use default database uri's:
|
|
29
|
+
# - APILOGICPROJECT_SQLALCHEMY_DATABASE_URI=sqlite:///../database/db.sqlite
|
|
30
|
+
# - APILOGICPROJECT_SQLALCHEMY_DATABASE_URI_AUTHENTICATION=sqlite:///../database/authentication_db.sqlite
|
|
31
|
+
expose:
|
|
32
|
+
- 5656
|
|
33
|
+
ports:
|
|
34
|
+
- 5656:5656
|
|
35
|
+
volumes:
|
|
36
|
+
# local:path-in-container
|
|
37
|
+
- ../:/app
|
|
38
|
+
- ../../database/:/my/sqlite/path/
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# stop local database containers (e.g., mysql-container)
|
|
4
|
+
# edit docker-compose-dev-local for database locations (comment out for demo)
|
|
5
|
+
|
|
6
|
+
# cd <project root>
|
|
7
|
+
# sh ./devops/docker-compose-dev-local/docker-compose.sh
|
|
8
|
+
|
|
9
|
+
# runs at localhost:5656
|
|
10
|
+
|
|
11
|
+
if [ -d "etc" ]
|
|
12
|
+
then
|
|
13
|
+
echo "\n... web app check complete\n"
|
|
14
|
+
else
|
|
15
|
+
echo "\n.. cd ./devops/docker-compose-dev-local \n"
|
|
16
|
+
cd ./devops/docker-compose-dev-local
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
pwd
|
|
20
|
+
|
|
21
|
+
if [ ! -f "./../../database/database_discovery/authentication_models.py" ]
|
|
22
|
+
then
|
|
23
|
+
echo "\nYou need to activate security first. With mysql-container running...\n"
|
|
24
|
+
echo "genai-logic add-auth --project_name=. --db_url=mysql+pymysql://root:p@localhost:3306/authdb"
|
|
25
|
+
echo "\nRebuild your image"
|
|
26
|
+
echo "\nThen, stop mysql-container\n"
|
|
27
|
+
exit 1
|
|
28
|
+
else
|
|
29
|
+
echo "\n... security check complete\n"
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
pushd ./../../
|
|
33
|
+
docker compose -f ./devops/docker-compose-dev-local/docker-compose-dev-local.yml up
|
|
34
|
+
popd
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# To build image for your ApiLogicProject, see build_image.sh
|
|
2
|
+
# $ sh devops/docker-image/build_image.sh .
|
|
3
|
+
|
|
4
|
+
# consider adding your version here
|
|
5
|
+
|
|
6
|
+
# ensure platform for common amd deployment, even if running on M1/2 mac --platform=linux/amd64
|
|
7
|
+
FROM --platform=linux/amd64 apilogicserver/api_logic_server
|
|
8
|
+
# FROM apilogicserver/api_logic_server
|
|
9
|
+
|
|
10
|
+
USER root
|
|
11
|
+
|
|
12
|
+
# user api_logic_server comes from apilogicserver/api_logic_server
|
|
13
|
+
WORKDIR /home/api_logic_project
|
|
14
|
+
# USER api_logic_server
|
|
15
|
+
COPY ../../ .
|
|
16
|
+
|
|
17
|
+
# enables docker to write into container, for sqlite
|
|
18
|
+
RUN chown -R api_logic_server /home/api_logic_project
|
|
19
|
+
|
|
20
|
+
CMD [ "python", "./api_logic_server_run.py" ]
|