MagnexisDB
MagnexisDB is a production-oriented document database built for developer experience, realtime updates, and transparent observability created by Magnexis.
Proprietary status
This repository is proprietary Magnexis software.
- External contributions are not being accepted.
- This is not an open contribution project.
- All rights are reserved by Magnexis.
See LICENSE for the full terms.
What changed
This repo now has a Railway deployable split:
frontend: React + Vite admin console, deployable as a Railway frontend servicebackend: Railway-ready FastAPI service entrypointapi,core,models,realtime,utils: shared database engine and HTTP surfacecli: expanded operator CLI with local, remote, and release-oriented commands
Highlights
- JSON document storage with nested fields and dynamic schemas
- Query engine with equality, comparison, inclusion, sorting, and pagination
- Field indexes backed by SQLite persistence and WAL durability
- FastAPI HTTP API plus WebSocket live collection streams
- React operator console for collections, queries, tracing, and insights
- Typer CLI for local administration, remote calls, streaming, and release metadata
- Query Replay and Smart Query Insights built in
- Snapshot export, snapshot import, operation-log recovery replay, and collection introspection
- Mongo-like
find,findOne,insertOne,updateOne,replaceOne,deleteOne,countDocuments - Mongo-like
insertMany,updateMany,deleteMany, aggregation pipelines,$lookup,$facet,$bucket, and array filters - Built-in execution tracing, natural query language, zero-setup sync import/deploy, and REST-style collection endpoints
Monorepo layout
MagnexisDB/
|-- backend/ # Railway entrypoint and env config
|-- frontend/ # React operator console for Railway
|-- api/ # FastAPI routes and app factory
|-- cli/ # Typer CLI
|-- core/ # storage, query engine, indexes, orchestration
|-- models/ # request/response models
|-- realtime/ # subscription hub
|-- assets/ # shared Magnexis branding
|-- scripts/ # smoke and release helpers
`-- packaging/ # PyInstaller spec for CLI artifacts
Local quick start
python -m venv .venv
.venv\Scripts\activate
pip install -e .
magnexisdb serve --host 127.0.0.1 --port 8000
Frontend:
cd frontend
npm install
npm run dev
Set VITE_MAGNEXISDB_API_URL if your backend is not on http://127.0.0.1:8000.
Railway deployment
Deploy the repository as two Railway services: one for the FastAPI backend and one for the Vite frontend.
Backend service
Set the Railway root directory to the repository root. The root railway.json provides this start command:
python -m backend.main
Recommended backend environment:
MAGNEXISDB_DB_PATH=data/magnexis.db
MAGNEXISDB_ALLOWED_ORIGINS=https://your-railway-frontend.up.railway.app
MAGNEXISDB_LOG_LEVEL=info
MAGNEXISDB_VERSION=0.1.0
Health endpoint:
GET /health
Frontend service
Set the Railway root directory to:
frontend
The frontend service uses the start script in frontend/package.json:
Build command: npm run build
Start command: npm start
Set:
VITE_MAGNEXISDB_API_URL=https://your-railway-backend.up.railway.app
CLI surface
Local commands:
magnexisdb servemagnexisdb healthmagnexisdb doctormagnexisdb create-collection usersmagnexisdb list-indexes usersmagnexisdb describe usersmagnexisdb insert users "{\"name\":\"John\"}"magnexisdb query users --filter "{\"age\":{\"$gt\":18}}"magnexisdb explain .\query.jsonmagnexisdb trace .\query.jsonmagnexisdb profile-query .\query.jsonmagnexisdb watch users --filter "{\"status\":\"active\"}"magnexisdb shellmagnexisdb release-manifest
Remote commands:
magnexisdb remote health --url https://your-backendmagnexisdb remote collections --url https://your-backendmagnexisdb remote query .\query.json --url https://your-backendmagnexisdb remote explain .\query.json --url https://your-backendmagnexisdb remote trace .\query.json --url https://your-backendmagnexisdb remote insert users "{\"name\":\"John\"}" --url https://your-backend
Release artifacts
The repo now includes:
packaging/magnexisdb-cli.specfor PyInstallerscripts/build_release.pyfor local wheel + binary builds.github/workflows/release-cli.ymlfor cross-platform CLI release artifacts
Local build:
python -m pip install build pyinstaller
python scripts/build_release.py
Developer scripts
PowerShell helpers are in scripts/dev.ps1:
powershell -ExecutionPolicy Bypass -File .\scripts\dev.ps1 install
powershell -ExecutionPolicy Bypass -File .\scripts\dev.ps1 start
powershell -ExecutionPolicy Bypass -File .\scripts\dev.ps1 smoke
Validation
powershell -ExecutionPolicy Bypass -File .\scripts\dev.ps1 smokepython -m compileall api backend cli core models realtime utils scriptsnpm run buildfromfrontend
Mongo-like behavior
MagnexisDB supports a familiar subset of MongoDB-style operators:
- query:
$and,$or,$nor,$not,$eq,$ne,$gt,$gte,$lt,$lte,$in,$nin,$exists,$regex,$elemMatch - update:
$set,$unset,$inc,$push - bulk:
insertMany,updateMany,deleteMany - single-write parity:
replaceOne,deleteOne,countDocuments,upsert - array-filtered updates:
arrayFilters - aggregation stages:
$match,$sort,$sortByCount,$skip,$limit,$project,$group,$unwind,$addFields,$count,$lookup,$facet,$bucket - group accumulators:
$sum,$avg,$min,$max,$first,$last - expression helpers:
$concat,$add,$subtract,$setUnion
API docs are available at /docs.
License
Copyright Magnexis. All rights reserved.
No license is granted for public use, redistribution, modification, or contribution without prior written permission from Magnexis.
Metadata
Release files for magnexisdb 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| magnexisdb-0.1.1.tar.gz | 38.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| magnexisdb-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 81.4 kB
Release files / magnexisdb-0.1.1.tar.gz
| Download URL | magnexisdb-0.1.1.tar.gz |
|---|---|
| Size | 38.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
67ea84913af9dc225e51f36944433120ee9b7c39879cb03b2478a57bd2b0ad0b
|
|
BLAKE2b-256 checksum How to use checksums |
752f6923dd14f5d9fc008d524b171d455c4e38e49efaa0edbbaf6ace622e2de1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / magnexisdb-0.1.1-py3-none-any.whl
| Download URL | magnexisdb-0.1.1-py3-none-any.whl |
|---|---|
| Size | 43.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2070846d77c00a2aa0867e2afadad7df1259b6fd15dc430b35ea9bfff0a77482
|
|
BLAKE2b-256 checksum How to use checksums |
ad59fb4988a21f7c6f6a46e693b152b40742e90341d391e57a4cb7197b1cd937
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|