Add model-redis package references to documentation
- Added ORM reference in architecture.md (Redis section) - Added Data Models section in contributing.md with example - Updated README.md to mention model-redis in Architecture - Linked to https://www.npmjs.com/package/model-redis for more info 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -147,7 +147,7 @@ The system consists of three main components:
|
|||||||
- Host lookup tree with wildcard matching
|
- Host lookup tree with wildcard matching
|
||||||
- User authentication and authorization
|
- User authentication and authorization
|
||||||
|
|
||||||
3. **Redis** - Data store
|
3. **Redis** - Data store (using [model-redis](https://www.npmjs.com/package/model-redis) ORM)
|
||||||
- Host configurations
|
- Host configurations
|
||||||
- User accounts and tokens
|
- User accounts and tokens
|
||||||
- SSL certificate storage
|
- SSL certificate storage
|
||||||
|
|||||||
@@ -105,6 +105,8 @@ nodejs/
|
|||||||
|
|
||||||
### Redis (Data Store)
|
### Redis (Data Store)
|
||||||
|
|
||||||
|
**ORM:** [model-redis](https://www.npmjs.com/package/model-redis) - A lightweight Redis ORM for Node.js with schema validation, relationships, and automatic key management.
|
||||||
|
|
||||||
**Stored Data:**
|
**Stored Data:**
|
||||||
- Host configurations (domain, IP, port, SSL settings)
|
- Host configurations (domain, IP, port, SSL settings)
|
||||||
- User accounts and hashed passwords
|
- User accounts and hashed passwords
|
||||||
|
|||||||
@@ -248,6 +248,28 @@ When you open a PR:
|
|||||||
4. Review from maintainers
|
4. Review from maintainers
|
||||||
5. Merge to master
|
5. Merge to master
|
||||||
|
|
||||||
|
## Data Models
|
||||||
|
|
||||||
|
The project uses [model-redis](https://www.npmjs.com/package/model-redis) as the ORM for Redis data storage. All models extend the `Table` class and use a declarative schema via `_keyMap`.
|
||||||
|
|
||||||
|
**Example Model:**
|
||||||
|
```javascript
|
||||||
|
const Table = require('../utils/redis_model');
|
||||||
|
|
||||||
|
class Host extends Table {
|
||||||
|
static _key = 'host'; // Primary key field
|
||||||
|
static _keyMap = {
|
||||||
|
'host': {isRequired: true, type: 'string', min: 3, max: 500},
|
||||||
|
'ip': {isRequired: true, type: 'string', min: 3, max: 500},
|
||||||
|
'targetPort': {isRequired: true, type: 'number', min: 0, max: 65535},
|
||||||
|
'forcessl': {default: true, type: 'boolean'},
|
||||||
|
'created_on': {default: () => Date.now(), type: 'number'}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Learn more:** [model-redis documentation](https://www.npmjs.com/package/model-redis)
|
||||||
|
|
||||||
## Adding Features
|
## Adding Features
|
||||||
|
|
||||||
### Adding a DNS Provider
|
### Adding a DNS Provider
|
||||||
|
|||||||
Reference in New Issue
Block a user