sigMAX Core - Open Source Code used to simply deploy a full architecture generator
| .sigmaxgen | ||
| agreements | ||
| blueprints | ||
| composant_metier | ||
| contracts | ||
| docs | ||
| generated | ||
| postgres/init | ||
| runtime | ||
| scripts | ||
| skeletons | ||
| storage-service | ||
| tools | ||
| .gitignore | ||
| application.contract.yaml | ||
| contraintes.prompt | ||
| docker-compose.yaml | ||
| llm.models.yaml | ||
| Makefile | ||
| README.md | ||
| Version | ||
sigMAX Application Milestone
This repository currently validates the declarative storage milestone:
- The Rust runtime is a generic adapter for SIGMAX primitives, bindings, capabilities, type conversion, and service invocation.
- The Rust storage-service is a generic interpreter of
generated/storage.yaml. - PostgreSQL queries live in generated storage declarations and SQL migration/init files, not in Rust runtime code.
- WASM business handlers call capabilities such as
storage.invoice.get; they do not know PostgreSQL exists. - Storage-level not found is represented as
found: 0with HTTP 200. - The WASM handler maps
found: 0to the public HTTP 404 response.
Validated GET/create flow:
HTTP API
-> sigmax-runtime
-> WASM handler
-> primitive_call_typed(...)
-> Dapr service invocation
-> sigmax-storage
-> generated/storage.yaml
-> PostgreSQL
-> JSON response
-> runtime c_repr conversion
-> WASM HTTP response
Persistent create flow:
POST /invoices
-> WASM create_invoice
-> primitive_call_typed("storage.invoice.create")
-> Dapr
-> sigmax-storage
-> generated/storage.yaml insert_one operation
-> PostgreSQL INSERT ... RETURNING
-> GET can retrieve the created invoice
Current schema note:
invoice_idis a PostgreSQL-generated integer identity.- Existing development volumes created with the old
TEXT invoice_idschema must be reset before running the current milestone. - Reset example:
docker compose down --remove-orphans
podman volume rm application_postgres_data
docker compose up -d --build --force-recreate
Do not hardcode create SQL or invoice behavior in Rust. The storage engine supports generic select_one and insert_one; business SQL stays in generated storage artifacts.