ApiLogicServer 15.2.3__py3-none-any.whl → 15.2.7__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 -1
- api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +114 -52
- api_logic_server_cli/prototypes/base/docs/training/testing.md +95 -9
- api_logic_server_cli/prototypes/basic_demo/.github/.copilot-instructions.md +742 -0
- api_logic_server_cli/prototypes/basic_demo/readme.md +12 -4
- api_logic_server_cli/prototypes/basic_demo/tutor.md +1196 -0
- api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +50 -23
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.github/.copilot-instructions.md +3 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/testing.md +95 -9
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/order_processing.feature +59 -50
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/order_processing_steps.py +395 -248
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/behave.log +66 -62
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Carbon_Neutral_Discount_A.log +51 -41
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Order_Customer.log +29 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Product_in_Item.log +35 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Delete_Item_Reduces_Order.log +39 -19
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Exceed_Credit_Limit_Rejec.log +36 -45
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Good_Order_Placed_via_B2B.log +50 -40
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Quantity_Change.log +33 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Multi-Item_Order_via_B2B_.log +67 -0
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Ship_Order_Excludes_from_.log +24 -14
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Transaction_Processing.log +26 -17
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Unship_Order_Includes_in_.log +24 -14
- api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report.md +361 -146
- api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/copilot-dev-context.md +236 -0
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.7.dist-info}/METADATA +25 -16
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.7.dist-info}/RECORD +31 -25
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.7.dist-info}/WHEEL +0 -0
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.7.dist-info}/entry_points.txt +0 -0
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.7.dist-info}/licenses/LICENSE +0 -0
- {apilogicserver-15.2.3.dist-info → apilogicserver-15.2.7.dist-info}/top_level.txt +0 -0
api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/copilot-dev-context.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Context Restoration for BLT Manager Workspace
|
|
3
|
+
Description: Re-establishes AI assistant context after BLT regenerates workspace
|
|
4
|
+
Source: ApiLogicServer-src/prototypes/manager/system/ApiLogicServer-Internal-Dev/copilot-dev-context.md
|
|
5
|
+
Propagation: BLT process → Manager workspace
|
|
6
|
+
Usage: AI assistants read this to understand project structure, development workflow, and recent additions
|
|
7
|
+
version: 2.0
|
|
8
|
+
changelog:
|
|
9
|
+
- 2.0 (Oct 2025) - Added AI-Guided Training section (tutor.md v2.0, OBX improvements, design philosophy)
|
|
10
|
+
- 1.0 (Initial) - Established workspace structure, GenAI prompt engineering, development workflow
|
|
11
|
+
---
|
|
12
|
+
|
|
1
13
|
# Context Restoration: BLT Manager Workspace
|
|
2
14
|
|
|
3
15
|
**Purpose:** This file re-establishes AI assistant context after BLT runs regenerate this workspace.
|
|
@@ -110,6 +122,50 @@ This document contains **everything** you need to understand the system:
|
|
|
110
122
|
- **[Installation Guide](https://apilogicserver.github.io/Docs/Install/)** - Setup procedures
|
|
111
123
|
- **[Tutorial](https://apilogicserver.github.io/Docs/Tutorial/)** - Step-by-step learning
|
|
112
124
|
|
|
125
|
+
### For AI-Guided Training (New Feature):
|
|
126
|
+
- **`basic_demo/tutor.md`** - AI assistant guide for conducting 30-45 min hands-on tour
|
|
127
|
+
- **Version:** 2.0 (762 lines, October 2025)
|
|
128
|
+
- **Purpose:** "Message in a bottle" for AI assistants - enables guided discovery learning
|
|
129
|
+
- **Method:** Provocation-based (e.g., "how did it know ORDER has a foreign key to Customer?")
|
|
130
|
+
- **Philosophy:** Users learn by DOING (hands-on tour), not reading docs or taking quizzes (Versata approach)
|
|
131
|
+
- **Structure:** 9 sections with timing checkpoints (15 min, 35 min), concrete metrics (48 vs 200+ lines)
|
|
132
|
+
- **Key Additions in v2.0:** Spreadsheet analogy, procedural comparison (BUG FIX examples), context for schema commands, three ways to add logic (Discovery/IDE/Chat), MCP server integration
|
|
133
|
+
- **Location:** `prototypes/basic_demo/tutor.md` (template), propagates to created `basic_demo` projects
|
|
134
|
+
- **Invocation:** User says "Guide me through basic_demo" → AI reads tutor.md → conducts tour
|
|
135
|
+
|
|
136
|
+
- **Design Philosophy - Why Provocation Over Instruction:**
|
|
137
|
+
- **Problem with traditional training:** PowerPoint → quiz/assessment approach tests memorization, not understanding
|
|
138
|
+
- **Versata insight:** "Stop killing people with PowerPoint; identify critical skills, design lab to DO it"
|
|
139
|
+
- **Discovery learning:** Ask provocative questions that force pattern recognition ("How did it know ORDER references CUSTOMER?")
|
|
140
|
+
- **"Aha moments" over rote learning:** User discovers foreign keys exist, then learns they're essential for multi-table logic
|
|
141
|
+
- **Spreadsheet analogy:** Excel user understands formulas → multi-table database is "Excel for related tables"
|
|
142
|
+
- **AI as training partner DURING the lab:** Not quiz after, not docs before - real-time guidance while doing
|
|
143
|
+
- **Result:** 30-45 min hands-on experience creates deeper understanding than hours of documentation reading
|
|
144
|
+
|
|
145
|
+
- **v1.0 → v2.0 Evolution (Battle-Tested Refinements):**
|
|
146
|
+
- **v1.0 (595 lines):** Initial design based on architecture understanding
|
|
147
|
+
- **Live testing:** User spent "several hours with your cousin testing and revising" actual tours
|
|
148
|
+
- **v2.0 (+506 net lines):** Added based on what users actually needed during tours:
|
|
149
|
+
- **Spreadsheet analogy** - Non-technical users needed familiar mental model
|
|
150
|
+
- **Procedural comparison** - Show 48 vs 200+ lines WITH concrete BUG FIX examples (not just line counts)
|
|
151
|
+
- **Context for commands** - Why `add-cust` exists (schema variability, new users discover structure)
|
|
152
|
+
- **Three ways to add logic** - Discovery file (recommended), IDE autocomplete, or Chat
|
|
153
|
+
- **Timing checkpoints** - 15 min at Security, 35 min at Q&A (helps pace the tour)
|
|
154
|
+
- **MCP server mention** - Claude Desktop integration for external AI access
|
|
155
|
+
- **Best practices** - `logic/logic_discovery/` organization pattern
|
|
156
|
+
- **Short response guidance** - "One idea per interaction" prevents overwhelming new users
|
|
157
|
+
- **Key learning:** Initial version was too instruction-heavy, v2.0 adds more context and concrete examples
|
|
158
|
+
|
|
159
|
+
- **OBX (Out-of-Box Experience) Design** - Manager → Project flow optimization (October 2025):
|
|
160
|
+
- **Manager README:** "🚀 First Time Here? Start with basic_demo" section (clear default path)
|
|
161
|
+
- **Manager .copilot-instructions.md:** "CRITICAL: ALWAYS start" directive (no choices, single path)
|
|
162
|
+
- **Project README:** "🤖 Ready to Explore? Recommended: Guide me through" (guided tour as primary option)
|
|
163
|
+
- **Project .copilot-instructions.md:** "🎯 Most Common Next Steps" (5 succinct items at top)
|
|
164
|
+
- **Goal:** Eliminate friction/choice paralysis, make basic_demo → guided tour the clear default
|
|
165
|
+
- **Problem addressed:** Users didn't automatically know to start with basic_demo, didn't default to guided tour
|
|
166
|
+
- **Solution:** Strengthen every touch point in the journey to push toward the optimal path
|
|
167
|
+
- **Flow:** Install → Open Manager → Create basic_demo → Auto-opens → "Guide me through" → 30-45 min tour
|
|
168
|
+
|
|
113
169
|
|
|
114
170
|
|
|
115
171
|
## 👤 Current Maintainer
|
|
@@ -159,6 +215,186 @@ This document contains **everything** you need to understand the system:
|
|
|
159
215
|
|
|
160
216
|
|
|
161
217
|
|
|
218
|
+
## 🤖 GenAI Prompt Engineering Architecture
|
|
219
|
+
|
|
220
|
+
### Overview: ChatGPT Project Creation Pipeline
|
|
221
|
+
|
|
222
|
+
The `genai-logic create` command uses **fine-tuned ChatGPT** to translate natural language requirements into complete working projects. The system uses **prompt engineering** to surround user input with structured instructions.
|
|
223
|
+
|
|
224
|
+
### Key Locations
|
|
225
|
+
|
|
226
|
+
**Prompt Templates:** `system/genai/prompt_inserts/`
|
|
227
|
+
```
|
|
228
|
+
├── sqlite_inserts.prompt # Main orchestrator for DB creation
|
|
229
|
+
├── sqlite_inserts_model_test_hints.prompt # SQLAlchemy class generation rules
|
|
230
|
+
├── logic_inserts.prompt # LogicBank rule generation
|
|
231
|
+
├── logic_translate.prompt # NL → LogicBank translation (existing DB)
|
|
232
|
+
├── graphics.prompt # Dashboard chart generation
|
|
233
|
+
├── response_format.prompt # WGResult Pydantic schema
|
|
234
|
+
└── web_genai.prompt # WebGenAI-specific (15+ tables)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Training Examples:** `org_git/ApiLogicServer-src/tests/genai_tests/logic_training/`
|
|
238
|
+
```
|
|
239
|
+
├── genai_demo.prompt # Check Credit + No Empty Orders
|
|
240
|
+
├── ready_flag.prompt # Ready Flag pattern (3 use cases)
|
|
241
|
+
├── emp_depts.prompt # Chain Up: sum salaries, constrain budget
|
|
242
|
+
├── graduate.prompt # Cardinality: counts with thresholds
|
|
243
|
+
├── products.prompt # Qualified Any: severity checks
|
|
244
|
+
├── honor_society.prompt # Complex cardinality with qualified counts
|
|
245
|
+
└── *.txt / *_corrected_prompt.txt # Expected outputs and corrections
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Test Examples:** `system/genai/examples/`
|
|
249
|
+
```
|
|
250
|
+
├── genai_demo/ # Complete example with iterations
|
|
251
|
+
├── airport/ # Complex 10+ table system
|
|
252
|
+
├── emp_depts/ # Simple aggregation pattern
|
|
253
|
+
└── time_tracking_billing/ # Real-world scenario
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### The Prompt Assembly Process
|
|
257
|
+
|
|
258
|
+
**User Input:**
|
|
259
|
+
```
|
|
260
|
+
Create a system with customers, orders, items and products.
|
|
261
|
+
|
|
262
|
+
Use case: Check Credit
|
|
263
|
+
1. Customer.balance <= credit_limit
|
|
264
|
+
2. Customer.balance = Sum(Order.amount_total where date_shipped is null)
|
|
265
|
+
3. Order.amount_total = Sum(Item.amount)
|
|
266
|
+
4. Item.amount = quantity * unit_price
|
|
267
|
+
5. Item.unit_price = copy from Product.unit_price
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**System Surrounds With:**
|
|
271
|
+
|
|
272
|
+
1. **Model Generation Instructions** (`sqlite_inserts_model_test_hints.prompt`):
|
|
273
|
+
- Use autonum keys for ALL tables (including junction tables)
|
|
274
|
+
- Create classes, never tables (Class names singular, capitalized)
|
|
275
|
+
- **CRITICAL:** "If you create sum, count or formula Logic Bank rules, then you MUST create a corresponding column in the data model"
|
|
276
|
+
- No check constraints (logic uses rules instead)
|
|
277
|
+
- Foreign key columns (not relationship names) for test data
|
|
278
|
+
|
|
279
|
+
2. **Logic Generation Instructions** (`logic_inserts.prompt`):
|
|
280
|
+
- "Use LogicBank to enforce these requirements (do not generate check constraints)"
|
|
281
|
+
- "be sure to update the data model and *all* test data with any attributes used in the logic"
|
|
282
|
+
|
|
283
|
+
3. **Response Structure** (`response_format.prompt`):
|
|
284
|
+
```python
|
|
285
|
+
class WGResult(BaseModel):
|
|
286
|
+
models: List[Model] # SQLAlchemy classes
|
|
287
|
+
rules: List[Rule] # LogicBank declarations
|
|
288
|
+
test_data: str # Python test data creation
|
|
289
|
+
test_data_rows: List[TestDataRow]
|
|
290
|
+
test_data_sqlite: str # INSERT statements
|
|
291
|
+
graphics: List[Graphic] # Dashboard queries
|
|
292
|
+
name: str # Suggested project name
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
**Result:** ChatGPT returns structured JSON with models, rules, and test data that:
|
|
296
|
+
- Has `Customer.balance`, `Order.amount_total`, `Order.item_count` columns created automatically
|
|
297
|
+
- Contains LogicBank rules for all derivations
|
|
298
|
+
- Includes test data with derived attributes pre-initialized
|
|
299
|
+
|
|
300
|
+
### Key Insight: Model + Logic Co-Generation
|
|
301
|
+
|
|
302
|
+
**Unlike existing database projects**, GenAI creation can **modify the data model** to support logic:
|
|
303
|
+
|
|
304
|
+
- **Derived attributes materialize:** `Customer.balance`, `Order.amount_total`, `Product.total_ordered`
|
|
305
|
+
- **Count columns appear:** `Order.item_count` for existence checks
|
|
306
|
+
- **Qualified counts split:** `Product.notice_count` + `Product.severity_five_count`
|
|
307
|
+
|
|
308
|
+
This is why the training examples emphasize:
|
|
309
|
+
> "If you create sum, count or formula Logic Bank rules, then you MUST create a corresponding column in the data model."
|
|
310
|
+
|
|
311
|
+
### Training Pattern Categories
|
|
312
|
+
|
|
313
|
+
The `logic_training/` examples teach ChatGPT these patterns:
|
|
314
|
+
|
|
315
|
+
1. **Chain Up (Aggregation → Constraint)**
|
|
316
|
+
- `emp_depts`: Department.total_salary = sum(Employee.salary); salary <= budget
|
|
317
|
+
- `genai_demo`: Customer.balance = sum(orders); balance <= credit_limit
|
|
318
|
+
|
|
319
|
+
2. **Counts as Existence Checks**
|
|
320
|
+
- `genai_demo`: Order.item_count = count(Items); can't ship if == 0
|
|
321
|
+
- Creates both derivation AND validation
|
|
322
|
+
|
|
323
|
+
3. **Cardinality Patterns (Qualified Any)**
|
|
324
|
+
- `products`: Total notices + severity 5 notices; constraint if orderable
|
|
325
|
+
- `graduate`: Probation count + sick days; constraint for graduation
|
|
326
|
+
- Pattern: Multiple counts (total + qualified) with complex conditions
|
|
327
|
+
|
|
328
|
+
4. **Ready Flag**
|
|
329
|
+
- `ready_flag`: Multi-use-case with conditional aggregations
|
|
330
|
+
- Customer.balance only sums orders where `ready == True AND date_shipped is None`
|
|
331
|
+
- Product.total_ordered only sums items where `ready == True`
|
|
332
|
+
|
|
333
|
+
5. **Chain Down (Copy/Formula)**
|
|
334
|
+
- Item.unit_price = copy(Product.unit_price)
|
|
335
|
+
- Item.ready = Order.ready (formula propagation)
|
|
336
|
+
|
|
337
|
+
### CLI Commands Using This System
|
|
338
|
+
|
|
339
|
+
**Create from natural language:**
|
|
340
|
+
```bash
|
|
341
|
+
genai-logic create --project-name=my_system --using="<natural language>"
|
|
342
|
+
# Internally: assembles prompts → ChatGPT → parses WGResult → generates project
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
**Translate logic (existing DB):**
|
|
346
|
+
```bash
|
|
347
|
+
genai-logic logic-translate --project-name=. --using-file=docs/logic
|
|
348
|
+
# Uses logic_translate.prompt to convert NL in docs/logic → rules in logic/logic_discovery/
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Fine-Tuning Files
|
|
352
|
+
|
|
353
|
+
**Training Data:** `logic_training/ft.jsonl`
|
|
354
|
+
- JSONL format for ChatGPT fine-tuning
|
|
355
|
+
- Generated from prompt/response pairs
|
|
356
|
+
- ~374KB with all pattern examples
|
|
357
|
+
|
|
358
|
+
**Script:** `logic_training/create_json_l.py`
|
|
359
|
+
- Converts `*.prompt` + `*.txt` → JSONL entries
|
|
360
|
+
- Format: system message, user message (prompt), assistant message (response)
|
|
361
|
+
|
|
362
|
+
### Common Pitfalls (Why Corrections Exist)
|
|
363
|
+
|
|
364
|
+
Several `*_corrected_prompt.txt` files show typical AI mistakes:
|
|
365
|
+
|
|
366
|
+
1. **Wrong cardinality:**
|
|
367
|
+
- `airport.prompt`: Asked for "airplane's passengers" but meant "flight's passengers"
|
|
368
|
+
- AI can't count passengers on an Airplane (no direct relationship)
|
|
369
|
+
- Correction: Count passengers on Flight, constrain by Airplane.seating_capacity
|
|
370
|
+
|
|
371
|
+
2. **Constraint depends on derived flag:**
|
|
372
|
+
- `products.prompt` initially: "product is orderable IF no severity 5 notices"
|
|
373
|
+
- Problem: Makes orderable a derived value, then uses it in constraint
|
|
374
|
+
- Correction: "RAISE ERROR if orderable == True AND has severity 5 notices"
|
|
375
|
+
- Pattern: Flag is input, constraint uses it (not derived from constraint conditions)
|
|
376
|
+
|
|
377
|
+
3. **Negative condition logic:**
|
|
378
|
+
- Must use: `not(row.flag and bad_condition)`
|
|
379
|
+
- Not: `row.flag → requires good_condition` (harder for AI to translate)
|
|
380
|
+
|
|
381
|
+
### Why This Architecture?
|
|
382
|
+
|
|
383
|
+
**Traditional GenAI code generation problems:**
|
|
384
|
+
- Generates 200+ lines of procedural code
|
|
385
|
+
- Misses corner cases (foreign key changes, cascading updates)
|
|
386
|
+
- Creates technical debt (unmaintainable spaghetti)
|
|
387
|
+
|
|
388
|
+
**Declarative GenAI solution:**
|
|
389
|
+
- Generates **specifications** (5 rules), not code (200 lines)
|
|
390
|
+
- Rules executed by proven engine (40+ years, 6,000+ deployments)
|
|
391
|
+
- Engine handles ALL change paths automatically (no corner cases missed)
|
|
392
|
+
- Natural language → DSL → Runtime engine (not NL → procedural code)
|
|
393
|
+
|
|
394
|
+
**Critical difference:** The AI doesn't need to "think through" all possible change paths. It translates requirements to rules, and the engine provides correctness guarantee through automatic dependency analysis and chaining.
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
162
398
|
## 🔄 Development Workflow
|
|
163
399
|
|
|
164
400
|
**Source Repository:** https://github.com/ApiLogicServer/ApiLogicServer-src
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ApiLogicServer
|
|
3
|
-
Version: 15.2.
|
|
3
|
+
Version: 15.2.7
|
|
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
|
|
@@ -104,10 +104,10 @@ source venv/bin/activate # windows: venv\Scripts\activate
|
|
|
104
104
|
python -m pip install ApiLogicServer
|
|
105
105
|
|
|
106
106
|
# Start the Manager (opens readme with instructions)
|
|
107
|
-
|
|
107
|
+
genai-logic start
|
|
108
108
|
|
|
109
109
|
# Create project from your database (or use sample)
|
|
110
|
-
|
|
110
|
+
genai-logic create --project_name=my_app --db_url=
|
|
111
111
|
|
|
112
112
|
# Run it
|
|
113
113
|
cd my_app
|
|
@@ -116,11 +116,14 @@ python api_logic_server_run.py
|
|
|
116
116
|
|
|
117
117
|
**What you get in 5 seconds:**
|
|
118
118
|
- 🚀 **JSON:API** - Endpoints for every table with filtering, pagination, related data
|
|
119
|
-
- 📱 **Admin App** - Multi-page React app with automatic joins
|
|
119
|
+
- 📱 **Instant Admin App UI** - Multi-page React app with automatic joins (runs immediately)
|
|
120
|
+
- 🎨 **Custom Apps via API** - Use the API with your favorite vibe tools (Cursor, Bolt, Lovable, etc.) OR leverage GenAI-Logic training for Copilot to build custom UIs ([see this article](https://medium.com/@valjhuber/enterprise-vibe-automation-b40c8f750a1d))
|
|
120
121
|
- 🧠 **Logic Engine** - Spreadsheet-like rules (40X more concise than code)
|
|
121
122
|
- 🔐 **Security** - Row-level authorization, JWT authentication
|
|
122
123
|
- 🐳 **Docker-ready** - Pre-configured containers for deployment
|
|
123
124
|
|
|
125
|
+
**Mix and match:** Use the instant Admin App for backoffice tasks AND build custom UIs with vibe tools for advanced features like cards and maps - all powered by the same logic-enabled API.
|
|
126
|
+
|
|
124
127
|
**[📖 8-minute video demo](https://www.youtube.com/watch?v=Z4_NJIm5rFs&t=323s)** | **[📚 Full Documentation](https://apilogicserver.github.io/Docs/)** | **[🏠 Home](https://www.genai-logic.com)**
|
|
125
128
|
|
|
126
129
|
---
|
|
@@ -137,8 +140,8 @@ python api_logic_server_run.py
|
|
|
137
140
|
| Traditional Approach | API Logic Server |
|
|
138
141
|
|---------------------|------------------|
|
|
139
142
|
| Weeks to create API endpoints | **5 seconds** (automated) |
|
|
140
|
-
| 200+ lines of update logic code | **5 rules** (40X reduction) |
|
|
141
|
-
| Manual screen painting | **Automated** from data model |
|
|
143
|
+
| 200+ lines of update logic code | **5 rules** (40X reduction - to see an A/B Comparision, [click here](https://github.com/ApiLogicServer/basic_demo/blob/main/logic/procedural/declarative-vs-procedural-comparison.md) |
|
|
144
|
+
| Manual screen painting | **Automated** from data model, plus vibe-enabled custom UIs |
|
|
142
145
|
| Hard to integrate systems | **MCP-enabled** APIs |
|
|
143
146
|
| Opaque procedural code | **Declarative** living documentation |
|
|
144
147
|
|
|
@@ -240,22 +243,28 @@ A: Join our **[Discord community](https://discord.gg/fNRTTVFT)** for real-time h
|
|
|
240
243
|
|
|
241
244
|
```
|
|
242
245
|
my_app/
|
|
243
|
-
├── api/ # JSON:API endpoints
|
|
246
|
+
├── api/ # JSON:API endpoints (for Admin App AND custom UIs)
|
|
244
247
|
│ ├── expose_api_models.py
|
|
245
248
|
│ └── customize_api.py # Add custom endpoints
|
|
246
|
-
├── ui/admin/ # Admin App
|
|
249
|
+
├── ui/admin/ # Instant Admin App (ready to run)
|
|
247
250
|
│ └── admin.yaml # Declare UI behavior
|
|
248
|
-
├── logic/ # Business Logic
|
|
251
|
+
├── logic/ # Business Logic (enforced on ALL API calls)
|
|
249
252
|
│ └── declare_logic.py # Spreadsheet-like rules
|
|
250
253
|
├── security/ # Authentication & Authorization
|
|
251
254
|
│ └── declare_security.py
|
|
252
255
|
├── database/ # SQLAlchemy models
|
|
253
256
|
│ └── models.py
|
|
254
257
|
├── tests/ # BDD tests (Behave)
|
|
258
|
+
├── docs/
|
|
259
|
+
│ └── training/ # GenAI-Logic training for Copilot
|
|
255
260
|
└── devops/
|
|
256
261
|
└── docker/ # Deployment configs
|
|
257
262
|
```
|
|
258
263
|
|
|
264
|
+
**Two UI approaches (use both!):**
|
|
265
|
+
1. **Instant Admin App** - Runs immediately for backoffice/internal users
|
|
266
|
+
2. **Custom UIs** - Build with vibe tools (Cursor, Bolt, etc.) OR use GenAI-Logic Copilot training to create React/Vue/Angular apps that consume the API
|
|
267
|
+
|
|
259
268
|
---
|
|
260
269
|
|
|
261
270
|
## 🚀 Key Features
|
|
@@ -310,7 +319,7 @@ GET /api/Customer?filter[Balance][$gt]=1000&sort=-Balance&page[size]=10
|
|
|
310
319
|
|
|
311
320
|
#### Create from Natural Language
|
|
312
321
|
```bash
|
|
313
|
-
|
|
322
|
+
genai-logic genai --using=prompt.txt
|
|
314
323
|
```
|
|
315
324
|
|
|
316
325
|
**Example prompt:**
|
|
@@ -324,24 +333,24 @@ Constraint: customer balance cannot exceed credit limit.
|
|
|
324
333
|
```
|
|
325
334
|
|
|
326
335
|
**Result:** Working microservice with logic in 10 seconds!
|
|
327
|
-
|
|
328
336
|
#### AI-Assisted Development
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
337
|
+
|
|
338
|
+
Every created project includes **AI tutoring** to help you get oriented and productive quickly:
|
|
339
|
+
|
|
340
|
+
- 🤖 **Copilot instructions** (`.copilot-instructions.md`) - When you open a project, Copilot presents a friendly welcome message explaining what's already built and what you can do next. Ask Copilot to "read instructions" anytime for guidance.
|
|
341
|
+
- 📚 **Training materials** (`docs/training/`) - Comprehensive guides for all features
|
|
332
342
|
- 🔍 **Logic from natural language** (translate English → rules)
|
|
333
343
|
|
|
334
344
|
```python
|
|
335
345
|
# Paste into Copilot: "Create logic for check credit"
|
|
336
346
|
# Copilot generates the 5 rules above!
|
|
337
347
|
```
|
|
338
|
-
|
|
339
348
|
### 4️⃣ Living Documentation
|
|
340
349
|
|
|
341
350
|
**Automated test generation** from your rules:
|
|
342
351
|
```bash
|
|
343
352
|
# Generate Behave tests from declared logic
|
|
344
|
-
|
|
353
|
+
genai-logic add-tests
|
|
345
354
|
|
|
346
355
|
# Run tests
|
|
347
356
|
behave
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
api_logic_server_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
api_logic_server_cli/api_logic_server.py,sha256=
|
|
2
|
+
api_logic_server_cli/api_logic_server.py,sha256=f9MVlTra5JbhK0EQwxMHF0HFz2jOBQECAtgYj42vsyk,104605
|
|
3
3
|
api_logic_server_cli/api_logic_server_info.yaml,sha256=xwH5ENyjrlv3XbKx7IaY2iaF0Cc4zHi3x7qtpEWTzBI,139
|
|
4
4
|
api_logic_server_cli/cli.py,sha256=xAqTOhq-OnXU2HEQgzsGC9yKrGcAgKUt_8b9U2bV5No,87831
|
|
5
5
|
api_logic_server_cli/cli_args_base.py,sha256=7cVM6BeizwttYAwUu1FUyuLuvWufvgt0TFeA8FI6tu0,3304
|
|
@@ -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=
|
|
426
|
+
api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md,sha256=AVpy5C5BUzP4o8XHqEzLONrbKSlN94HM3kY0ilJj7Lk,36743
|
|
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
|
|
@@ -534,7 +534,7 @@ api_logic_server_cli/prototypes/base/docs/training/logic_example.py,sha256=yAot6
|
|
|
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
|
|
536
536
|
api_logic_server_cli/prototypes/base/docs/training/readme_training.md,sha256=EilDTYaDPoGCD9ef5Efs8eDn8ZNQTgGN7_QnJ4LrO2s,120
|
|
537
|
-
api_logic_server_cli/prototypes/base/docs/training/testing.md,sha256=
|
|
537
|
+
api_logic_server_cli/prototypes/base/docs/training/testing.md,sha256=_G-m-s8mOAUbQOyqIRChIOM48SdFm80IaX11_BElfyY,32197
|
|
538
538
|
api_logic_server_cli/prototypes/base/integration/kafka/kafka_consumer.py,sha256=2DOsFpYnsJ71gZzzfJweEmL-i99uCtEFU0hVwIKFGMw,1516
|
|
539
539
|
api_logic_server_cli/prototypes/base/integration/kafka/kafka_producer.py,sha256=g0nMAVfz1Y0iKJbbXfvRpdf-QUmyB4uUGZ6lyaVoXag,4470
|
|
540
540
|
api_logic_server_cli/prototypes/base/integration/kafka/kafka_readme.md,sha256=MlwykHWM2w41KzWh4vPuTnIodR8f-BQzrWpV4P1hrsI,161
|
|
@@ -618,7 +618,9 @@ api_logic_server_cli/prototypes/base/venv_setup/venv-linux.sh,sha256=FDIxVyZ50Cg
|
|
|
618
618
|
api_logic_server_cli/prototypes/base/venv_setup/venv.ps1,sha256=_-LfKkLw5HOkZsF59BGCqM9Zsk3n1oDIyDb4emy0O08,698
|
|
619
619
|
api_logic_server_cli/prototypes/base/venv_setup/venv.sh,sha256=aWX9fa8fe6aO9ifBIZEgGY5UGh4I0arOoCwBzDsxgU8,893
|
|
620
620
|
api_logic_server_cli/prototypes/basic_demo/_config.yml,sha256=KIUQQpjgj7hP_Z2Fksq90E52UnbKnyom-v9L_eIfqZo,170
|
|
621
|
-
api_logic_server_cli/prototypes/basic_demo/readme.md,sha256=
|
|
621
|
+
api_logic_server_cli/prototypes/basic_demo/readme.md,sha256=dLbO4T_6YK0_9aV-1fLiDSizHJxSvxTc-bNm5uuNcq4,18731
|
|
622
|
+
api_logic_server_cli/prototypes/basic_demo/tutor.md,sha256=VVlQSYUQxGNb-ZbYsvHP5MbKbHPU4nkOWDFyvRlmP3I,36337
|
|
623
|
+
api_logic_server_cli/prototypes/basic_demo/.github/.copilot-instructions.md,sha256=bb6SyDm3fu-MDXOLQfzJXh6NutsqNF8I4ik4qhVaLDM,33212
|
|
622
624
|
api_logic_server_cli/prototypes/basic_demo/_layouts/redirect.html,sha256=-0kMPGYI88fb787IzYmdi7ySZUhgpUlP0vodrg8-NRM,457
|
|
623
625
|
api_logic_server_cli/prototypes/basic_demo/customizations/api/api_discovery/openapi.py,sha256=kLQ7Fn1J7tzuNJHBXF2AiwtzvQ-0JxJ6z-MfFryAtLk,3887
|
|
624
626
|
api_logic_server_cli/prototypes/basic_demo/customizations/config/default.env,sha256=-rjXJrjR4vjMr9YCVYVchaJw7qMBlbvQ3KfR_wri_XM,412
|
|
@@ -801,7 +803,7 @@ api_logic_server_cli/prototypes/genai_demo/ui/admin/admin.yaml,sha256=vMpr6to6g-
|
|
|
801
803
|
api_logic_server_cli/prototypes/manager/.gitignore,sha256=xfAjNQHokbo6GuN1ghx-eml8tQIzwUczLC_YVzElndI,195
|
|
802
804
|
api_logic_server_cli/prototypes/manager/README.md,sha256=GDYEPrigwcXQfhm924-NvJeVauvS9bxogY9euNie7yI,38957
|
|
803
805
|
api_logic_server_cli/prototypes/manager/settings.txt,sha256=_jjL30jomIMxG21edDfrXYRT9Zfgr_0EdUWvcEUOnFQ,368
|
|
804
|
-
api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md,sha256=
|
|
806
|
+
api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md,sha256=p2eBNQuvsvzqPHdDJQDx7329xVbaKDaz8mAsPBvEgp8,5018
|
|
805
807
|
api_logic_server_cli/prototypes/manager/.github/sync-to-dev-src.sh,sha256=hZbc5fJXnYiLWvN-OcQzYRsPBESmt6B9y581CczuwHM,1915
|
|
806
808
|
api_logic_server_cli/prototypes/manager/.vscode/launch.json,sha256=B9NaDoTvJsXg1qeEuhG3RdRk4M2RpnpHBW6b8oXrBn4,33551
|
|
807
809
|
api_logic_server_cli/prototypes/manager/.vscode/settings.json,sha256=Zj9oPObeI-KVh1l4b3uuF1vkezKomVqnhP241h6ZB-M,619
|
|
@@ -821,7 +823,7 @@ api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.devcontainer-
|
|
|
821
823
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.devcontainer-option/devcontainer.json,sha256=tk-mGd4XdmbpKUqUeGmcPMzX3RDc6am9-de8c-rFmSo,2361
|
|
822
824
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.devcontainer-option/readme.md,sha256=-sSneMDne1fqEoox2hXUGmoO8ewgi34y7lJwGTidSpY,104
|
|
823
825
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.devcontainer-option/setup.sh,sha256=pOvGjZ7jgRQzFkD93mNICmcC2y66Dexrq4bCnSSVwtU,310
|
|
824
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.github/.copilot-instructions.md,sha256=
|
|
826
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.github/.copilot-instructions.md,sha256=yO9qQoTL24IzTh1Pi0FDZr320a7Mhn9gQTtndOofEAM,33144
|
|
825
827
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.idea/runConfigurations/ApiLogicServer.xml,sha256=l9pIRZDgiRhyCWbPfWlqi57QpF3jvw8IvbMndE6nOSI,1122
|
|
826
828
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.idea/runConfigurations/Report_Behave_Logic.xml,sha256=EaMZRx4ghJxagqS-a2F81dDEpzciLhKqAbzipyk0iX0,1301
|
|
827
829
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/.idea/runConfigurations/Run_Behave.xml,sha256=wpQmtozEV3Pue8wBED5PUnvEFzf7A1-UY-bh-SlColo,1191
|
|
@@ -988,7 +990,7 @@ api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/
|
|
|
988
990
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/react_map.prompt.md,sha256=8B9bDjk4sL1t5LzYLKjuf78UPDmhj9assRZTIOvlwN4,891
|
|
989
991
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/react_tree.prompt.md,sha256=Eoi4Q3H4x-PQOjonUjQ1o6xkiFtcEA_hg8tuFP-qk80,652
|
|
990
992
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/readme_training.md,sha256=EilDTYaDPoGCD9ef5Efs8eDn8ZNQTgGN7_QnJ4LrO2s,120
|
|
991
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/testing.md,sha256=
|
|
993
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/docs/training/testing.md,sha256=_G-m-s8mOAUbQOyqIRChIOM48SdFm80IaX11_BElfyY,32197
|
|
992
994
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/integration/kafka/kafka_consumer.py,sha256=2DOsFpYnsJ71gZzzfJweEmL-i99uCtEFU0hVwIKFGMw,1516
|
|
993
995
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/integration/kafka/kafka_producer.py,sha256=g0nMAVfz1Y0iKJbbXfvRpdf-QUmyB4uUGZ6lyaVoXag,4470
|
|
994
996
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/integration/kafka/kafka_readme.md,sha256=MlwykHWM2w41KzWh4vPuTnIodR8f-BQzrWpV4P1hrsI,161
|
|
@@ -1048,11 +1050,11 @@ api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic
|
|
|
1048
1050
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/behave_logic_report.py.bak,sha256=dK0QZMi6ux3KVlwDQIht2_ww7YJHnocd4M2jtf9dvSU,11324
|
|
1049
1051
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/behave_run.py,sha256=KvHQAlsyF2heBvoD6voAkhIVJXS1AAKaHEcw77AsD3Q,2429
|
|
1050
1052
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/about.feature,sha256=c7KDFyXpX_84n6JhUtGzruX-bwb1fxNyYD57ttyWpwA,414
|
|
1051
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/order_processing.feature,sha256=
|
|
1053
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/order_processing.feature,sha256=9VwrkEEJOpXSewr6u6a5zGbxKZsFNSsogd67fhOcecM,3330
|
|
1052
1054
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/about_steps.py,sha256=GLMrkOcGBl3PoQBio90_riDqEWnE4bHU11IUBHcd6MA,365
|
|
1053
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/order_processing_steps.py,sha256=
|
|
1055
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/order_processing_steps.py,sha256=ROKu3gKbP938mBLRDpLgmwevFNrrCIOUQxHykymjQxQ,24397
|
|
1054
1056
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/features/steps/test_utils.py,sha256=SbQHG-1Bjgz3PGdt0rZAcjXmJx8mqKfF_hOYv5CDf9g,4999
|
|
1055
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/behave.log,sha256=
|
|
1057
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/behave.log,sha256=Kb7XVB-AtsP5Kc0ukFW178SRXBoOowWOc0OfE5MwgMQ,7511
|
|
1056
1058
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Add_Item_Exceeding_Credit.log,sha256=XBsGRbMVex6bsmarRMLQx-D4-7x-HqGuIvBxE8iiszg,968
|
|
1057
1059
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Assign_Product_to_Item.log,sha256=qBEdp38kgCCLK2qzNyk42uR75oaV12z1EbNclLAiuhQ,3714
|
|
1058
1060
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/B2B_Order_-_10_Gadget.log,sha256=xasolOvlRydFM2Iqb4nNuIlHO2gCBGsvj-1EtOfHiTY,6746
|
|
@@ -1062,12 +1064,14 @@ api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic
|
|
|
1062
1064
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/B2B_Order_Placement.log,sha256=W8joJxO6hvbvUqCR2Djc_ek37yvcGPeR4o-W09ypZtU,124
|
|
1063
1065
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Balance_Check.log,sha256=fcOGBt28M85UeGJFonxbi4sPXyUyLXQwou-l-legh74,230
|
|
1064
1066
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Carbon_Neutral_B2B_Order.log,sha256=ltBgPMMw4Gs0V_9JrC87oHLNMNZtP4SYxBnzCNAnSbA,8106
|
|
1065
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Carbon_Neutral_Discount_A.log,sha256=
|
|
1067
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Carbon_Neutral_Discount_A.log,sha256=WSsVtiYvDqV1LMJnhcdpXest7dOvc9HGp2aGrbF9IZA,8328
|
|
1066
1068
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Item_Product.log,sha256=5P3FAxVsblS2J_HKcqVluvtSyuT2K0IEOfiTtAOgtO0,3479
|
|
1067
1069
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Item_Product_to_Ga.log,sha256=h0iCj-0kkmbewdCTVO6VgE8zJDNzfBCKumJKerVRN9w,3462
|
|
1070
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Order_Customer.log,sha256=wwgy7Bl-FA5SU_RDoHh18CPucYFGsSBv3U2I4I2yssQ,3506
|
|
1068
1071
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Order_Customer_Adj.log,sha256=bwwIjYCnPa0HLkupe_oQutXaml88OUuotsr1HobVLCE,2389
|
|
1069
1072
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Order_Customer_to_.log,sha256=jtBXnyOwLbPrC7lPNQdsSbUIHBcWzDDpHKfQKkr1Zgo,2376
|
|
1070
1073
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Product_Updates_Un.log,sha256=KQOx-1UQ_xFzeMILWc30d1hYmWofM2JTqWphAWBLotY,3478
|
|
1074
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Change_Product_in_Item.log,sha256=4mqPvkVoKJYGvLgnvo6CiaRX_VwlYpYzuOvBUZEh7FQ,4579
|
|
1071
1075
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Multi-Item_Order.log,sha256=1I-Q_YTSG0OwsUI3UuTC_09FCuLzpCxYGTI_g9TlfUM,11362
|
|
1072
1076
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Order_for_Constrai.log,sha256=69fPQZy6t9oITmrPvojWVkJGMxjc7RvOCU_tfs-Ugls,809
|
|
1073
1077
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Create_Order_for_FK_Chang.log,sha256=Zg4MADl0N5jp6fv9WlADeJ028crk2G664zZM5AZ_X3E,7624
|
|
@@ -1078,13 +1082,15 @@ api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic
|
|
|
1078
1082
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Credit_Limit_Constraint_T.log,sha256=Ng0zD8lNvdn-ats-rZ40ANwVWrncAPYB31cu3PosMcU,255
|
|
1079
1083
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Customer_Change.log,sha256=8oSDjwHMd3utZbVZWAfLOmqQL53mIX0Mua7EwYi2kx0,2474
|
|
1080
1084
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Delete_First_Item.log,sha256=6ZGycwcAWPgaxIGPLslN8b7LzCkvIc9gk4tniOk9JFk,2529
|
|
1081
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Delete_Item_Reduces_Order.log,sha256=
|
|
1082
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Exceed_Credit_Limit_Rejec.log,sha256=
|
|
1083
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Good_Order_Placed_via_B2B.log,sha256=
|
|
1085
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Delete_Item_Reduces_Order.log,sha256=radCNg7OSuYu4MyA3ZsXG0lvTFsxaKHUkvcv-iA4pJg,4753
|
|
1086
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Exceed_Credit_Limit_Rejec.log,sha256=vBo5ajudtuX4tAPnAMbq-6CcmiAYzZ5mWcsdGGEGOro,6358
|
|
1087
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Good_Order_Placed_via_B2B.log,sha256=d2WDR4zh0c0bEoXGq8dWLIIci1sm_CsjSG9-5-WwY5g,8091
|
|
1084
1088
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Deletion.log,sha256=sjNuolQNY5JJRyM2-O0cwIkDVEDOJ-sAdDrqyX4P41I,2536
|
|
1089
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Quantity_Change.log,sha256=eRjt052sGb7umfZBHKR56Ju1I-fnQxws7vRpTRUK02Y,4120
|
|
1085
1090
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Quantity_Update.log,sha256=dWTwK63VRhbVyIuIvZ9ytRbx5xa2zTbaXJ1PyGom95M,3016
|
|
1086
1091
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Quantity_Update_Reca.log,sha256=Hbm782ObGv1_di6FuKkaFBsb94C3F9U9bymSg_JXM3I,3002
|
|
1087
1092
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Item_Quantity_Update_to_1.log,sha256=0xCKd16tbDdbnv-GYviAt2GAUVNvDudQY5FCIfSa7vM,2987
|
|
1093
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Multi-Item_Order_via_B2B_.log,sha256=Eqx24Wcj77ROeOTzv8HsPz9no0X58EAdQEfDdgNuUt0,10648
|
|
1088
1094
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Order_Customer_Change.log,sha256=NrIz0Wzfip0SoLbRuGqmHysP2o8cJoUnwN6R6km2n8k,2380
|
|
1089
1095
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Order_Shipping.log,sha256=qhAKUfKUKWtRLxAjgK-Vrh6iU6b_8ecCOEr1FQCZ4js,2179
|
|
1090
1096
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Order_Unshipping.log,sha256=3HD6dMeV7_TQ2R5uvebH5qRgqDX8MDRQ7lfgdCFWzug,2155
|
|
@@ -1105,13 +1111,13 @@ api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic
|
|
|
1105
1111
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Shipped_Order.log,sha256=c1JqQ3dkdyeF87DkXKGSvvDB5gsJCA8TRL4zwxTsZdc,7169
|
|
1106
1112
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Setup_Unshipped_Order.log,sha256=kNRSBxzEmGXQaChdLfqkE0HcAiwjyGU_Jty-6rzY0D0,7447
|
|
1107
1113
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Ship_Order.log,sha256=ESNVX5dZokvBUl4Y61Do2sX3L-qRD6NDgs8JaauzynQ,2071
|
|
1108
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Ship_Order_Excludes_from_.log,sha256=
|
|
1114
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Ship_Order_Excludes_from_.log,sha256=XyrmN9h7KtlXI_GN2lSyvE9bMVTD82bCyVNBlLRlBzQ,3257
|
|
1109
1115
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/System_Ready.log,sha256=7-w-JFaTZ6u4hPneHCcvb-nvyNaeYcslZJIx3blJiJs,85
|
|
1110
1116
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Test_Order_Setup_-_1_Item.log,sha256=MgP1vAOyA9_sn_EwZdwRPRzg-2xooblArKtRXJye5fc,7488
|
|
1111
1117
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Test_Order_Setup_-_2_Item.log,sha256=JeXJAZXaImcgPwZH-9YHPcTrNaw7XlbztPVDPJ8NwFQ,11181
|
|
1112
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Transaction_Processing.log,sha256=
|
|
1118
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Transaction_Processing.log,sha256=4TV5tmAKRbGqpZiQvQ6jue7rprCGFB723hTtZ6I6nvk,2850
|
|
1113
1119
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Unship_Order.log,sha256=FYm-2DoFTS7u7-KV4lytBWguoUZ-c_uOzM9_vQrDe4M,2057
|
|
1114
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Unship_Order_Includes_in_.log,sha256=
|
|
1120
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Unship_Order_Includes_in_.log,sha256=BwhLOnQW86hT5CNZlFE_stnKiC0kzd9y45_Q_tuR1fg,3255
|
|
1115
1121
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Verify_Charlie_Balance.log,sha256=H8jsnELgXRqilP14ygFklGDsZmtSn4OTS2oTxQipZyY,77
|
|
1116
1122
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Verify_Customer_Balance.log,sha256=XYcRfYYY2yLX6wxcPI7K4jnEjUCjCXwtoZBRUkGb_QQ,1192
|
|
1117
1123
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/logs/scenario_logic_logs/Verify_Diana_Balance.log,sha256=eSey0ZJqld-3Fc3EFR8CpPwb8D662wRQNeapNLwDBOc,1194
|
|
@@ -1121,7 +1127,7 @@ api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic
|
|
|
1121
1127
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report Intro micro.md,sha256=vWXV3FPIHirQrxFQg7DpQhtrrYeay0xjGNL3FmklB2I,147
|
|
1122
1128
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report Intro.md,sha256=UW_vCd4k2LwKPO4d9pXTsbvLPrXg7S42tbywVJlAbFU,3732
|
|
1123
1129
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report Sample.md,sha256=wVNGwhF3GhVVRv7YJLjqUd2WsjFZD_IpIzRZN3xEgkI,91494
|
|
1124
|
-
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report.md,sha256=
|
|
1130
|
+
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/api_logic_server_behave/reports/Behave Logic Report.md,sha256=bLfp8H9w8yY3KdzdF0i1MqFDKS2ISuVG9yN-gXQTlbA,28481
|
|
1125
1131
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/test/basic/server_test.py,sha256=mmFF-TKEbUyMU1QfcDDNGu9sULD9nclnp-tyzNv9kEo,757
|
|
1126
1132
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1127
1133
|
api_logic_server_cli/prototypes/manager/samples/basic_demo_sample/ui/admin/admin.yaml,sha256=pbL6Hx39n-xpUYhqXNUf0CBrfwUjPK1I6CYecZZfZT4,3514
|
|
@@ -1390,7 +1396,7 @@ api_logic_server_cli/prototypes/manager/samples/prompts/genai_demo.prompt,sha256
|
|
|
1390
1396
|
api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace,sha256=sfzw6ZW2eZHOJCKmTM3r-Kt_fE1KKArD9fk4TLI5xUY,329
|
|
1391
1397
|
api_logic_server_cli/prototypes/manager/system/readme_ssystem.md,sha256=52zXRh5KJ4GSRWyNLwzbXqKMDJmR7M6PhS71-DIUoBI,106
|
|
1392
1398
|
api_logic_server_cli/prototypes/manager/system/style-guide.yaml,sha256=JaP3NDE29k4_e9ELeLTZfnWf2L8VgS1X7hO8J_BNqJU,673
|
|
1393
|
-
api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/copilot-dev-context.md,sha256=
|
|
1399
|
+
api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/copilot-dev-context.md,sha256=fhTkO1L5gyNkETbZ1QS6FiaLHHacYPTfQn9o84LvDSI,22608
|
|
1394
1400
|
api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/install-ApiLogicServer-dev.ps1,sha256=RBV9nGJZBkvCoH06UJ5o15Kmt5nIeLXeIvTCmpHLWXE,3433
|
|
1395
1401
|
api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/install-ApiLogicServer-dev.sh,sha256=zutEcQNZ1DX9gaUSRbsAcIClsy_a7inHWcb2dpcYgWY,3677
|
|
1396
1402
|
api_logic_server_cli/prototypes/manager/system/ApiLogicServer-Internal-Dev/readme.md,sha256=NSr2hEKT1XeFMzJ_x5vcbdEFZ4PJz_GobdjRg-TyLHU,206
|
|
@@ -2856,9 +2862,9 @@ api_logic_server_cli/tools/mini_skel/database/system/SAFRSBaseX.py,sha256=p8C7AF
|
|
|
2856
2862
|
api_logic_server_cli/tools/mini_skel/database/system/TestDataBase.py,sha256=U02SYqThsbY5g3DX7XGaiMxjZBuOpzvtPS6RfI1WQFg,371
|
|
2857
2863
|
api_logic_server_cli/tools/mini_skel/logic/declare_logic.py,sha256=fTrlHyqMeZsw_TyEXFa1VlYBL7fzjZab5ONSXO7aApo,175
|
|
2858
2864
|
api_logic_server_cli/tools/mini_skel/logic/load_verify_rules.py,sha256=Rr5bySJpYCZmNPF2h-phcPJ53nAOPcT_ohZpCD93-a0,7530
|
|
2859
|
-
apilogicserver-15.2.
|
|
2860
|
-
apilogicserver-15.2.
|
|
2861
|
-
apilogicserver-15.2.
|
|
2862
|
-
apilogicserver-15.2.
|
|
2863
|
-
apilogicserver-15.2.
|
|
2864
|
-
apilogicserver-15.2.
|
|
2865
|
+
apilogicserver-15.2.7.dist-info/licenses/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
|
|
2866
|
+
apilogicserver-15.2.7.dist-info/METADATA,sha256=DtkT_ZInOLonITZnYm5ofYGBwgfr1Cv_jmBcyZFIZlw,26461
|
|
2867
|
+
apilogicserver-15.2.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
2868
|
+
apilogicserver-15.2.7.dist-info/entry_points.txt,sha256=W9EVNvf09h8n6rJChmVj2gzxVQ6BXXZa2x3wri0lFGc,259
|
|
2869
|
+
apilogicserver-15.2.7.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
|
|
2870
|
+
apilogicserver-15.2.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|