Skip to content

Commit e3a8af8

Browse files
committed
keeping toc for now
1 parent afb69ff commit e3a8af8

File tree

2 files changed

+353
-383
lines changed

2 files changed

+353
-383
lines changed

docs/Doc-Home.md

Lines changed: 284 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020

2121
 
2222

23+
24+
# Start: Install, Samples, Training
25+
26+
2327
## Install and Verify
2428

2529
If you have the correct Python (version 3.8-3.12), install is standard ([more detailed instructions here](Install-Express.md){:target="_blank" rel="noopener"}):
@@ -41,7 +45,285 @@ als create --project-name=sample_ai --db-url=sqlite:///sample_ai.sqlite
4145
code sample_ai
4246
```
4347

44-
Then explore the *demos, samples and tutorials*, below. For docs, [click here](Doc-Home.md){:target="_blank" rel="noopener"}.
48+
Then explore the *demos, samples and tutorials*, below.
49+
50+
51+
<details markdown>
52+
53+
<summary>Demos, Tutorials, Samples</summary>
54+
55+
Type:
56+
57+
* Demo: Small Databases, Introduces Key Features
58+
* Tutorial: Detailed Walk-throughs
59+
* Samples: other databases (brief description)
60+
61+
> Recommendation: **start with the first 2 items**
62+
63+
| Project | Notes | Type |
64+
:-------|:-----------|:-------|
65+
| [**AI Sample**](Sample-AI.md){:target="_blank" rel="noopener"} | 1. Use Copilot to create new databases from natural language<br>2. Illustrate a very rapid create / customize / iterate cycle<br>3. Introduce Integration | Demo |
66+
| [**Tutorial**](Tutorial.md){:target="_blank" rel="noopener"} | 1. How to Use the Key Features<br>2. Key code samples for adapting into your project | Tutorial |
67+
| | | |
68+
| [App Integration](Sample-Integration.md){:target="_blank" rel="noopener"} | Illustrates *running* Kafka messaging, self-serve and customized APIs, choreographed with rules and Python | Tutorial |
69+
| [Deployment](Tutorial-Deployment.md){:target="_blank" rel="noopener"} | Containerize and deploy your applications | Tutorial |
70+
| [Agile](Tech-Agile.md){:target="_blank" rel="noopener"} | Behavior Driven Design and testing, using Behave | Tutorial |
71+
| [AI Drives Agile Vision](Tech-AI.md){:target="_blank" rel="noopener"} | Use Copilot to create new databases from natural language, to bootstrap an agile create / deploy and collaborate / iterate cycle | Demo |
72+
| [Basic Demo](Sample-Basic-Demo.md){:target="_blank" rel="noopener"} | Focused use of API, Admin App and Rules on small customer/orders database | Demo |
73+
| [Allocation](Logic-Allocation.md){:target="_blank" rel="noopener"} | *Power Rule* to allocate a payment to a set of outstanding orders | Sample |
74+
| [MySQL Docker](Database-Connectivity.md){:target="_blank" rel="noopener"} | Create projects from sample databases: *chinook* (albums and artists), and *classicmodels* (customers and orders) | Sample |
75+
| Sqlite databases | Create projects from pre-installed databases via [abbreviations](Data-Model-Examples.md){:target="_blank" rel="noopener"}:<br>- chinook, classicmodels, todo | Sample |
76+
| [BudgetApp](Tech-Budget-App.md){:target="_blank" rel="noopener"} | illustrates automatic creation of parent rows for rollups | Sample |
77+
| [Banking App](https://github.com/ApiLogicServer/banking){:target="_blank" rel="noopener"} | Illustrates more complex logic (Funds Transfer) | Sample - obtain via `git clone` |
78+
79+
80+
Finally, try your own database.
81+
82+
</details>
83+
84+
85+
<details markdown>
86+
87+
<summary> Training </summary>
88+
89+
After installing, you can optionally run the first demo, above. The key training activities are:
90+
91+
1. Perform the [**Tutorial**](Tutorial.md){:target="_blank" rel="noopener"}
92+
* `ApiLogicServer create --project_name= --db_url=`
93+
* Keep this project installed; you can find code samples by searching `#als`
94+
2. Perform [**Logic Training**](Logic.md){:target="_blank" rel="noopener"}
95+
* Spreadsheet-like rules and Python for integration, and multi-table derivations / constraints
96+
3. **API Customization:** explore the code in `api/customize_api.py`
97+
* Note this is largely standard Flask, enhanced with logic
98+
99+
</details>
100+
101+
<details markdown>
102+
103+
<summary> Resources </summary>
104+
105+
You might find the following helpful in exploring the project:
106+
107+
* **Installed Sample Databases** -
108+
Here are [some installed sample databases](Data-Model-Examples.md){:target="_blank" rel="noopener"} you can use with simplified abbreviations for `db_url`.
109+
110+
* **Dockerized Test Databases** -
111+
Then, you might like to try out some of our [dockerized test databases](https://valhuber.github.io/ApiLogicServer/Database-Connectivity.md){:target="_blank" rel="noopener"}.
112+
113+
* [auth](Security-Authentication-Provider.md#sqlite-auth-provider){:target="_blank" rel="noopener"} - sqlite authentication database (you can also use other DBMSs)
114+
115+
</details>
116+
117+
<details markdown>
118+
119+
<summary> Release Notes </summary>
120+
121+
04/16/2024 - 10.03.80: cli issues in create-and-run/run, Oracledb 2.1.12
122+
123+
04/05/2024 - 10.03.66: ApiLogicServer start, als create from-model (eg copilot)
124+
125+
03/28/2024 - 10.03.46: Python 3.12, View support, CLI option-names, Keycloak preview
126+
127+
02/24/2024 - 10.03.04: Issue 45 (RowDictMapper joins), Issue 44 (defaulting), Issue 43 (rebuild no yaml), Tests
128+
129+
02/13/2024 - 10.02.04: kafka_producer.send_kafka_message, sample md fixes, docker ENV, pg authdb
130+
131+
02/07/2024 - 10.02.00: BugFix[38]: foreign-key/getter collision
132+
133+
01/31/2024 - 10.01.28: LogicBank fix, sample-ai, better rules example
134+
135+
01/15/2024 - 10.01.18: Cleanup, logic reminder, nw tutorial fixes
136+
137+
01/08/2024 - 10.01.07: Default Interpreter for VS Code, Allocation fix, F5 note fix, #als signposts
138+
139+
01/03/2024 - 10.01.00: Quoted col names, Default Interpreter for VS Code
140+
141+
12/21/2023 - 10.00.01: Fix < Python 3.11
142+
143+
12/19/2023 - 10.00.00: Kafka pub/sub, Data Type Fixes
144+
145+
12/06/2023 - 09.06.00: Oracle Thick Client, Safrs 3.1.1, Integration Sample, No rule sql logging, curl Post
146+
147+
11/19/2023 - 09.05.14: ApiLogicServer curl, optional project_name arg on add-auth, add-db, rebuild
148+
149+
11/12/2023 - 09.05.08: multi-db bug fix (24)
150+
151+
11/07/2023 - 09.05.07: Basic-demo: simplify customization process
152+
153+
11/05/2023 - 09.05.06: Basic-demo enhancements, bug fixes (22, 23)
154+
155+
10/31/2023 - 09.05.00: Enhanced Security (global filter, permissions), Logic (Insert Parent)
156+
157+
09/29/2023 - 09.04.00: Enhanced devops automation (sqlite, MySql, Postgres)
158+
159+
09/08/2023 - 09.03.04: AI Driven Automation (preview)
160+
161+
09/08/2023 - 09.03.00: Oracle support
162+
163+
09/08/2023 - 09.02.23: Fix Issue 16 - Incorrect admin.yml when table name <> class name
164+
165+
08/22/2023 - 09.02.18: Devops container/compose, Multi-arch dockers, add-auth with db_url, auth docker dbs
166+
167+
07/04/2023 - 09.01.00: SQLAlchemy 2 typed-relns/attrs, Docker: Python 3.11.4 & odbc18
168+
169+
06/22/2023 - 09.00.00: Optimistic Locking, safrs 310 / SQLAlchemy 2.0.15
170+
171+
05/07/2023 - 08.04.00: safrs 3.0.4, tutorial demo notes, rm cli/docs, move pythonanywhere
172+
173+
05/01/2023 - 08.03.06: allocation sample
174+
175+
04/29/2023 - 08.03.03: restore missing debug info for open database failures
176+
177+
04/26/2023 - 08.03.00: virt attrs (Issue 56), safrs 3.0.2, LogicBank 1.8.4, project readme updates
178+
179+
04/13/2023 - 08.02.00: integratedConsole, logic logging (66), table relns fix (65)
180+
181+
03/23/2023 - 08.01.15: table filters, cloud debug additions, issue 59, 62-4
182+
183+
02/15/2023 - 08.00.01: Declarative Authorization and Authentication
184+
185+
01/05/2023 - 07.00.00: Multi-db, sqlite test dbs, tests run, security prototype, env config
186+
187+
11/22/2022 - 06.03.06: Image, Chkbox, Dialects, run.sh, SQL/Server url change, stop endpoint, Chinook Sqlite
188+
189+
10/02/2022 - 06.02.00: Option infer_primary_key, Oct1 SRA (issue 49), cleanup db/api setup, restore postgres dvr
190+
191+
09/15/2022 - 06.01.00: Multi-app Projects
192+
193+
08/28/2022 - 06.00.01: Admin App show_when, cascade add. Simplify Codespaces swagger url & use default config
194+
195+
06/12/2022 - 05.02.22: No pyodbc by default, model customizations simplified, better logging
196+
197+
05/04/2022 - 05.02.03: alembic for database migrations, admin-merge.yaml
198+
199+
04/27/2022 - 05.01.02: copy_children, with support for nesting (children and grandchildren, etc.)
200+
201+
03/27/2022 - 05.00.06: Introducing [Behave test framework](https://apilogicserver.github.io/Docs/Logic-Tutorial/), LogicBank bugfix
202+
203+
12/26/2021 - 04.00.05: Introducing the Admin app, with Readme Tutorial
204+
205+
</details>
206+
207+
<details markdown>
208+
209+
<summary> Preview Version </summary>
210+
211+
&nbsp;
212+
213+
This pre-release includes:
214+
215+
* [logic and service discovery](IDE-Customize.md#discoverability-logic-services){:target="_blank" rel="noopener"}.
216+
217+
* tecnology preview of [Ontimize rich web app](App-Custom.md){:target="_blank" rel="noopener"}.
218+
219+
You can try it at (you may need to use `python3`):
220+
221+
```bash
222+
python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple ApiLogicServer==10.04.11
223+
```
224+
225+
Or use (neither available currently):
226+
227+
```bash
228+
docker run -it --name api_logic_server --rm -p 5656:5656 -p 5002:5002 -v ~/dev/servers:/localhost apilogicserver/api_logic_server_x
229+
```
230+
231+
Or, you can use [the beta version on codespaces](https://github.com/ApiLogicServer/beta){:target="_blank" rel="noopener"}.
232+
233+
</details>
234+
235+
---
236+
237+
&nbsp;
238+
239+
# Works With
240+
241+
<details markdown>
242+
243+
<summary>API Logic Server works with key elements of your existing infrastructure</summary>
244+
245+
| Works With | Notes |
246+
:-------|:-----------|
247+
| [AI](Tutorial-AI.md){:target="_blank" rel="noopener"} | Use Copilot to create databases, and use API Logic Server to turn these into projects |
248+
| [Other Systems](Sample-Integration.md){:target="_blank" rel="noopener"} | APIs and Messages - with logic |
249+
| [Databases](Database-Connectivity.md){:target="_blank" rel="noopener"} | Tested with MySQL, Sql/Server, Postgres, SQLite and Oracle |
250+
| Client Frameworks | Creates instant APIs that factors out business logic, where it is automatically shared for User Interfaces, APIs, and Messages |
251+
| [Your IDE](IDE-Customize.md){:target="_blank" rel="noopener"} | Creates standard projects you can customize in your IDE, such as VSCode and PyCharm |
252+
| [Messaging](Sample-Integration.md){:target="_blank" rel="noopener"} | Produce and Consume Kafka Messages
253+
| [Deployment](Tutorial-Deployment.md){:target="_blank" rel="noopener"} | Scripts to create container images, and deploy them to the cloud |
254+
| [Agile and Test Methodologies](Logic-Tutorial.md){:target="_blank" rel="noopener"} | Use Behave to capture requirements, rapidly implement them with API Logic Server, collaborate with Business Users, and test with the Behave framework |
255+
256+
</details>
257+
258+
---
259+
260+
&nbsp;
261+
262+
# Contact Us
263+
264+
We'd love to hear from you:
265+
266+
1. Email: apilogicserver@gmail.com
267+
2. Issues: [github](https://github.com/ApiLogicServer/ApiLogicServer-src/issues){:target="_blank" rel="noopener"}
268+
3. Slack: contact us on apilogicserver.slack.com
269+
270+
---
271+
272+
&nbsp;
273+
274+
# More Information
275+
276+
For docs, [click here](Doc-Home.md){:target="_blank" rel="noopener"}.
277+
278+
<details markdown>
279+
280+
<summary>Acknowledgements</summary>
281+
282+
Many thanks to
283+
284+
- [Thomas Pollet](https://www.linkedin.com/in/pollet/), for SAFRS, SAFRS-react-admin, and invaluable design partnership
285+
- Tyler Band, for leadership on security
286+
- [dbvis](https://www.dbvis.com), for a complimentary license in support of this open source project
287+
- [Marelab](https://marmelab.com/en/), for [react-admin](https://marmelab.com/react-admin/)
288+
- Armin Ronacher, for Flask
289+
- Mike Bayer, for SQLAlchemy
290+
- Alex Grönholm, for Sqlacodegen
291+
- Thomas Peters, for review and testing
292+
- [Meera Datey](https://www.linkedin.com/in/meeradatey/), for React Admin prototyping
293+
- Denny McKinney, for Tutorial review
294+
- Achim Götz, for design collaboration and testing
295+
- Max Tardiveau, for testing and help with Docker
296+
- Michael Holleran, for design collaboration and testing
297+
- Nishanth Shyamsundar, for review and testing
298+
- Gloria Huber and Denny McKinney, for doc revie
299+
300+
301+
</details>
302+
303+
<details markdown>
304+
305+
<summary>Articles</summary>
306+
307+
There are several articles that provide some orientation to API Logic Server:
308+
309+
* [Instant APIs With Copilot and API Logic Server](https://dzone.com/articles/instant-apis-with-copilot-and-api-logic-server)
310+
* [Instant App Backends With API and Logic Automation](https://dzone.com/articles/instant-app-backends-with-api-and-logic-automation)
311+
* [Instant Integrations With API and Logic Automation](https://dzone.com/articles/instant-integrations-with-api-automation)
312+
* [AI and Rules for Agile Microservices in Minutes](https://dzone.com/articles/ai-and-rules-for-agile-microserves)
313+
314+
Also:
315+
316+
* [How Automation Activates Agile](https://modeling-languages.com/logic-model-automation/)
317+
* [How Automation Activates Agile](https://dzone.com/articles/automation-activates-agile) - providing working software rapidly drives agile collaboration to define systems that meet actual needs, reducing requirements risk
318+
* [How to create application systems in moments](https://dzone.com/articles/create-customizable-database-app-systems-with-1-command)
319+
* [Stop coding database backends…Declare them with one command.](https://medium.com/@valjhuber/stop-coding-database-backends-declare-them-with-one-command-938cbd877f6d)
320+
* [Instant Database Backends](https://dzone.com/articles/instant-api-backends)
321+
* [Extensible Rules](https://dzone.com/articles/logic-bank-now-extensible-drive-95-automation-even) - defining new rule types, using Python
322+
* [Declarative](https://dzone.com/articles/agile-design-automation-how-are-rules-different-fr) - exploring _multi-statement_ declarative technology
323+
* [Automate Business Logic With Logic Bank](https://dzone.com/articles/automate-business-logic-with-logic-bank) - general introduction, discussions of extensibility, manageability and scalability
324+
* [Agile Design Automation With Logic Bank](https://dzone.com/articles/logical-data-indendence) - focuses on automation, design flexibility and agile iterations
325+
* [Instant Web Apps](https://dzone.com/articles/instant-db-web-apps)
326+
</details>
45327

46328
&nbsp;
47329

@@ -90,3 +372,4 @@ Observe that logic plugs into SQLAlchemy. **Logic is thus automatically shared*
90372
In most cases, the API Logic Server executes in a **container**, so scales horizontally like any other Flask-based server.
91373

92374
![API Logic Server Intro](images/Architecture.png)
375+

0 commit comments

Comments
 (0)