@qodalis/cli-server-plugin-admin 1.0.0-beta.1 → 1.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +105 -0
- package/dashboard/assets/index-CKzcPzP-.js +199 -0
- package/dashboard/assets/index-LZx7c-rD.css +32 -0
- package/dashboard/index.html +13 -0
- package/dist/auth/auth-controller.d.ts +3 -0
- package/dist/auth/auth-controller.d.ts.map +1 -1
- package/dist/auth/auth-controller.js.map +1 -1
- package/dist/auth/jwt-service.d.ts +12 -2
- package/dist/auth/jwt-service.d.ts.map +1 -1
- package/dist/auth/jwt-service.js +11 -2
- package/dist/auth/jwt-service.js.map +1 -1
- package/dist/cli-admin-builder.d.ts +13 -2
- package/dist/cli-admin-builder.d.ts.map +1 -1
- package/dist/cli-admin-builder.js +7 -3
- package/dist/cli-admin-builder.js.map +1 -1
- package/dist/controllers/plugins-controller.d.ts.map +1 -1
- package/dist/controllers/plugins-controller.js +1 -2
- package/dist/controllers/plugins-controller.js.map +1 -1
- package/dist/controllers/status-controller.d.ts +1 -0
- package/dist/controllers/status-controller.d.ts.map +1 -1
- package/dist/controllers/status-controller.js.map +1 -1
- package/dist/controllers/ws-clients-controller.d.ts +1 -0
- package/dist/controllers/ws-clients-controller.d.ts.map +1 -1
- package/dist/controllers/ws-clients-controller.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/services/admin-config.d.ts +13 -3
- package/dist/services/admin-config.d.ts.map +1 -1
- package/dist/services/admin-config.js +11 -0
- package/dist/services/admin-config.js.map +1 -1
- package/dist/services/log-ring-buffer.d.ts +4 -0
- package/dist/services/log-ring-buffer.d.ts.map +1 -1
- package/dist/services/log-ring-buffer.js +1 -0
- package/dist/services/log-ring-buffer.js.map +1 -1
- package/dist/services/module-registry.d.ts +12 -7
- package/dist/services/module-registry.d.ts.map +1 -1
- package/dist/services/module-registry.js +22 -10
- package/dist/services/module-registry.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
package/README.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# @qodalis/cli-server-plugin-admin
|
|
2
|
+
|
|
3
|
+
Admin dashboard plugin for [Qodalis CLI Server (Node.js)](https://github.com/qodalis-solutions/cli-server-node). Provides JWT authentication, server status, plugin management, configuration, log viewing, and WebSocket client monitoring via a REST API and bundled SPA dashboard.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @qodalis/cli-server-plugin-admin
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { createCliServer } from '@qodalis/cli-server-node';
|
|
15
|
+
import { CliAdminBuilder } from '@qodalis/cli-server-plugin-admin';
|
|
16
|
+
|
|
17
|
+
const { app, registry, builder, eventSocketManager } = createCliServer({
|
|
18
|
+
configure: (builder) => {
|
|
19
|
+
// register your modules...
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const adminPlugin = new CliAdminBuilder()
|
|
24
|
+
.setCredentials('admin', 'my-secret-password')
|
|
25
|
+
.setJwtSecret('my-jwt-secret')
|
|
26
|
+
.build({ registry, eventSocketManager, builder });
|
|
27
|
+
|
|
28
|
+
// Using createCliServer:
|
|
29
|
+
mountPlugin(adminPlugin);
|
|
30
|
+
|
|
31
|
+
// Or on an existing Express app:
|
|
32
|
+
app.use(adminPlugin.prefix, adminPlugin.router);
|
|
33
|
+
app.use(adminPlugin.dashboardPrefix, adminPlugin.dashboardRouter);
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Configuration
|
|
37
|
+
|
|
38
|
+
Credentials and JWT secret can be set via the builder or environment variables:
|
|
39
|
+
|
|
40
|
+
| Environment Variable | Default | Description |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| `QCLI_ADMIN_USERNAME` | `admin` | Admin login username |
|
|
43
|
+
| `QCLI_ADMIN_PASSWORD` | `admin` | Admin login password |
|
|
44
|
+
| `QCLI_ADMIN_JWT_SECRET` | Random | JWT signing secret |
|
|
45
|
+
|
|
46
|
+
## Builder Options
|
|
47
|
+
|
|
48
|
+
| Method | Description |
|
|
49
|
+
|---|---|
|
|
50
|
+
| `setCredentials(username, password)` | Set admin login credentials |
|
|
51
|
+
| `setJwtSecret(secret)` | Set JWT signing secret |
|
|
52
|
+
| `setRegisteredJobs(count)` | Report job count in the status endpoint |
|
|
53
|
+
| `setEnabledFeatures(features)` | Add custom feature flags to the status endpoint |
|
|
54
|
+
| `setDashboardDir(dir)` | Override the path to the dashboard SPA dist directory |
|
|
55
|
+
|
|
56
|
+
## REST API
|
|
57
|
+
|
|
58
|
+
All endpoints are mounted at the plugin's built-in prefix (`/api/v1/qcli`). Routes below `/auth/login` require a valid JWT in the `Authorization: Bearer <token>` header.
|
|
59
|
+
|
|
60
|
+
### Authentication
|
|
61
|
+
|
|
62
|
+
| Method | Endpoint | Description |
|
|
63
|
+
|---|---|---|
|
|
64
|
+
| POST | `/auth/login` | Authenticate with username/password, receive JWT |
|
|
65
|
+
| GET | `/auth/me` | Get current user info from token |
|
|
66
|
+
|
|
67
|
+
### Status
|
|
68
|
+
|
|
69
|
+
| Method | Endpoint | Description |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| GET | `/status` | Server uptime, memory, platform, connections, registered commands, enabled features |
|
|
72
|
+
|
|
73
|
+
### Plugins
|
|
74
|
+
|
|
75
|
+
| Method | Endpoint | Description |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| GET | `/plugins` | List all registered modules |
|
|
78
|
+
| POST | `/plugins/:id/toggle` | Enable or disable a module |
|
|
79
|
+
|
|
80
|
+
### Configuration
|
|
81
|
+
|
|
82
|
+
| Method | Endpoint | Description |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| GET | `/config` | Return structured config sections (server, auth, custom) |
|
|
85
|
+
| PUT | `/config` | Update mutable (custom) settings |
|
|
86
|
+
|
|
87
|
+
### Logs
|
|
88
|
+
|
|
89
|
+
| Method | Endpoint | Description |
|
|
90
|
+
|---|---|---|
|
|
91
|
+
| GET | `/logs` | Query log entries with optional `level`, `search`, `limit`, `offset` params |
|
|
92
|
+
|
|
93
|
+
### WebSocket Clients
|
|
94
|
+
|
|
95
|
+
| Method | Endpoint | Description |
|
|
96
|
+
|---|---|---|
|
|
97
|
+
| GET | `/ws/clients` | List connected WebSocket clients |
|
|
98
|
+
|
|
99
|
+
## Dashboard
|
|
100
|
+
|
|
101
|
+
The plugin includes a bundled SPA dashboard served at the built-in prefix (`/qcli/admin`). The dashboard auto-resolves from the package's `dashboard/` directory, or from the `@qodalis/cli-server-dashboard` package if installed separately.
|
|
102
|
+
|
|
103
|
+
## License
|
|
104
|
+
|
|
105
|
+
MIT
|