gitdb-database
v2.2.1
Published
A production-ready CLI tool for managing a NoSQL database using GitHub repositories as storage
Maintainers
Readme
🗂️ GitDB: Essential Guide & SDK Reference
Production-ready NoSQL database that stores data in Git repositories with advanced features like GraphQL, AI-powered queries, version control, and performance optimizations.
🚀 Quick Links
| SDK / Language | Docs / Repo | Package Registry | |------------------|-----------------------------------------------------------------------------|---------------------------------------------------| | JavaScript/TS| gitdb-client (npm) | Docs | | Go | gitdb-go-client (GitHub)| GoDoc | | PHP | gitdb-php-client (GitHub) | Packagist | | Rust | gitdb-client (crates.io) | Docs | | Python | gitdb-client (PyPI) | Docs | | Ruby | gitdb-client (RubyGems) | Docs |
📝 GitDB CLI Command Table
| Command | Usage & Options | Description |
|---------|-----------------|-------------|
| Connect | gitdb connect -t <token> -o <owner> -r <repo> | Connect CLI to a GitHub repo as your database |
| List Collections | gitdb collections | List all collections (tables) |
| Create Collection | gitdb create-collection <name> | Create a new collection |
| Delete Collection | gitdb delete-collection <name> | Delete a collection and all its documents |
| List Documents | gitdb documents <collection> | List all documents in a collection |
| Create Document | gitdb create-doc <collection> <json-data> | Add a new document to a collection |
| Read Document | gitdb read-doc <collection> <id> | Read a document by its ID |
| Update Document | gitdb update-doc <collection> <id> <json-data> | Update a document by its ID |
| Delete Document | gitdb delete-doc <collection> <id> | Delete a document by its ID |
| Find Documents | gitdb find <collection> <query> | Find documents matching a MongoDB-style query |
| Find One Document | gitdb findone <collection> <query> | Find a single document matching the query |
| Version History | gitdb version history <collection> | Show Git commit history for a collection |
| Rollback Version | gitdb version rollback <collection> --commit <hash> | Roll back a collection to a previous commit |
| Start Server | gitdb server | Start the GitDB server (REST/GraphQL API) |
| Start Server (bg) | gitdb server-start | Start the server in the background |
| Stop Server | gitdb server-stop | Stop the server |
| Server Status | gitdb server-status | Check the server status |
| Enable SuperMode | gitdb supermode enable --cache-size <n> | Enable performance optimizations |
| Show GraphQL Schema | gitdb graphql schema | Show the current GraphQL schema |
| Interactive Shell | gitdb shell | Start an interactive shell for running commands |
| Shell: Set Token | set token <token> | Set GitHub token (in shell) |
| Shell: Set Owner | set owner <owner> | Set repository owner (in shell) |
| Shell: Set Repo | set repo <repo> | Set repository name (in shell) |
| Shell: Use Collection | use <collection> | Switch to a collection (in shell) |
| Shell: Show Collections | show collections | List all collections (in shell) |
| Shell: Show Docs | show docs | List documents in current collection (in shell) |
| Shell: Insert | insert <JSON> | Insert a document (in shell) |
| Shell: Find by ID | find <id> | Find document by ID (in shell) |
| Shell: Find by Query | findone <json-query> | Find document by query (in shell) |
| Shell: Count | count [json-query] | Count documents (optionally by query, in shell) |
| Shell: Update | update <id> <JSON> | Update document by ID (in shell) |
| Shell: Delete | delete <id> | Delete document by ID (in shell) |
| Shell: Help | help | Show help (in shell) |
| Shell: Exit | exit | Exit the shell |
🏁 Getting Started
- Create a GitHub repo for your data.
- Generate a GitHub token with
repopermissions. - Install the CLI:
npm install -g gitdb-database- Connect:
gitdb connect -t <token> -o <owner> -r <repo>🗂️ GitDB Command Reference & Workflow Guide
1. GitDB CLI: Core Commands
Database Connection & Setup
gitdb connect -t <token> -o <owner> -r <repo>- Connects your CLI to a GitHub repository as your database.
- Example:
gitdb connect -t ghp_abc123 -o myuser -r mydb-repo
Collection Management
gitdb collections— List all collectionsgitdb create-collection <name>— Create a new collectiongitdb delete-collection <name>— Delete a collection
Document Operations
gitdb documents <collection>— List all documents in a collectiongitdb create-doc <collection> <json-data>— Add a new documentgitdb read-doc <collection> <id>— Read a document by IDgitdb update-doc <collection> <id> <json-data>— Update a documentgitdb delete-doc <collection> <id>— Delete a document by ID
Querying
gitdb find <collection> <query>— Find documents matching a MongoDB-style querygitdb findone <collection> <query>— Find a single document matching the query
Version Control & History
gitdb version history <collection>— Show Git commit history for a collectiongitdb version rollback <collection> --commit <hash>— Roll back a collection to a previous commit
Server Management
gitdb server— Start the GitDB server (REST/GraphQL API)gitdb server-start/gitdb server-stop/gitdb server-status— Manage the server process
Advanced Features
gitdb supermode enable --cache-size <n>— Enable performance optimizationsgitdb graphql schema— Show the current GraphQL schemagitdb shell— Start an interactive shell for running commands
2. Typical GitDB Workflow
A. Initial Setup
- Create a GitHub repo for your data.
- Generate a GitHub token with
repopermissions. - Connect using the CLI:
gitdb connect -t <token> -o <owner> -r <repo>B. Creating Collections & Documents
- Create collections for your data types:
gitdb create-collection users
gitdb create-collection products- Insert documents:
gitdb create-doc users '{"name":"Alice","email":"[email protected]"}'
gitdb create-doc products '{"name":"Laptop","price":999.99}'C. Querying & Updating Data
- Find users over 25:
gitdb find users '{"age":{"$gt":25}}'- Update a user:
gitdb update-doc users <id> '{"email":"[email protected]"}' - Delete a product:
gitdb delete-doc products <id>D. Version Control
- View history:
gitdb version history users - Rollback:
gitdb version rollback users --commit <hash>E. Server/API Usage
- Start the server:
gitdb server- Access REST API:
http://localhost:7896/api/v1/collections/users - Access GraphQL API:
http://localhost:7896/graphql
3. Interactive Shell Commands
Inside gitdb shell, you can use:
set token <token>set owner <owner>set repo <repo>use <collection>create-collection <name>show collectionsshow docsinsert <JSON>find <id>findone <json-query>count [json-query]update <id> <JSON>delete <id>helpexit
4. SDK Usage Example (JavaScript/TypeScript)
import { GitDBClient } from 'gitdb-client';
const client = new GitDBClient({
owner: 'your-github-username',
repo: 'your-repo',
token: 'your-github-token',
});
// Insert a document
await client.insert('users', { name: 'Alice', email: '[email protected]' });
// Query documents
const users = await client.findOne('users', { name: 'Alice' });
// Update a document
await client.update('users', users[0].id, { age: 31 });
// Delete a document
await client.delete('users', users[0].id);5. Where to Find More
- Full Book & Advanced Docs: GITDB-Guide.md (Full Book)
- SDK Docs: See links in the table above for each language
- API Reference: GITDB-COMPLETE-BOOK.md and server endpoints
If you want a deep-dive into any specific command, workflow, or integration, just ask!
