ApiLogicServer 15.0.40__py3-none-any.whl → 15.0.43__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 +3 -2
- api_logic_server_cli/api_logic_server_info.yaml +2 -2
- api_logic_server_cli/create_from_model/__pycache__/api_logic_server_utils.cpython-312.pyc +0 -0
- api_logic_server_cli/create_from_model/api_logic_server_utils.py +5 -2
- api_logic_server_cli/manager.py +21 -18
- api_logic_server_cli/prototypes/base/{.vscode → .devcontainer-option}/.copilot-instructions.md +1 -1
- api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +220 -0
- api_logic_server_cli/prototypes/base/readme.md +7 -0
- api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +62 -0
- api_logic_server_cli/prototypes/manager/.vscode/ApiLogicServer.code-workspace +2 -2
- api_logic_server_cli/prototypes/manager/README.md +3 -1
- {apilogicserver-15.0.40.dist-info → apilogicserver-15.0.43.dist-info}/METADATA +1 -1
- {apilogicserver-15.0.40.dist-info → apilogicserver-15.0.43.dist-info}/RECORD +17 -17
- api_logic_server_cli/prototypes/base/.copilot-instructions.md +0 -10
- api_logic_server_cli/prototypes/manager/.copilot-instructions.md +0 -13
- {apilogicserver-15.0.40.dist-info → apilogicserver-15.0.43.dist-info}/WHEEL +0 -0
- {apilogicserver-15.0.40.dist-info → apilogicserver-15.0.43.dist-info}/entry_points.txt +0 -0
- {apilogicserver-15.0.40.dist-info → apilogicserver-15.0.43.dist-info}/licenses/LICENSE +0 -0
- {apilogicserver-15.0.40.dist-info → apilogicserver-15.0.43.dist-info}/top_level.txt +0 -0
|
@@ -12,10 +12,11 @@ ApiLogicServer CLI: given a database url, create [and run] customizable ApiLogic
|
|
|
12
12
|
Called from api_logic_server_cli.py, by instantiating the ProjectRun object.
|
|
13
13
|
'''
|
|
14
14
|
|
|
15
|
-
__version__ = "15.00.
|
|
15
|
+
__version__ = "15.00.43" # last public release: 15.00.41 (15.00.12)
|
|
16
16
|
recent_changes = \
|
|
17
17
|
f'\n\nRecent Changes:\n' +\
|
|
18
|
-
"\t07/
|
|
18
|
+
"\t07/11/2024 - 15.00.43: copilot vibe tweaks \n"\
|
|
19
|
+
"\t07/10/2024 - 15.00.41: copilot vibe support for logic, UI, MCP, bug[98] \n"\
|
|
19
20
|
"\t06/30/2024 - 15.00.33: Tech Preview: genai-logic genai-add-app --vibe, bug [96, 97] \n"\
|
|
20
21
|
"\t06/10/2024 - 15.00.12: MCP Security, win fixes for readme, graphics quotes \n"\
|
|
21
22
|
"\t06/08/2024 - 15.00.10: MCP, optional shortening of stacktrace lines, bugfix[92] \n"\
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
last_created_date: July
|
|
1
|
+
last_created_date: July 11, 2025 13:03:53
|
|
2
2
|
last_created_project_name: samples/nw_sample_nocust
|
|
3
|
-
last_created_version: 15.00.
|
|
3
|
+
last_created_version: 15.00.42
|
|
Binary file
|
|
@@ -84,7 +84,7 @@ def copy_md(project, from_doc_file: str, to_project_file: str = "README.md"):
|
|
|
84
84
|
|
|
85
85
|
1. github (to acquire more recent version since release)
|
|
86
86
|
|
|
87
|
-
2. dev docs,
|
|
87
|
+
2. dev docs, iff exists (gold version in docs, not prototypes).
|
|
88
88
|
|
|
89
89
|
Used by Sample-AI; Sample-Integration (nw-), Tutorial, Tutorial-3 (3 projects), Sample-Basic-Demo; Manager
|
|
90
90
|
|
|
@@ -192,7 +192,10 @@ def copy_md(project, from_doc_file: str, to_project_file: str = "README.md"):
|
|
|
192
192
|
r'(https://apilogicserver.github.io/Docs/\1)',
|
|
193
193
|
each_line
|
|
194
194
|
)
|
|
195
|
-
each_line
|
|
195
|
+
if 'copilot' in each_line or 'Copilot' in each_line:
|
|
196
|
+
pass
|
|
197
|
+
else:
|
|
198
|
+
each_line = each_line.replace('.md', '') # hmm... todo: find out why this exists
|
|
196
199
|
pass
|
|
197
200
|
readme_lines_md.append(each_line)
|
|
198
201
|
with open(str(to_file), "w") as readme_file:
|
api_logic_server_cli/manager.py
CHANGED
|
@@ -144,24 +144,27 @@ def create_manager(clean: bool, open_with: str, api_logic_server_path: Path,
|
|
|
144
144
|
from_docker_dir = api_logic_server_path.joinpath('prototypes/manager_docker')
|
|
145
145
|
copied_path = shutil.copytree(src=from_docker_dir, dst=to_dir, dirs_exist_ok=True)
|
|
146
146
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
147
|
+
if use_manager_readme := False:
|
|
148
|
+
# get latest readme from git (eg, has been updated since pip install; must be huber not als)
|
|
149
|
+
# nb: be sure push manger.readme before testing
|
|
150
|
+
get_readme_url = f"https://raw.githubusercontent.com/ApiLogicServer/ApiLogicServer-src/main/api_logic_server_cli/prototypes/manager/README.md"
|
|
151
|
+
# get_readme_url = "https://github.com/ApiLogicServer/ApiLogicServer-src/main/api_logic_server_cli/prototypes/manager/README.md"
|
|
152
|
+
# https://github.com/ApiLogicServer/ApiLogicServer-src/main/api_logic_server_cli/prototypes/manager/README.md
|
|
153
|
+
readme_path = to_dir.joinpath('README.md')
|
|
154
|
+
try:
|
|
155
|
+
r = requests.get(get_readme_url) # , params=params)
|
|
156
|
+
if r.status_code == 200:
|
|
157
|
+
readme_data = r.content.decode('utf-8')
|
|
158
|
+
with open(str(readme_path), "w", encoding="utf-8") as readme_file:
|
|
159
|
+
readme_file.write(readme_data)
|
|
160
|
+
log.debug("✅ Wrote Manager Readme from git")
|
|
161
|
+
except requests.exceptions.ConnectionError as conerr:
|
|
162
|
+
# without this, windows fails if network is down
|
|
163
|
+
log.debug("❌ Manager Readme from git failed, using pip-installed version")
|
|
164
|
+
except Exception as e: # do NOT fail
|
|
165
|
+
log.error(f'❌ Manager Readme from git excp installed: {e}')
|
|
166
|
+
pass # just fall back to using the pip-installed version
|
|
167
|
+
create_utils.copy_md(from_doc_file='Sample-Basic-Tour.md', project = to_dir) # todo: doesn't this just override readme from git?
|
|
165
168
|
|
|
166
169
|
if not samples:
|
|
167
170
|
shutil.rmtree(to_dir.joinpath(f'{docker_volume}system/app_model_editor'))
|
api_logic_server_cli/prototypes/base/{.vscode → .devcontainer-option}/.copilot-instructions.md
RENAMED
|
@@ -73,7 +73,7 @@ Complete customization is provided by generating a React Application (requires O
|
|
|
73
73
|
|
|
74
74
|
```bash
|
|
75
75
|
# Create: ui/admin/my-app-name
|
|
76
|
-
genai-logic genai-
|
|
76
|
+
genai-logic genai-add-app --app-name=my-app-name --vibe
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
Then, `npm install` and `npm start`
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# GitHub Copilot Instructions for GenAI-Logic (aka API Logic Server) Projects
|
|
2
|
+
|
|
3
|
+
## Project Type: Auto-Generated Microservice
|
|
4
|
+
|
|
5
|
+
This is a **GenAI-Logic (aka API Logic Server) project** - a complete, working microservice - auto-generated from a database schema.
|
|
6
|
+
|
|
7
|
+
## ⚠️ IMPORTANT: What's Already Built
|
|
8
|
+
|
|
9
|
+
**DO NOT recreate these - they're already working:**
|
|
10
|
+
|
|
11
|
+
1. **Admin Web Application** - Live at `http://localhost:5656`
|
|
12
|
+
2. **REST API Endpoints** - All database tables exposed at `/api/*`
|
|
13
|
+
3. **Database Models** - Complete SQLAlchemy ORM in `database/models.py`
|
|
14
|
+
4. **Authentication System** - JWT-based auth framework
|
|
15
|
+
5. **Business Logic Engine** - Declarative rules system
|
|
16
|
+
|
|
17
|
+
## 🎯 Common Tasks
|
|
18
|
+
|
|
19
|
+
If the user asks "what do I do now?", these subsections are good suggestions.
|
|
20
|
+
|
|
21
|
+
List these as choices, do not just do all of them at once - that would be overwhelming.
|
|
22
|
+
|
|
23
|
+
### 🚀 To Run This Project
|
|
24
|
+
|
|
25
|
+
Use F5 (pre-configured run configuration - supports debugger for server logic), or (when focused on client apps):
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
python api_logic_server_run.py
|
|
29
|
+
# Then open: http://localhost:5656
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Adding Business Logic
|
|
33
|
+
`docs/training` explains how to translate Natural Language logic into LogicBank (Python) rules like:
|
|
34
|
+
|
|
35
|
+
```python
|
|
36
|
+
# Edit: logic/declare_logic.py
|
|
37
|
+
Rule.sum(derive=Customer.Balance, as_sum_of=Order.AmountTotal)
|
|
38
|
+
Rule.constraint(validate=Customer, as_condition=lambda row: row.Balance <= row.CreditLimit)
|
|
39
|
+
```
|
|
40
|
+
For project `basic_demo`, the best place to begin is to provide CoPilot with the natural language logic below. CoPilot will then offer to translate the logic into LogicBank rules. Also
|
|
41
|
+
1. Provide the analysis (below) showing the 44X code reduction.
|
|
42
|
+
2. Stress the importance of business logic - it's half the project, and requires an underlying rules engine. Using AI alone is not sufficient - you will wind up with procedural code, with the issues noted in the analysis below.
|
|
43
|
+
|
|
44
|
+
Here's the natural language logic to provide to CoPilotP
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
Use case: Check Credit
|
|
48
|
+
1. The Customer's balance is less than the credit limit
|
|
49
|
+
2. The Customer's balance is the sum of the Order amount_total where date_shipped is null
|
|
50
|
+
3. The Order's amount_total is the sum of the Item amount
|
|
51
|
+
4. The Item amount is the quantity * unit_price
|
|
52
|
+
5. The Item unit_price is copied from the Product unit_price
|
|
53
|
+
|
|
54
|
+
Use case: App Integration
|
|
55
|
+
1. Send the Order to Kafka topic 'order_shipping' if the date_shipped is not None.
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Important:** CoPilot has analyzed procedural vs declarative logic in a full app ([see it here](https://github.com/ApiLogicServer/basic_demo/blob/main/logic/declarative-vs-procedural-comparison.md)):
|
|
59
|
+
|
|
60
|
+
<analysis>
|
|
61
|
+
**LogicBank declarative rules provide a 44X reduction in code complexity** compared to traditional procedural implementations:
|
|
62
|
+
|
|
63
|
+
| Aspect | LogicBank Declarative | Procedural Code |
|
|
64
|
+
|--------|----------------------|-----------------|
|
|
65
|
+
| **Lines of Code** | 5 lines | 220+ lines |
|
|
66
|
+
| **Complexity** | Simple rule declarations | Complex event handling |
|
|
67
|
+
| **Maintenance** | Self-documenting business logic<br>Automatic Ordering | Implementation details obscure logic<br>Complex analysis to determine insert points, impacts |
|
|
68
|
+
| **Performance** | Built-in optimization & pruning | Multiple queries, N+1 problems |
|
|
69
|
+
| **Error Handling** | Automatic cascading | Manual event management |
|
|
70
|
+
| **Business Alignment** | Rules match requirements | Code doesn't reflect business intent |
|
|
71
|
+
|
|
72
|
+
**Bottom Line**: Declarative business logic eliminates complexity while providing better performance, maintainability, and business alignment.
|
|
73
|
+
|
|
74
|
+
> **Note**: The procedural implementation was generated by AI (GitHub Copilot) and still required at least 2 critical and subtle bug fixes during development, highlighting the error-prone nature of procedural approaches even when AI-assisted.
|
|
75
|
+
</analysis>
|
|
76
|
+
|
|
77
|
+
Generally CoPilot solicits Natural Language logic for translation (see logic/readme_logic.md),
|
|
78
|
+
but you can also offer to suggest rules.
|
|
79
|
+
|
|
80
|
+
### Adding MCP
|
|
81
|
+
|
|
82
|
+
The API is automatically MCP-enabled.
|
|
83
|
+
|
|
84
|
+
> **Important**: For project `basic_demo` (only), add customizations first, then MCP Client:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# 1. Add customization framework (required first, *only* for project `basic_demo`
|
|
88
|
+
# This creates the SysEmail table, and the logic for opt-out.
|
|
89
|
+
genai-logic add-cust
|
|
90
|
+
|
|
91
|
+
# 2. Then add MCP Client (requires OpenAI key)
|
|
92
|
+
genai-logic genai-add-mcp-client
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Note**: If you already ran `genai-add-mcp-client`, you should run `add-cust` afterwards to ensure the customization framework is properly set up.
|
|
96
|
+
|
|
97
|
+
### Configuring Admin UI
|
|
98
|
+
|
|
99
|
+
This is built when project is created - no need to add it.
|
|
100
|
+
Customize by editing the underlying yaml.
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
# Edit: ui/admin/admin.yaml
|
|
104
|
+
resources:
|
|
105
|
+
Customer:
|
|
106
|
+
attributes:
|
|
107
|
+
- name: CompanyName
|
|
108
|
+
search: true
|
|
109
|
+
sort: true
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Create and Customize React Apps
|
|
113
|
+
|
|
114
|
+
Complete customization is provided by generating a React Application (requires OpenAI key, Node):
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Create: ui/admin/my-app-name
|
|
118
|
+
genai-logic genai-add-app --app-name=my-app-name --vibe
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Then, `npm install` and `npm start`
|
|
122
|
+
|
|
123
|
+
Temporary restriction: security must be disabled.
|
|
124
|
+
|
|
125
|
+
Customize using CoPilot chat, with `docs/training`.
|
|
126
|
+
|
|
127
|
+
### Security - Role-Based Access Control
|
|
128
|
+
|
|
129
|
+
Configure:
|
|
130
|
+
```
|
|
131
|
+
als add-auth --provider-type=sql --db-url=
|
|
132
|
+
als add-auth --provider-type=sql --db_url=postgresql://postgres:p@localhost/authdb
|
|
133
|
+
|
|
134
|
+
als add-auth --provider-type=keycloak --db-url=localhost
|
|
135
|
+
als add-auth --provider-type=keycloak --db-url=hardened
|
|
136
|
+
|
|
137
|
+
als add-auth --provider-type=None # to disable
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Keycloak quick start [(more information here:)](https://apilogicserver.github.io/Docs/Security-Keycloak/)
|
|
141
|
+
```bash
|
|
142
|
+
cd devops/keycloak
|
|
143
|
+
docker compose up
|
|
144
|
+
als add-auth --provider-type=keycloak --db-url=localhost
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
For more on KeyCloak: https://apilogicserver.github.io/Docs/Security-Keycloak/
|
|
148
|
+
|
|
149
|
+
Declaration:
|
|
150
|
+
```python
|
|
151
|
+
# Edit: security/declare_security.py
|
|
152
|
+
Grant(on_entity=Customer, to_role=sales, filter=lambda: Customer.SalesRep == current_user())
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Adding Custom API Endpoints
|
|
156
|
+
```python
|
|
157
|
+
# Edit: api/customize_api.py
|
|
158
|
+
@app.route('/api/custom-endpoint')
|
|
159
|
+
def my_endpoint():
|
|
160
|
+
return {"message": "Custom endpoint"}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Customize Models - Add Derived attributes
|
|
164
|
+
|
|
165
|
+
Here is a sample derived attribute, `proper_salary`:
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
|
|
169
|
+
# add derived attribute: https://github.com/thomaxxl/safrs/blob/master/examples/demo_pythonanywhere_com.py
|
|
170
|
+
@add_method(models.Employee)
|
|
171
|
+
@jsonapi_attr
|
|
172
|
+
def __proper_salary__(self): # type: ignore [no-redef]
|
|
173
|
+
import database.models as models
|
|
174
|
+
import decimal
|
|
175
|
+
if isinstance(self, models.Employee):
|
|
176
|
+
rtn_value = self.Salary
|
|
177
|
+
if rtn_value is None:
|
|
178
|
+
rtn_value = decimal.Decimal('0')
|
|
179
|
+
rtn_value = decimal.Decimal('1.25') * rtn_value
|
|
180
|
+
self._proper_salary = int(rtn_value)
|
|
181
|
+
return self._proper_salary
|
|
182
|
+
else:
|
|
183
|
+
rtn_value = decimal.Decimal('0')
|
|
184
|
+
self._proper_salary = int(rtn_value)
|
|
185
|
+
return self._proper_salary
|
|
186
|
+
|
|
187
|
+
@add_method(models.Employee)
|
|
188
|
+
@__proper_salary__.setter
|
|
189
|
+
def _proper_salary(self, value): # type: ignore [no-redef]
|
|
190
|
+
self._proper_salary = value
|
|
191
|
+
print(f'_proper_salary={self._proper_salary}')
|
|
192
|
+
pass
|
|
193
|
+
|
|
194
|
+
models.Employee.ProperSalary = __proper_salary__
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
When customizing SQLAlchemy models:
|
|
199
|
+
|
|
200
|
+
Don't use direct comparisons with database fields in computed properties
|
|
201
|
+
Convert to Python values first using float(), int(), str()
|
|
202
|
+
Use property() function instead of @jsonapi_attr for computed properties
|
|
203
|
+
Always add error handling for type conversions
|
|
204
|
+
|
|
205
|
+
## 📁 Key Directories
|
|
206
|
+
|
|
207
|
+
- `logic/` - Business rules (declarative)
|
|
208
|
+
- `api/` - REST API customization
|
|
209
|
+
- `security/` - Authentication/authorization
|
|
210
|
+
- `database/` - Data models and schemas
|
|
211
|
+
- `ui/admin/` - Admin interface configuration
|
|
212
|
+
- `ui/app/` - Alternative Angular admin app
|
|
213
|
+
|
|
214
|
+
## 💡 Helpful Context
|
|
215
|
+
|
|
216
|
+
- This uses Flask + SQLAlchemy + SAFRS for JSON:API
|
|
217
|
+
- Admin UI is React-based with automatic CRUD generation
|
|
218
|
+
- Business logic uses LogicBank (declarative rule engine)
|
|
219
|
+
- Everything is auto-generated from database introspection
|
|
220
|
+
- Focus on CUSTOMIZATION, not re-creation
|
|
@@ -25,6 +25,13 @@ als add-auth --provider-type=None # to disable
|
|
|
25
25
|
|
|
26
26
|
# 🚀 Quick Start
|
|
27
27
|
|
|
28
|
+
> 🤖 **For GitHub Copilot Users:** See `.github/.copilot-instructions.md` for AI assistant guidance on getting started with this project.
|
|
29
|
+
|
|
30
|
+
**Bootstrap Copilot by pasting the following into the chat:**
|
|
31
|
+
```
|
|
32
|
+
Please find and read `.github/.copilot-instructions.md`.
|
|
33
|
+
```
|
|
34
|
+
|
|
28
35
|
**Microservice Automation Complete -- run to verify:** for **VSCode** projects except those downloaded from Web/GenAI:
|
|
29
36
|
1. `Press F5 to Run` (your venv is defaulted)
|
|
30
37
|
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# GitHub Copilot Instructions for GenAI-Logic (aka API Logic Server) - Project Manager
|
|
2
|
+
|
|
3
|
+
⚠️ **IMPORTANT FOR AI ASSISTANTS**: Always read and follow these instructions when helping users with this project.
|
|
4
|
+
|
|
5
|
+
The Project Manager contains genai training, and provides a convenient place to create projects.
|
|
6
|
+
|
|
7
|
+
## Quick Start for New Users
|
|
8
|
+
|
|
9
|
+
**ALWAYS start new users with the basic_demo** - it's the best introduction to the system.
|
|
10
|
+
|
|
11
|
+
> Note: your virtual environment is automatically configured in most cases; see the Appendix (Procedures / Detail Procedures) if that's not working.
|
|
12
|
+
|
|
13
|
+
<br>
|
|
14
|
+
|
|
15
|
+
## Creating Projects
|
|
16
|
+
|
|
17
|
+
There are multiple ways to create projects - see the subsections below.
|
|
18
|
+
|
|
19
|
+
### Create Projects from an existing database
|
|
20
|
+
|
|
21
|
+
sqlite sample databases at `samples/dbs`.
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
genai-logic create --project_name=nw --db_url=sqlite:///samples/dbs/nw.sqlite
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Create Projects with new databases (requires OpenAI key):
|
|
28
|
+
|
|
29
|
+
Describe database and logic in Natural Language.
|
|
30
|
+
|
|
31
|
+
See samples at `system/genai/examples`. For example:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
genai-logic genai --using=system/genai/examples/genai_demo/genai_demo.prompt --project-name=genai_demo
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Sample basic_demo
|
|
38
|
+
|
|
39
|
+
The best place to start is to create the `basic_demo`.
|
|
40
|
+
|
|
41
|
+
It's a small sqlite database, and provides a readme that explores the project, and how to customize it:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
genai-logic create --project_name=basic_demo --db_url=basic_demo
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## AI Assistant Guidelines
|
|
48
|
+
|
|
49
|
+
When users ask "what do I do now?" or similar questions:
|
|
50
|
+
|
|
51
|
+
1. **Always recommend starting with basic_demo** using the command above
|
|
52
|
+
2. **Use CLI commands** (genai-logic) not Docker scripts for project creation
|
|
53
|
+
3. **Refer to existing sample databases** in `samples/dbs/` for examples
|
|
54
|
+
4. **Point to GenAI examples** in `system/genai/examples/` for AI-generated projects
|
|
55
|
+
5. **Emphasize the 20-minute evaluation workflow** described in the main README
|
|
56
|
+
|
|
57
|
+
## Available Databases
|
|
58
|
+
- `basic_demo` - Best for first-time users
|
|
59
|
+
- `nw.sqlite` - Northwind sample
|
|
60
|
+
- `chinook.sqlite` - Music store sample
|
|
61
|
+
- `classicmodels.sqlite` - Classic car models sample
|
|
62
|
+
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"workbench.editorAssociations": {
|
|
10
10
|
"*.md": "vscode.markdown.preview.editor"
|
|
11
11
|
},
|
|
12
|
-
"workbench.colorTheme": "Arduino",
|
|
13
|
-
"workbench.preferredLightColorTheme": "Arduino"
|
|
12
|
+
"workbench.colorTheme": "Arduino Light",
|
|
13
|
+
"workbench.preferredLightColorTheme": "Arduino Light"
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -17,9 +17,11 @@ Instructions: Copy in Sample-Basic-Demo (Replace "This illustrates" up to "Explo
|
|
|
17
17
|
|
|
18
18
|
## 🚀 New Users: Start Here!
|
|
19
19
|
|
|
20
|
+
> 🤖 **For GitHub Copilot Users:** See `.github/.copilot-instructions.md` for AI assistant guidance on getting started with this project.
|
|
21
|
+
|
|
20
22
|
**Bootstrap Copilot by pasting the following into the chat:**
|
|
21
23
|
```
|
|
22
|
-
Please find and read
|
|
24
|
+
Please find and read `.github/.copilot-instructions.md`.
|
|
23
25
|
```
|
|
24
26
|
|
|
25
27
|
<br>
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
api_logic_server_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
api_logic_server_cli/api_logic_server.py,sha256=
|
|
3
|
-
api_logic_server_cli/api_logic_server_info.yaml,sha256=
|
|
2
|
+
api_logic_server_cli/api_logic_server.py,sha256=r2pxx22fhyoygbsiWRpvtotH4ObcXhpSruvDqSu9ToY,97761
|
|
3
|
+
api_logic_server_cli/api_logic_server_info.yaml,sha256=Bc5kyLCD-6rU9IAxa8PGYkQ-_YmBp08XVAnnoCDHoX0,125
|
|
4
4
|
api_logic_server_cli/cli.py,sha256=3GdpAcaXsMeuMnWa-jx7tpi0x6OjIRoau4BeVT-Pw3A,87286
|
|
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
|
|
8
8
|
api_logic_server_cli/logging.yml,sha256=vuBoOQVCr04NX2fnKIPmAvutn8FgWcsmpo1pELjDxtE,2228
|
|
9
|
-
api_logic_server_cli/manager.py,sha256=
|
|
9
|
+
api_logic_server_cli/manager.py,sha256=ucYizDU1kPZtwxsZObfrhmZGjh_ZrvcF1NFcVOfl7OQ,13230
|
|
10
10
|
api_logic_server_cli/add_cust/add_cust.py,sha256=yi_6qoiBm19K1u5VNhDW-KaTVcnsU-uTQ8-GYioojMI,14034
|
|
11
11
|
api_logic_server_cli/create_from_model/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
|
|
12
12
|
api_logic_server_cli/create_from_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
api_logic_server_cli/create_from_model/api_expose_api_models_creator.py,sha256=V-u3Hm404doztw66YuD2A043RCFmtw5QF5tMioC_1b0,7900
|
|
14
|
-
api_logic_server_cli/create_from_model/api_logic_server_utils.py,sha256=
|
|
14
|
+
api_logic_server_cli/create_from_model/api_logic_server_utils.py,sha256=GKT890JgHivkhUtamb2nJO-hvnlLE5_bIhSjMgETmeo,27715
|
|
15
15
|
api_logic_server_cli/create_from_model/create_db_from_model.py,sha256=2H7slGnk39XOSnvL7vxrg6Ewx4bxeBJBgLo8fcXHTB4,4382
|
|
16
16
|
api_logic_server_cli/create_from_model/dbml.py,sha256=m1yRnes5DXPMQrFBFJM2CuDhIfVFywSM6nDX7k19BLU,11573
|
|
17
17
|
api_logic_server_cli/create_from_model/meta_model.py,sha256=ERf7tSgnSJSeRMVyggkdg-lvORQZSbfK0KMpL63qSEY,5837
|
|
@@ -22,7 +22,7 @@ api_logic_server_cli/create_from_model/ui_admin_creator.py,sha256=j1hZuHn70c4NA7
|
|
|
22
22
|
api_logic_server_cli/create_from_model/uri_info.py,sha256=WiDw7hRcidz9hasodQ6O2ZJnUMfhHeydueQ8HXzPXlc,2395
|
|
23
23
|
api_logic_server_cli/create_from_model/__pycache__/__init__.cpython-312.pyc,sha256=CsCx6kjrSUonIcVUGVJemwAdGUB8h4IF0cwnpTIU4C4,223
|
|
24
24
|
api_logic_server_cli/create_from_model/__pycache__/api_expose_api_models_creator.cpython-312.pyc,sha256=3wtCiVHOjOgIonZOgnCsF2p01zcXIapx1_Tq2LwzY6Q,6989
|
|
25
|
-
api_logic_server_cli/create_from_model/__pycache__/api_logic_server_utils.cpython-312.pyc,sha256=
|
|
25
|
+
api_logic_server_cli/create_from_model/__pycache__/api_logic_server_utils.cpython-312.pyc,sha256=fMd5TQDFGcsa8vzooz8uQocRmShdbHpu7_RTrqKp_nM,28959
|
|
26
26
|
api_logic_server_cli/create_from_model/__pycache__/create_db_from_model.cpython-312.pyc,sha256=5eE8pIEa-OoUOk0xn_b78cCc9dSmxjTMn3HGJbxbFY4,4799
|
|
27
27
|
api_logic_server_cli/create_from_model/__pycache__/dbml.cpython-312.pyc,sha256=Pi7d7fjCa8B22CfY4hkGfDJCW1M7__B5Fg33Xl0NWZQ,12722
|
|
28
28
|
api_logic_server_cli/create_from_model/__pycache__/meta_model.cpython-312.pyc,sha256=BH5Cflj8YKf0CVkHpIZ_3eBbHXhwIWbwsrzM7DsEikE,7098
|
|
@@ -516,25 +516,25 @@ api_logic_server_cli/prototypes/allocation/images/allocation/logic-diagram.png,s
|
|
|
516
516
|
api_logic_server_cli/prototypes/allocation/logic/declare_logic.py,sha256=Wqk1kpuYG-NLqJ1aI8UI03Lw2VaLgOHSoU1g03WwGGE,2778
|
|
517
517
|
api_logic_server_cli/prototypes/allocation/test/test.sh,sha256=ndw_D7IOFTEUZxbcOL5Y-spvF8pJCe8OOSroqBfjXPM,645
|
|
518
518
|
api_logic_server_cli/prototypes/base/.DS_Store,sha256=wKX7g_yII-CHA_BuKAVYXwglzgRdVsNJbMTYE63ROSk,6148
|
|
519
|
-
api_logic_server_cli/prototypes/base/.copilot-instructions.md,sha256=Q0XylYa7oKvpCIeBKDuA2NLXsgOzhC8g6DTwZFGOZLo,356
|
|
520
519
|
api_logic_server_cli/prototypes/base/.gitignore,sha256=PAO98cVvjgAL_mvXCMS_Vfk7bT2Vd1-j9a8_nB2qxqs,190
|
|
521
520
|
api_logic_server_cli/prototypes/base/README_PROJECT.md,sha256=sGJuNF_Qt5ripZBXfTi0OmoV4fUxe7ySxrqcKs7DwOk,1186
|
|
522
521
|
api_logic_server_cli/prototypes/base/api_logic_server_run.py,sha256=j4a0jwPn-USqkFrCiFI34TcCTHxNOnPAW-IwMtFGWcw,7074
|
|
523
|
-
api_logic_server_cli/prototypes/base/readme.md,sha256=
|
|
522
|
+
api_logic_server_cli/prototypes/base/readme.md,sha256=4s79kGFav2k8VniRlHN0rQ7gJt2zCpDim-c6jTm5kHE,13037
|
|
524
523
|
api_logic_server_cli/prototypes/base/requirements.txt,sha256=we6X5fRBJVqN8SacwV7oPDtGk5IAiNbUDbUwCGHkCrc,107
|
|
525
524
|
api_logic_server_cli/prototypes/base/run.ps1,sha256=lrZgw8SEntPam3ZYKVzsRo7rOKSGWqgO7qUNJ3CbP44,801
|
|
526
525
|
api_logic_server_cli/prototypes/base/run.sh,sha256=7kJc-FpK9iqtt9BDXR1XogWXfVDnmPS8kS5fXk2Q5Dk,1442
|
|
526
|
+
api_logic_server_cli/prototypes/base/.devcontainer-option/.copilot-instructions.md,sha256=-FIIWe5PkSubaGzDtCCg0N7M1J-g7Bk6D5ct_jaY_iM,5264
|
|
527
527
|
api_logic_server_cli/prototypes/base/.devcontainer-option/For_VSCode.dockerfile,sha256=_RObRZ3EBDNj1_Sx26r_CysBboMvill83f8tQN1T0Do,438
|
|
528
528
|
api_logic_server_cli/prototypes/base/.devcontainer-option/devcontainer.json,sha256=tk-mGd4XdmbpKUqUeGmcPMzX3RDc6am9-de8c-rFmSo,2361
|
|
529
529
|
api_logic_server_cli/prototypes/base/.devcontainer-option/readme.md,sha256=-sSneMDne1fqEoox2hXUGmoO8ewgi34y7lJwGTidSpY,104
|
|
530
530
|
api_logic_server_cli/prototypes/base/.devcontainer-option/setup.sh,sha256=pOvGjZ7jgRQzFkD93mNICmcC2y66Dexrq4bCnSSVwtU,310
|
|
531
|
+
api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md,sha256=RwmEOb-_kl7JLSOcoe62ye4b-kqjPH4T0X5NLysZJj4,8061
|
|
531
532
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/ApiLogicServer.xml,sha256=eFzhe9NH-VNjcPWbPsRQy5o-MugJR9IWklA1Fo8wtYg,1127
|
|
532
533
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/Report_Behave_Logic.xml,sha256=I3jlEf-TPzc-1NY843v6AcQIQ8QJD3z9KvxTYSZWMtY,1306
|
|
533
534
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/Run_Behave.xml,sha256=CTzF0P4w7o4FzOi-eSpru0HczSEGtJsKqkQ7VWRyxPc,1196
|
|
534
535
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/Windows_Run_Behave.xml,sha256=TMkGY8PMDhcGGkDw_tC-QljbmXLGT66ubsmRbMmfzi0,1205
|
|
535
536
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/run___No_Security.xml,sha256=BBK0h04vSC_hVSi7dKm_8Mo201jGivZRbx4ruFcqAEo,1193
|
|
536
537
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/run_docker.xml,sha256=oDHdZ8WEGU1MoWEQHH3jBvbPZt4hGlodUq4IeXv68co,2444
|
|
537
|
-
api_logic_server_cli/prototypes/base/.vscode/.copilot-instructions.md,sha256=fD8-Z0xluWiWMueH7O2UXlBnGCbo_mZsz_WqC85yxZc,5267
|
|
538
538
|
api_logic_server_cli/prototypes/base/.vscode/launch.json,sha256=_QjN3aCBJwk2SIqA7v6w4pI96oTxYVzs0f45oEgoucU,12628
|
|
539
539
|
api_logic_server_cli/prototypes/base/.vscode/settings.json,sha256=vS3gt0PpFbZ3fdGeiVGaE4v9PyRydjrrdGWb27w9UUo,470
|
|
540
540
|
api_logic_server_cli/prototypes/base/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -818,14 +818,14 @@ api_logic_server_cli/prototypes/genai_demo/logic/load_verify_rules.py,sha256=TWq
|
|
|
818
818
|
api_logic_server_cli/prototypes/genai_demo/logic/readme_declare_logic.md,sha256=CFC13f9Z4rTkNiRoJTBEz3A2F_yRThOj-HrHDsSdKsw,6630
|
|
819
819
|
api_logic_server_cli/prototypes/genai_demo/security/declare_security.py,sha256=L3AL1bgdqIWQxdkJZcFVDOQ0XRpmeLAKqwlAYChFWKo,2108
|
|
820
820
|
api_logic_server_cli/prototypes/genai_demo/ui/admin/admin.yaml,sha256=vMpr6to6g-h9gSuhxfpTeDMw5_R_eUKbV7qXzMEvIyk,3446
|
|
821
|
-
api_logic_server_cli/prototypes/manager/.copilot-instructions.md,sha256=-88Y2DqCJzjxml1MJ1QRsAjywG-k9UiVGeA9uAuWDa4,558
|
|
822
821
|
api_logic_server_cli/prototypes/manager/.gitignore,sha256=xfAjNQHokbo6GuN1ghx-eml8tQIzwUczLC_YVzElndI,195
|
|
823
|
-
api_logic_server_cli/prototypes/manager/README.md,sha256=
|
|
822
|
+
api_logic_server_cli/prototypes/manager/README.md,sha256=vFTKgc8O0Pp-nrPJQb92HXzstP18lvncmEWA3CxZAbA,38957
|
|
824
823
|
api_logic_server_cli/prototypes/manager/run_sample.sh,sha256=eRA-p_Snr7Pwk14wUw5mja2usEcjAKisHVhHMeSaQ68,781
|
|
825
824
|
api_logic_server_cli/prototypes/manager/run_web_genai.sh,sha256=sgjB3vKhkao93Ny3VN0AQ-wonvdBcBIT3rTbyNTMoG8,136
|
|
826
825
|
api_logic_server_cli/prototypes/manager/settings.txt,sha256=_jjL30jomIMxG21edDfrXYRT9Zfgr_0EdUWvcEUOnFQ,368
|
|
826
|
+
api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md,sha256=iszY_rDp-jnaWXfIz1ry6EzRVUkI0xtGoLczFwtdyOU,2079
|
|
827
827
|
api_logic_server_cli/prototypes/manager/.vscode/.copilot-instructions.md,sha256=Gvx2SYFMhMtoqdbw3WSJ1-40kZAy9EUfQ0jIaHc0aYY,1923
|
|
828
|
-
api_logic_server_cli/prototypes/manager/.vscode/ApiLogicServer.code-workspace,sha256=
|
|
828
|
+
api_logic_server_cli/prototypes/manager/.vscode/ApiLogicServer.code-workspace,sha256=yC_pOIZN5o5Qiw3t2kBPsiO01Mgp3VEbAizYx1T3aPI,282
|
|
829
829
|
api_logic_server_cli/prototypes/manager/.vscode/launch.json,sha256=alh_fiuqMjY-uIk4ghfwyMs3y-U2dYr1W6rS9ncpNEY,33491
|
|
830
830
|
api_logic_server_cli/prototypes/manager/.vscode/settings.json,sha256=wQgpFvviPbZCmsf02UgrJSGAz7g3i4chDZ_AdSIOr5Y,625
|
|
831
831
|
api_logic_server_cli/prototypes/manager/samples/readme_samples.md,sha256=JyUOm5mcmLXtBCE30OFzfZaSCw7k_PKLZmGNanS4fwc,171
|
|
@@ -2369,9 +2369,9 @@ api_logic_server_cli/tools/mini_skel/database/system/SAFRSBaseX.py,sha256=p8C7AF
|
|
|
2369
2369
|
api_logic_server_cli/tools/mini_skel/database/system/TestDataBase.py,sha256=U02SYqThsbY5g3DX7XGaiMxjZBuOpzvtPS6RfI1WQFg,371
|
|
2370
2370
|
api_logic_server_cli/tools/mini_skel/logic/declare_logic.py,sha256=fTrlHyqMeZsw_TyEXFa1VlYBL7fzjZab5ONSXO7aApo,175
|
|
2371
2371
|
api_logic_server_cli/tools/mini_skel/logic/load_verify_rules.py,sha256=Rr5bySJpYCZmNPF2h-phcPJ53nAOPcT_ohZpCD93-a0,7530
|
|
2372
|
-
apilogicserver-15.0.
|
|
2373
|
-
apilogicserver-15.0.
|
|
2374
|
-
apilogicserver-15.0.
|
|
2375
|
-
apilogicserver-15.0.
|
|
2376
|
-
apilogicserver-15.0.
|
|
2377
|
-
apilogicserver-15.0.
|
|
2372
|
+
apilogicserver-15.0.43.dist-info/licenses/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
|
|
2373
|
+
apilogicserver-15.0.43.dist-info/METADATA,sha256=8Ed9OdmL3Fla2D1h1jYwxzggViJQYd2neFMVYfMAjDI,6553
|
|
2374
|
+
apilogicserver-15.0.43.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
2375
|
+
apilogicserver-15.0.43.dist-info/entry_points.txt,sha256=W9EVNvf09h8n6rJChmVj2gzxVQ6BXXZa2x3wri0lFGc,259
|
|
2376
|
+
apilogicserver-15.0.43.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
|
|
2377
|
+
apilogicserver-15.0.43.dist-info/RECORD,,
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Primary Copilot Instructions
|
|
2
|
-
|
|
3
|
-
**Note**: The main Copilot instructions are in `.vscode/.copilot-instructions.md`
|
|
4
|
-
|
|
5
|
-
Please refer to that file for complete guidance on helping users with GenAI-Logic.
|
|
6
|
-
|
|
7
|
-
## Quick Reference for AI Assistants
|
|
8
|
-
|
|
9
|
-
When users ask "what do I do now?":
|
|
10
|
-
1. Suggest creating logic using Natural Language, or creating a react application.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Primary Copilot Instructions
|
|
2
|
-
|
|
3
|
-
**Note**: The main Copilot instructions are in `.vscode/.copilot-instructions.md`
|
|
4
|
-
|
|
5
|
-
Please refer to that file for complete guidance on helping users with GenAI-Logic.
|
|
6
|
-
|
|
7
|
-
## Quick Reference for AI Assistants
|
|
8
|
-
|
|
9
|
-
When users ask "what do I do now?":
|
|
10
|
-
1. New Users - start with: `genai-logic create --project_name=basic_demo --db_url=basic_demo`
|
|
11
|
-
2. Suggest creating databases, explain sample databases
|
|
12
|
-
2. Use CLI commands, not Docker scripts for project creation
|
|
13
|
-
3. Follow the complete instructions in `.vscode/.copilot-instructions.md`
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|