🗂️ 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 collections -
gitdb create-collection <name>— Create a new collection -
gitdb delete-collection <name>— Delete a collection
Document Operations
-
gitdb documents <collection>— List all documents in a collection -
gitdb create-doc <collection> <json-data>— Add a new document -
gitdb read-doc <collection> <id>— Read a document by ID -
gitdb update-doc <collection> <id> <json-data>— Update a document -
gitdb delete-doc <collection> <id>— Delete a document by ID
Querying
-
gitdb find <collection> <query>— Find documents matching a MongoDB-style query -
gitdb findone <collection> <query>— Find a single document matching the query
Version Control & History
-
gitdb version history <collection>— Show Git commit history for a collection -
gitdb 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 optimizations -
gitdb graphql schema— Show the current GraphQL schema -
gitdb 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":"alice@example.com"}'
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":"new@email.com"}'
- 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: 'alice@example.com' });
// 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!