code, knowledge_object, compute_resource_groups, and project.
Each WOB is exposed to the user as a database view that enforces access control based on information stored in ACL tables. Modifications to a WOB are performed via stored procedures that execute in a privileged context, governed by the same ACL rules. This database interface is then wrapped in a corresponding Python object—such as Code_block, Knowledge_object, Model, or Project—which serves as the primary API for interacting with the object.
Edges
All WOBs are connected in graphs via an edge table (edges). Users interact with these connections through thev_edges view, and WOBs can be linked or unlinked using the MainlyAI functions miranda.link() and miranda.unlink().
| Color | Data types | Flow direction | Use case |
|---|---|---|---|
| Red | String, number | Forward | Used for prompts, settings, text, code |
| Green | JSON or dicts | Forward | Program state, objects that change forward |
| Blue | Dataset, DataFrame | Forward | Relational data that change forward |
| Purple | API, ML models | Backwards | The leaf nodes of a purple branch is a subprogram that has its own state and it can receive and propagate information. Note that all objects are passed by reference which is important in concurrent execution. |