pinnacle-startup-erp
v1.0.0
Published
Authentication and permission system based on AutoWorld ERP
Downloads
6
Maintainers
Readme
Pinnacle Startup ERP
A complete authentication and permission management system based on AutoWorld ERP. This package provides a ready-to-use authentication system with role-based access control.
Features
- User authentication (register, login, get current user)
- Role-based access control (admin and employee roles)
- Permission-based authorization
- JWT-based authentication
- Automatic admin user creation
- TypeScript support
- Express middleware for authentication and authorization
- Pre-defined permission constants for common operations
Installation
npm install pinnacle-startup-erpQuick Start
import express from 'express';
import mongoose from 'mongoose';
import { initialize, auth, requirePermission, PERMISSIONS } from 'pinnacle-startup-erp';
const app = express();
app.use(express.json());
// Connect to MongoDB
mongoose.connect('your-mongodb-uri');
// Initialize the package
await initialize({
app,
mongoose,
jwtSecret: 'your-jwt-secret', // Optional
baseApiPath: '/api' // Optional, defaults to /api
});
// Protected route example
app.get('/api/protected',
auth, // Authentication middleware
requirePermission(PERMISSIONS.USER.READ), // Permission check middleware
async (req, res) => {
res.json({ message: 'Protected route' });
}
);
app.listen(3000);Default Setup
The package automatically creates:
Default admin user (if none exists):
- Email: [email protected]
- Password: admin123
- Role: admin
- Full permissions
Pre-defined permissions for:
- Cars
- Purchased Cars
- Transactions
- Invoices
- Notifications
- Users
- Permissions Management
API Routes
The package automatically sets up the following routes:
Authentication Routes
- POST /api/auth/register - Register a new user
- POST /api/auth/login - Login user
- GET /api/auth/me - Get current user (protected)
Available Exports
import {
User, // User model
auth, // Authentication middleware
requirePermission, // Permission middleware
PERMISSIONS, // Permission constants
ROLE_PERMISSIONS, // Role-based permissions
hasPermission, // Permission check helper
hasAnyPermission, // Check for any permission
hasAllPermissions, // Check for all permissions
isAdmin, // Admin role check
canManagePermissions // Permission management check
} from 'pinnacle-startup-erp';License
MIT
