ApiLogicServer 15.0.61__py3-none-any.whl → 15.0.65__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. api_logic_server_cli/api_logic_server.py +4 -3
  2. api_logic_server_cli/api_logic_server_info.yaml +2 -2
  3. api_logic_server_cli/cli.py +2 -2
  4. api_logic_server_cli/genai/{genai_admin_app.py → genai_react_app.py} +10 -2
  5. api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +297 -1
  6. api_logic_server_cli/prototypes/base/docs/training/logic_bank_api.prompt +27 -0
  7. api_logic_server_cli/prototypes/base/logic/logic_discovery/use_case.py +5 -1
  8. api_logic_server_cli/prototypes/base/test/readme_test.md +395 -0
  9. api_logic_server_cli/prototypes/basic_demo/docs/models-not-code.png +0 -0
  10. api_logic_server_cli/prototypes/basic_demo/docs/runtime engines.png +0 -0
  11. api_logic_server_cli/prototypes/basic_demo/logic/procedural/credit_service.py +204 -0
  12. api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +1 -12
  13. api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace +2 -2
  14. api_logic_server_cli/prototypes/nw/test/readme_test_nw.md +224 -0
  15. {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/METADATA +1 -1
  16. {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/RECORD +20 -16
  17. api_logic_server_cli/prototypes/nw/test/readme_test.md +0 -13
  18. {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/WHEEL +0 -0
  19. {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/entry_points.txt +0 -0
  20. {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/licenses/LICENSE +0 -0
  21. {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,224 @@
1
+ # API Logic Server Testing Guide
2
+
3
+ ## Overview
4
+
5
+ This directory contains comprehensive tests for API Logic Server projects, designed to validate business logic rules, API endpoints, security, and data integrity. The testing framework emphasizes **business logic validation** through declarative rules rather than just basic CRUD operations.
6
+
7
+ ## 🎯 What Gets Tested
8
+
9
+ - **Business Logic Rules**: Declarative rules for sums, formulas, constraints, and events
10
+ - **API Endpoints**: REST API functionality and JSON:API compliance
11
+ - **Security**: Authentication, authorization, and role-based access control
12
+ - **Data Integrity**: Database constraints, cascading updates, and transactions
13
+ - **Integration**: Logic engine, database, and API layer integration
14
+
15
+ ## 📁 Test Structure
16
+
17
+ ```
18
+ test/
19
+ ├── readme_test.md # This guide
20
+ ├── api_logic_server_behave/ # Primary BDD testing framework
21
+ │ ├── behave_run.py # Main test runner
22
+ │ ├── behave_logic_report.py # Report generator
23
+ │ ├── features/ # Gherkin feature files
24
+ │ │ ├── place_order.feature # Core business logic scenarios
25
+ │ │ ├── salary_change.feature # Employee management tests
26
+ │ │ ├── authorization.feature # Security tests
27
+ │ │ └── steps/ # Python step implementations
28
+ │ ├── logs/ # Test execution logs
29
+ │ └── reports/ # Generated test reports
30
+ └── basic/ # Simple server tests
31
+ ├── server_test.py # Basic API functionality tests
32
+ └── results/ # Basic test results
33
+ ```
34
+
35
+ ## 🚀 Running Tests
36
+
37
+ ### Prerequisites
38
+ 1. **Start API Logic Server**: `python api_logic_server_run.py` or press F5
39
+ 2. **Install behave**: `pip install behave` (if not already installed)
40
+ 3. **Database State**: Tests restore data automatically, but if tests fail mid-execution, restore `database/db.sqlite` from backup
41
+
42
+ ### Primary Testing Method: Behave (BDD)
43
+
44
+ ```bash
45
+ # From project root
46
+ cd test/api_logic_server_behave
47
+ python behave_run.py
48
+
49
+ # Or in VS Code
50
+ # Use "Behave Run" configuration (F5)
51
+ # In Debug Console, select "Behave Run" from dropdown (not server log)
52
+ ```
53
+
54
+ ### Alternative: Basic Server Tests
55
+
56
+ ```bash
57
+ # From project root
58
+ cd test/basic
59
+ python server_test.py go
60
+ ```
61
+
62
+ **Note**: Basic tests require `SECURITY_ENABLED = False` in `config/config.py`
63
+
64
+ ## 📝 Test Scenarios
65
+
66
+ ### Core Business Logic (`place_order.feature`)
67
+
68
+ Tests the fundamental business rules of the sample Northwind application:
69
+
70
+ - **Order State Management**: Ready/Not Ready flag changes
71
+ - **Credit Checking**: Validates customer credit limits
72
+ - **Balance Calculations**: Automatic customer balance adjustments
73
+ - **Inventory Management**: Product reordering and stock updates
74
+ - **Notifications**: Email alerts to sales representatives
75
+ - **Integration**: Kafka message publishing
76
+ - **Constraint Validation**: Prevents shipping empty orders
77
+
78
+ ### Employee Management (`salary_change.feature`)
79
+
80
+ - **Audit Trail**: Automatic logging of salary changes
81
+ - **Derived Attributes**: ProperSalary calculations
82
+ - **Business Rules**: Minimum raise requirements
83
+
84
+ ### Security (`authorization.feature`)
85
+
86
+ - **Authentication**: Login/logout functionality
87
+ - **Role-Based Access**: Permission validation
88
+ - **Data Filtering**: Row-level security
89
+
90
+ ## 🧪 Test Data
91
+
92
+ Tests use consistent, known data for predictable results:
93
+
94
+ | Entity | ID/Key | Key Attributes | Purpose |
95
+ |--------|--------|----------------|---------|
96
+ | Customer | ALFKI | Balance: 2102, CreditLimit varies | Credit checking, balance calculations |
97
+ | Order | 10643 | Amount: 1086 | Order processing, shipping logic |
98
+ | Employee | 5 (Buchanan) | Salary: 95k | Salary management, audit testing |
99
+
100
+ ## 🔧 For Developers
101
+
102
+ ### Adding New Tests
103
+
104
+ 1. **Create Feature File**: Add `.feature` file in `features/` using Gherkin syntax
105
+ 2. **Implement Steps**: Create corresponding `.py` file in `features/steps/`
106
+ 3. **Use Test Utilities**: Import `test_utils.py` for common functions
107
+ 4. **Follow Patterns**: Reference existing tests for authentication, logging, and assertions
108
+
109
+ ### Example Feature Structure
110
+
111
+ ```gherkin
112
+ Feature: My New Feature
113
+
114
+ Scenario: Test Scenario Name
115
+ Given Initial condition
116
+ When Action is performed
117
+ Then Expected result occurs
118
+ ```
119
+
120
+ ### Example Step Implementation
121
+
122
+ ```python
123
+ # features/steps/my_feature.py
124
+ from behave import *
125
+ import test_utils
126
+ import requests
127
+ import json
128
+
129
+ @given('Initial condition')
130
+ def step_impl(context):
131
+ # Setup code
132
+ pass
133
+
134
+ @when('Action is performed')
135
+ def step_impl(context):
136
+ # Action code
137
+ header = test_utils.login() # Get auth header
138
+ # Make API calls
139
+ pass
140
+
141
+ @then('Expected result occurs')
142
+ def step_impl(context):
143
+ # Assertion code
144
+ pass
145
+ ```
146
+
147
+ ## 🤖 For GitHub Copilot
148
+
149
+ When generating tests for API Logic Server projects:
150
+
151
+ ### Key Patterns to Follow
152
+
153
+ 1. **Focus on Business Logic**: Test declarative rules, not just CRUD operations
154
+ 2. **Use Behave Framework**: Create `.feature` files with Gherkin syntax
155
+ 3. **Test Authentication**: Include login/security in API calls
156
+ 4. **Verify Rule Execution**: Check that LogicBank rules fire correctly
157
+ 5. **Test Constraints**: Verify business rule violations are caught
158
+ 6. **Check Cascading Updates**: Ensure changes propagate correctly
159
+
160
+ ### Common Test Utilities
161
+
162
+ ```python
163
+ import test_utils
164
+
165
+ # Authentication
166
+ header = test_utils.login(user='aneu') # Returns auth header
167
+
168
+ # Logging (appears in both console and log files)
169
+ test_utils.prt("Test message", "scenario_name")
170
+
171
+ # API calls with auth
172
+ r = requests.get(url=api_url, headers=header)
173
+ r = requests.patch(url=api_url, json=data, headers=header)
174
+ ```
175
+
176
+ ### Security Considerations
177
+
178
+ - Tests can run with or without security enabled
179
+ - Use `test_utils.login()` for authenticated requests
180
+ - Handle both SQL and Keycloak authentication providers
181
+ - Check `Config.SECURITY_ENABLED` flag
182
+
183
+ ### Business Logic Testing Patterns
184
+
185
+ 1. **Setup**: Get initial state (e.g., customer balance)
186
+ 2. **Action**: Perform business operation (e.g., place order)
187
+ 3. **Verify**: Check rule execution results (e.g., balance updated, constraints enforced)
188
+ 4. **Cleanup**: Data is automatically restored
189
+
190
+ ### Sample Rule Testing
191
+
192
+ ```python
193
+ # Test a sum rule: Customer.Balance = sum(Order.AmountTotal where not shipped)
194
+ def test_balance_calculation():
195
+ # 1. Get initial customer state
196
+ customer_before = get_customer('ALFKI')
197
+
198
+ # 2. Create/modify order
199
+ create_order_for_customer('ALFKI', amount=100)
200
+
201
+ # 3. Verify balance updated automatically
202
+ customer_after = get_customer('ALFKI')
203
+ assert customer_after.Balance == customer_before.Balance + 100
204
+ ```
205
+
206
+ ## 📊 Test Reports
207
+
208
+ - **Logic Reports**: Generated in `reports/` showing which rules executed
209
+ - **Behave Output**: Standard BDD test results
210
+ - **Logic Logs**: Detailed rule execution in `logs/scenario_logic_logs/`
211
+
212
+ ## 🔍 Debugging Tests
213
+
214
+ - **Check Logs**: Review `logs/scenario_logic_logs/<scenario>.log`
215
+ - **Use Debug Console**: In VS Code, select "Behave Run" from dropdown
216
+ - **Server Logs**: Check server console for API errors
217
+ - **Database State**: Restore `database/db.sqlite` if tests fail mid-execution
218
+
219
+ ## ⚠️ Important Notes
220
+
221
+ - **Data Restoration**: Tests automatically restore data, but partial failures may require manual database restore
222
+ - **Security Mode**: Behave tests work with security enabled; basic tests require security disabled
223
+ - **Rule Engine**: Tests specifically validate LogicBank rule execution, not just API responses
224
+ - **Performance**: Tests include logic optimization verification (rule pruning, etc.)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ApiLogicServer
3
- Version: 15.0.61
3
+ Version: 15.0.65
4
4
  Author-email: Val Huber <apilogicserver@gmail.com>
5
5
  License-Expression: BSD-3-Clause
6
6
  Project-URL: Homepage, https://www.genai-logic.com
@@ -1,7 +1,7 @@
1
1
  api_logic_server_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- api_logic_server_cli/api_logic_server.py,sha256=3bftUXTUpj5H3Qv-X09Bu800tOEcZqz6LjDSg-dcSLQ,103984
3
- api_logic_server_cli/api_logic_server_info.yaml,sha256=kmtXD4fOxapV6jpXO9rsmYe8mq9Bz0PvghUVbRMvVWM,128
4
- api_logic_server_cli/cli.py,sha256=gd_uHrUanp705EryYAdkY5D9LJJvvSEHUwoylm-G6sw,87355
2
+ api_logic_server_cli/api_logic_server.py,sha256=E8xyAVmtwE7j0jd6OfToArNP2RXZByWyxtg87DuDhN0,104094
3
+ api_logic_server_cli/api_logic_server_info.yaml,sha256=codSmeCvbx6BYgXBMYDFYrKxch-aImth3kxpwYOCHoo,130
4
+ api_logic_server_cli/cli.py,sha256=tlFXb3c9X1RzJttSNjVW-6L5gwGgC2MK7HGWFZXA-QQ,87355
5
5
  api_logic_server_cli/cli_args_base.py,sha256=7cVM6BeizwttYAwUu1FUyuLuvWufvgt0TFeA8FI6tu0,3304
6
6
  api_logic_server_cli/cli_args_project.py,sha256=I5no_fGRV_ZsK3SuttVDAaQYI4Q5zCjx6LojGkM024w,4645
7
7
  api_logic_server_cli/extended_builder.py,sha256=EhtXGAt_RrDR2tCtgvc2U82we7fr-F6pP-e6HS6dQWQ,13867
@@ -375,11 +375,11 @@ api_logic_server_cli/fragments/ui_basic_web_app_runZZ.py,sha256=UllBIkKHlUE3nyDE
375
375
  api_logic_server_cli/genai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
376
376
  api_logic_server_cli/genai/client.py,sha256=36gyz-dqxj4dJj1SGtO9NZsy9-cfnf4d7uahHimwqHk,772
377
377
  api_logic_server_cli/genai/genai.py,sha256=rt4XW_xmo-D5fLD8DQBHMjrU7Teflw43S8lR-tJd4KU,47014
378
- api_logic_server_cli/genai/genai_admin_app.py,sha256=PxovwtSmBrGazmH_c2lBzzBnwnR0yEJxr3QJfbyfEVE,12176
379
378
  api_logic_server_cli/genai/genai_fatal_excp.py,sha256=1FmDVcXVRqmG0JMVZ7l4KqMOdpff3KGZ2LPAGtw304Q,179
380
379
  api_logic_server_cli/genai/genai_graphics.py,sha256=9ao0os6rUKY5u2caeLtgyDsNEuVQXq4KcKV575fNC58,20610
381
380
  api_logic_server_cli/genai/genai_logic_builder.py,sha256=u_89UtrALIfcMtW6p0SZ78lCmwRqerA5igyY2hDvjlk,26150
382
381
  api_logic_server_cli/genai/genai_mcp.py,sha256=Q2fVXwoIetYTSHuNHTke_ITsb-nu_L4kusPpTAkze1Q,1434
382
+ api_logic_server_cli/genai/genai_react_app.py,sha256=JlCSCCS370OQLSLnzy28wOiQHTUbmWSgtgoqaz2Hed0,12619
383
383
  api_logic_server_cli/genai/genai_svcs.py,sha256=ML8Ox9ZWAedELUnGHFoJ91VnpIM4-5-RyC2WZu8vJGg,50668
384
384
  api_logic_server_cli/genai/genai_utils.py,sha256=DTlWTnW5_2pzX4q1VG1tWqoZPVObDHR97SVe0z8Z3rs,17102
385
385
  api_logic_server_cli/genai/json2rules.py,sha256=ykoxxgZgqllzt8Ud06S-R_3QtumxXfmF5ksYC0Hh2Sk,2645
@@ -423,7 +423,7 @@ api_logic_server_cli/prototypes/base/.devcontainer-option/For_VSCode.dockerfile,
423
423
  api_logic_server_cli/prototypes/base/.devcontainer-option/devcontainer.json,sha256=tk-mGd4XdmbpKUqUeGmcPMzX3RDc6am9-de8c-rFmSo,2361
424
424
  api_logic_server_cli/prototypes/base/.devcontainer-option/readme.md,sha256=-sSneMDne1fqEoox2hXUGmoO8ewgi34y7lJwGTidSpY,104
425
425
  api_logic_server_cli/prototypes/base/.devcontainer-option/setup.sh,sha256=pOvGjZ7jgRQzFkD93mNICmcC2y66Dexrq4bCnSSVwtU,310
426
- api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md,sha256=JUmoR882ev41blkiooshu__iFWgeT6DX6KCf62B69KU,10280
426
+ api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md,sha256=nSsVX7b1UzVMJ3EkxWBiQ24EbI_FgrrPvbP74Mj6eN0,23645
427
427
  api_logic_server_cli/prototypes/base/.idea/runConfigurations/ApiLogicServer.xml,sha256=eFzhe9NH-VNjcPWbPsRQy5o-MugJR9IWklA1Fo8wtYg,1127
428
428
  api_logic_server_cli/prototypes/base/.idea/runConfigurations/Report_Behave_Logic.xml,sha256=I3jlEf-TPzc-1NY843v6AcQIQ8QJD3z9KvxTYSZWMtY,1306
429
429
  api_logic_server_cli/prototypes/base/.idea/runConfigurations/Run_Behave.xml,sha256=CTzF0P4w7o4FzOi-eSpru0HczSEGtJsKqkQ7VWRyxPc,1196
@@ -529,7 +529,7 @@ api_logic_server_cli/prototypes/base/docs/logic_suggestions/readme_logic_suggest
529
529
  api_logic_server_cli/prototypes/base/docs/training/admin_app_1_context.prompt.md,sha256=IpBkTI7BLdF7885Q0k5CTu_8Gunl5FdqH_t6fHVjAq0,1740
530
530
  api_logic_server_cli/prototypes/base/docs/training/admin_app_2_functionality.prompt.md,sha256=iWMoAkETeQjWWPrNj1AcI4HFGLlgS0-HP9oBYXhdTNI,1705
531
531
  api_logic_server_cli/prototypes/base/docs/training/admin_app_3_architecture.prompt.md,sha256=5KtRBihPbxTQEvLJ51w104Z0HfDGFEmQc3ysek6EsXA,925
532
- api_logic_server_cli/prototypes/base/docs/training/logic_bank_api.prompt,sha256=3zZu_AQLPskFzs_UL49-lk8Z6ck7YhQnj8wlz30Ib1k,14606
532
+ api_logic_server_cli/prototypes/base/docs/training/logic_bank_api.prompt,sha256=RGoo14PUyVu3YG9dMDbwCVKLQ-pPgopwQ5Yu-gwzesg,16066
533
533
  api_logic_server_cli/prototypes/base/docs/training/logic_example.py,sha256=yAot6uHy1gu94ufeYDx3f0iJ1_czsDywSAdm_yu4E2o,1325
534
534
  api_logic_server_cli/prototypes/base/docs/training/react_map.prompt.md,sha256=8B9bDjk4sL1t5LzYLKjuf78UPDmhj9assRZTIOvlwN4,891
535
535
  api_logic_server_cli/prototypes/base/docs/training/react_tree.prompt.md,sha256=Eoi4Q3H4x-PQOjonUjQ1o6xkiFtcEA_hg8tuFP-qk80,652
@@ -556,7 +556,7 @@ api_logic_server_cli/prototypes/base/logic/load_verify_rules.py,sha256=dYEb-UxqQ
556
556
  api_logic_server_cli/prototypes/base/logic/readme_logic.md,sha256=teXyg9-7b-1OAj_kLC7gQ37zNllTRFnovdq2LGsyg6E,10178
557
557
  api_logic_server_cli/prototypes/base/logic/logic_discovery/auto_discovery.py,sha256=m97W6DYi6ouTDuFCiU1rPq1UqzJuNnVePyOeLU33D1s,2645
558
558
  api_logic_server_cli/prototypes/base/logic/logic_discovery/readme_logic_discovery.md,sha256=SRg3Hrq3vCjqtAL1XijcbPGvfLLgkqsODLtIKfZUEaI,396
559
- api_logic_server_cli/prototypes/base/logic/logic_discovery/use_case.py,sha256=9qp9e_PwTvIg5mfYLtFxfwFhfivBhk3O6uHeh_lUd5c,822
559
+ api_logic_server_cli/prototypes/base/logic/logic_discovery/use_case.py,sha256=M3TQZwBaAtgEyNjP_Hl8s35x_zEpzpnIrtxmD7sL1NY,916
560
560
  api_logic_server_cli/prototypes/base/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
561
561
  api_logic_server_cli/prototypes/base/security/declare_security.py,sha256=sWi-M7E-dIhvC0hmdCXnTRjHAR5eWVKCYIDCoblISm4,2281
562
562
  api_logic_server_cli/prototypes/base/security/readme_security.md,sha256=G8krW3KHl_N-ksbEr3WFV3U2ODYhlFYOij73t-KV9jk,507
@@ -570,6 +570,7 @@ api_logic_server_cli/prototypes/base/security/system/authentication.py,sha256=pv
570
570
  api_logic_server_cli/prototypes/base/security/system/authorization.py,sha256=hlfuSBzM4YMMIgxJuev9Ro2bqGwgIsLT7K-pjwcrM64,21399
571
571
  api_logic_server_cli/prototypes/base/security/system/custom_swagger.json,sha256=rq-W5pnAWKSms20TPqUw2rsXq8OJgoX7Cs1eV8xnbcU,1705
572
572
  api_logic_server_cli/prototypes/base/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
573
+ api_logic_server_cli/prototypes/base/test/readme_test.md,sha256=NmyUhSu4DngyBSvoH7SacTrr5xHMywEePeHqaLdVdmc,14800
573
574
  api_logic_server_cli/prototypes/base/test/api_logic_server_behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
574
575
  api_logic_server_cli/prototypes/base/test/api_logic_server_behave/behave_logic_report.py,sha256=tXH_AmStMMgObNpxtJkcZ3vPcGldTTV3iUeukdqP3DE,9969
575
576
  api_logic_server_cli/prototypes/base/test/api_logic_server_behave/behave_run.py,sha256=KvHQAlsyF2heBvoD6voAkhIVJXS1AAKaHEcw77AsD3Q,2429
@@ -666,6 +667,8 @@ api_logic_server_cli/prototypes/basic_demo/customizations/ui/reference_react_app
666
667
  api_logic_server_cli/prototypes/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.js,sha256=nV_j3KpDeUpD8sPsGJeOqi6lUvcPbheJtLdqU5nENPs,4366
667
668
  api_logic_server_cli/prototypes/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.ts,sha256=FlsEiPVX_U-22glUGoscj3qcYdnfMJ_9Wa2Vi4CV2xs,4471
668
669
  api_logic_server_cli/prototypes/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/styles.module.css,sha256=AuGbjqBQu2by4z5APJvQAWk44ocrdQ9lCopqYCJXCy0,154
670
+ api_logic_server_cli/prototypes/basic_demo/docs/models-not-code.png,sha256=XvndgzHphsAbpxfV1D5q8XvJfjK8NVHwDWj59HuQ1Ic,381811
671
+ api_logic_server_cli/prototypes/basic_demo/docs/runtime engines.png,sha256=l9OCqVXZuALVhPQEBERtZDFdqgqojixm66cIKSZyNj0,105414
669
672
  api_logic_server_cli/prototypes/basic_demo/docs/system-creation-vibe.md,sha256=7ECJTc-BM6TwgBc3NM67a6LPXqBVY7RtRFepvhPjBko,4001
670
673
  api_logic_server_cli/prototypes/basic_demo/iteration/api/api_discovery/order_b2b.py,sha256=hg9Bsz0_t-RjO9rFcW-YH3y26kq4IY5dd9FfVoYxB4w,3176
671
674
  api_logic_server_cli/prototypes/basic_demo/iteration/database/db.sqlite,sha256=SvpzWZxWnwIqd25UhzL5crhtjEfF53MLj3lOB2cPK8M,24576
@@ -675,6 +678,7 @@ api_logic_server_cli/prototypes/basic_demo/iteration/integration/row_dict_maps/O
675
678
  api_logic_server_cli/prototypes/basic_demo/iteration/logic/declare_logic.py,sha256=Jnqt0j2Yu8ev1Pi9T3rogumuGn2sR4Q4QyWeUIunG28,6501
676
679
  api_logic_server_cli/prototypes/basic_demo/iteration/ui/admin/admin.yaml,sha256=uqxqYNMbKm4aCaTOy5CnlAtYccYM32-oQLVi5K6tfNI,3554
677
680
  api_logic_server_cli/prototypes/basic_demo/logic/declarative-vs-procedural-comparison.html,sha256=GUzgmnWdT709M5mPJGyfF1ARzzz3y5guASDBWeG43PU,3915
681
+ api_logic_server_cli/prototypes/basic_demo/logic/procedural/credit_service.py,sha256=n_7YzxxssaxfuB8-nu_jPrQ-H6leAqKjJQRfOKcQwR4,7525
678
682
  api_logic_server_cli/prototypes/basic_demo/logic/procedural/declarative-vs-procedural-comparison.md,sha256=lBUyilpqRPrL-d4yp55gRyRLaeYNzbArktMOaTD5IUw,12193
679
683
  api_logic_server_cli/prototypes/basic_demo/logic/procedural/declarative-vs-procedural-comparison.png,sha256=4jZRhM4raP95KOhbUEzlDRT-K9olwbVI6PVMZKi8j84,904211
680
684
  api_logic_server_cli/prototypes/basic_demo/ui/my-react-app/README.md,sha256=h7ePuwOqn3jv7YkjM4ruaP5rpYBmr_4Q3NChhb8pVJ4,452
@@ -789,7 +793,7 @@ api_logic_server_cli/prototypes/genai_demo/ui/admin/admin.yaml,sha256=vMpr6to6g-
789
793
  api_logic_server_cli/prototypes/manager/.gitignore,sha256=xfAjNQHokbo6GuN1ghx-eml8tQIzwUczLC_YVzElndI,195
790
794
  api_logic_server_cli/prototypes/manager/README.md,sha256=GDYEPrigwcXQfhm924-NvJeVauvS9bxogY9euNie7yI,38957
791
795
  api_logic_server_cli/prototypes/manager/settings.txt,sha256=_jjL30jomIMxG21edDfrXYRT9Zfgr_0EdUWvcEUOnFQ,368
792
- api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md,sha256=8JNOxTMf2FWLgXxKmfXm2fq7x-xgbao476l6P1hPY4Q,2908
796
+ api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md,sha256=OY8i7AVF2k-q83xxFltZtaCnOo7cycKOyWx3xoRcgYY,2545
793
797
  api_logic_server_cli/prototypes/manager/.vscode/.copilot-instructions.md,sha256=Gvx2SYFMhMtoqdbw3WSJ1-40kZAy9EUfQ0jIaHc0aYY,1923
794
798
  api_logic_server_cli/prototypes/manager/.vscode/ApiLogicServer.code-workspace,sha256=yC_pOIZN5o5Qiw3t2kBPsiO01Mgp3VEbAizYx1T3aPI,282
795
799
  api_logic_server_cli/prototypes/manager/.vscode/launch.json,sha256=alh_fiuqMjY-uIk4ghfwyMs3y-U2dYr1W6rS9ncpNEY,33491
@@ -802,7 +806,7 @@ api_logic_server_cli/prototypes/manager/samples/prompts/add_email.prompt,sha256=
802
806
  api_logic_server_cli/prototypes/manager/samples/prompts/elections.prompt,sha256=R7B0KFuuWTuH6YOTr_AEHHgnHE4spR_BUrlOl0TX-cE,80
803
807
  api_logic_server_cli/prototypes/manager/samples/prompts/emp_dept.prompt,sha256=xbyhCyY7TUk7hoBKAkzRsZVBj1lP4hfXdSR4TQagXqM,109
804
808
  api_logic_server_cli/prototypes/manager/samples/prompts/genai_demo.prompt,sha256=mhxJ5d4rALI45DNFkmBCH14YCl0FVuSyy1FgVTSBRrU,570
805
- api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace,sha256=ieWHaqLQ8uXoSzNSklVdDKoIjD-H3d6H4aUP1d_Jy1s,305
809
+ api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace,sha256=e86OVoat_2mLTfUpDNuLpCd9gvUsYuW2K0a6f8mXcRs,289
806
810
  api_logic_server_cli/prototypes/manager/system/readme_ssystem.md,sha256=52zXRh5KJ4GSRWyNLwzbXqKMDJmR7M6PhS71-DIUoBI,106
807
811
  api_logic_server_cli/prototypes/manager/system/style-guide.yaml,sha256=JaP3NDE29k4_e9ELeLTZfnWf2L8VgS1X7hO8J_BNqJU,673
808
812
  api_logic_server_cli/prototypes/manager/system/app_model_editor/.gitignore,sha256=07msA6EiXJT_unwoat2B8vI6ANcIn9E-ntgIpQZj7g0,477
@@ -1864,7 +1868,7 @@ api_logic_server_cli/prototypes/nw/logic/logic_discovery/simple_constraints.py,s
1864
1868
  api_logic_server_cli/prototypes/nw/logic/logic_discovery/workflow_integration.pyZZ,sha256=XQacPVIKDKdYHgSaQ8IHp__DI2tZyNBr9qokEc6j0ws,2425
1865
1869
  api_logic_server_cli/prototypes/nw/security/declare_security.py,sha256=SlfOikecm3MJ9lx34iplhbB_r8I9iHozw-cIdbv6RvQ,4456
1866
1870
  api_logic_server_cli/prototypes/nw/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1867
- api_logic_server_cli/prototypes/nw/test/readme_test.md,sha256=uRG_QGSzucJyfvpm0N-DEuku_JD0sW1ChYis4HuVGvg,447
1871
+ api_logic_server_cli/prototypes/nw/test/readme_test_nw.md,sha256=cKSVl-PaDy1RHbrfMcBpRG7wvalc4luT_Ea_QMatDI8,7705
1868
1872
  api_logic_server_cli/prototypes/nw/test/api_logic_server_behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1869
1873
  api_logic_server_cli/prototypes/nw/test/api_logic_server_behave/features/about.feature,sha256=RjzJm5PVu0WswkD-wiMqSh-w4fvUh_f259psGFtlIiU,187
1870
1874
  api_logic_server_cli/prototypes/nw/test/api_logic_server_behave/features/api.feature,sha256=XQcltFcDvZzWuIMiodw7E7D2zxB9zSzcRVa-YvRWEgM,285
@@ -2265,9 +2269,9 @@ api_logic_server_cli/tools/mini_skel/database/system/SAFRSBaseX.py,sha256=p8C7AF
2265
2269
  api_logic_server_cli/tools/mini_skel/database/system/TestDataBase.py,sha256=U02SYqThsbY5g3DX7XGaiMxjZBuOpzvtPS6RfI1WQFg,371
2266
2270
  api_logic_server_cli/tools/mini_skel/logic/declare_logic.py,sha256=fTrlHyqMeZsw_TyEXFa1VlYBL7fzjZab5ONSXO7aApo,175
2267
2271
  api_logic_server_cli/tools/mini_skel/logic/load_verify_rules.py,sha256=Rr5bySJpYCZmNPF2h-phcPJ53nAOPcT_ohZpCD93-a0,7530
2268
- apilogicserver-15.0.61.dist-info/licenses/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
2269
- apilogicserver-15.0.61.dist-info/METADATA,sha256=XCn1Gvxvgb5EYfs8PTo-ln6F_AzmcpiLpwI_PXGxoao,6653
2270
- apilogicserver-15.0.61.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
2271
- apilogicserver-15.0.61.dist-info/entry_points.txt,sha256=W9EVNvf09h8n6rJChmVj2gzxVQ6BXXZa2x3wri0lFGc,259
2272
- apilogicserver-15.0.61.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
2273
- apilogicserver-15.0.61.dist-info/RECORD,,
2272
+ apilogicserver-15.0.65.dist-info/licenses/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
2273
+ apilogicserver-15.0.65.dist-info/METADATA,sha256=j82Meg-mFvrp5evZdnKIBoLhkqaDVQIMJcejMvIJCgk,6653
2274
+ apilogicserver-15.0.65.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
2275
+ apilogicserver-15.0.65.dist-info/entry_points.txt,sha256=W9EVNvf09h8n6rJChmVj2gzxVQ6BXXZa2x3wri0lFGc,259
2276
+ apilogicserver-15.0.65.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
2277
+ apilogicserver-15.0.65.dist-info/RECORD,,
@@ -1,13 +0,0 @@
1
- ## Notes on Tests
2
-
3
- These tests exercise API Server Logic.
4
-
5
- They can be re-run. But, if they fail in the middle, be sure so replace `database/db.sqlite`.
6
-
7
- Tests are designed to be run with Security.
8
-
9
- The most typical way to run the tests:
10
-
11
- 1. Start API Logic Server
12
- 2. Run `Behave Run`
13
- * Under VSCode, use of the Debug Console obscures the test summary. Use the combo box on the Debug Console to select Behave Run (instead of the server log).