NoSQL Schema Inspector is an open-source web-based framework designed for the automatic discovery, visualization, security auditing, and continuous monitoring of document-oriented NoSQL databases.
The system provides a unified environment for analyzing semi-structured data stored in databases such as MongoDB, CouchDB, and Firebase Firestore. It automatically infers hidden schemas, generates interactive structural visualizations, performs rule-based security auditing, evaluates data quality via semantic profiling, and exports analysis reports in multiple formats.
Furthermore, the platform tracks database evolution by monitoring modifications in real-time and comparing snapshots to detect schema drift. It is implemented in Python using Streamlit, integrating interactive visualization libraries and AI-assisted analysis capabilities.
The framework recursively analyzes document collections to identify:
- Field names
- Data types
- Nested document structures
- Array contents
- Field occurrence frequency
- Structural variability across documents
Discovered schemas are rendered as hierarchical treemaps using Plotly, enabling intuitive exploration of complex document structures through interactive visual analytics.
The integrated auditing engine evaluates sampled data against ten predefined security rules, including:
- Plaintext credential exposure
- Personally identifiable information (PII) leakage
- NoSQL injection patterns
- Weak or deprecated hash usage
- Financial information exposure
- Missing audit metadata
- Insecure configuration patterns
The audit module generates:
- Vulnerability findings
- Severity classification
- Rule-based explanations
- A global security score ranging from 0 to 100
Values identified as sensitive are automatically masked before visualization or export in order to reduce accidental exposure during analysis.
Analysis results can be exported in multiple formats:
- JSON
- CSV
The generated reports summarize inferred schemas, detected vulnerabilities, and security evaluation results.
Allows saving schema snapshots and comparing them over time to detect changes (added fields, removed fields, modified types).
Evaluates the overall quality and completeness of the data, generating global wellness grades (from A to F).
Listens to database modifications live (Change Streams for MongoDB, Real-time listeners for Firestore) and updates the interface automatically.
The framework integrates a conversational assistant powered by Groq and LLaMA 3 models to assist users in:
- Understanding audit findings
- Interpreting schema structures
- Identifying remediation strategies
- Explaining detected vulnerabilities
The framework currently supports:
- MongoDB
- CouchDB
- Firebase Firestore
Its modular architecture allows the integration of additional NoSQL systems through the BaseConnector abstraction layer.
- Python 3.11 or later
- pip or Conda package manager
- Windows, Linux, or macOS
- Access to a running NoSQL database instance
- Groq API key (optional, required only for the AI assistant)
git clone https://github.com/hibasb/NoSQL_Schema_inspector.git
cd NoSQL_Schema_inspectorpython -m venv venv
source venv/bin/activatepython -m venv venv
venv\Scripts\activatepip install -r requirements.txtMain dependencies include:
- streamlit
- pymongo
- firebase-admin
- requests
- pandas
- plotly
- reportlab
- groq
- python-dotenv
Create a .env file from the provided template:
cp .env.example .envAdd the Groq API key:
GROQ_API_KEY=your_api_key_hereLaunch the Streamlit application:
streamlit run app.pyThe application will be available at:
http://localhost:8501
- Select the target database system from the sidebar.
- Provide the connection URI or authentication credentials.
- Connect to the database instance.
- Run schema analysis to discover structures.
- Evaluate data quality and completeness via the Semantic Profiler.
- Explore the inferred schema and interactive visualizations.
- Execute the security audit module.
- Monitor database modifications live with the Real-Time Change Monitor.
- Save schema snapshots and compare them over time to detect Schema Drift.
- Export analysis reports in the desired format.
NoSQL_Schema_inspector/
│
├── app.py
│ Main Streamlit application and orchestration layer
│
├── connectors/
│ Database connector implementations
│
├── schema_inferrer.py
│ Recursive schema inference engine
│
├── security_auditor.py
│ Rule-based security auditing engine
│
├── semantic_profiler.py
│ Data quality and completeness evaluation
│
├── realtime_monitor.py
│ Live database modifications listener
│
├── drift_detector.py
│ Schema snapshots and drift comparison
│
├── visualizer.py
│ Interactive visualization generation
│
├── exporter.py
│ JSON, CSV, and PDF report generation
│
├── chatbot.py
│ Groq/LLaMA 3 conversational assistant
│
├── requirements.txt
│ Project dependencies
│
├── .env.example
│ Environment variable template
│
└── README.md
This project is licensed under the MIT License. See the LICENSE file for details.
If you use this framework in academic research, please cite:
@article{hanine2026nosql,
title = {NoSQL Schema Inspector: An Automated Tool for Discovering, Visualizing, and Auditing Document Database Structures},
author = {Hanine Mohamed, Chokri Zahra, Sebban Hiba and Razzouk Majda},
journal = {SoftwareX},
year = {2026}
}Archive: https://doi.org/10.5281/zenodo.20683271
- Majda Razzouk - @MajdaRAZZOUK
- Zahra Chokri - @ZahraCHOKRI
- Hiba Sebban - @HibaSEBBAN
National School of Applied Sciences (ENSA) Chouaib Doukkali University El Jadida, Morocco
For questions, feedback, or collaboration inquiries:



