@minecraft-docker/mcctl-api 1.10.0 → 1.12.1
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/dist/app.d.ts.map +1 -1
- package/dist/app.js +2 -0
- package/dist/app.js.map +1 -1
- package/dist/routes/servers/actions.d.ts.map +1 -1
- package/dist/routes/servers/actions.js +30 -0
- package/dist/routes/servers/actions.js.map +1 -1
- package/dist/routes/servers/config.d.ts +10 -0
- package/dist/routes/servers/config.d.ts.map +1 -0
- package/dist/routes/servers/config.js +208 -0
- package/dist/routes/servers/config.js.map +1 -0
- package/dist/routes/servers.d.ts.map +1 -1
- package/dist/routes/servers.js +184 -42
- package/dist/routes/servers.js.map +1 -1
- package/dist/schemas/audit-log.d.ts +4 -4
- package/dist/schemas/audit-log.js +1 -1
- package/dist/schemas/audit-log.js.map +1 -1
- package/dist/schemas/config.d.ts +88 -0
- package/dist/schemas/config.d.ts.map +1 -0
- package/dist/schemas/config.js +78 -0
- package/dist/schemas/config.js.map +1 -0
- package/dist/services/ConfigService.d.ts +38 -0
- package/dist/services/ConfigService.d.ts.map +1 -0
- package/dist/services/ConfigService.js +247 -0
- package/dist/services/ConfigService.js.map +1 -0
- package/dist/services/audit-log-service.d.ts +5 -1
- package/dist/services/audit-log-service.d.ts.map +1 -1
- package/dist/services/audit-log-service.js +22 -1
- package/dist/services/audit-log-service.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
/**
|
|
4
|
+
* Mapping between API field names and config.env variable names
|
|
5
|
+
*/
|
|
6
|
+
const CONFIG_FIELD_MAP = {
|
|
7
|
+
motd: 'MOTD',
|
|
8
|
+
maxPlayers: 'MAX_PLAYERS',
|
|
9
|
+
difficulty: 'DIFFICULTY',
|
|
10
|
+
gameMode: 'GAMEMODE',
|
|
11
|
+
pvp: 'PVP',
|
|
12
|
+
viewDistance: 'VIEW_DISTANCE',
|
|
13
|
+
spawnProtection: 'SPAWN_PROTECTION',
|
|
14
|
+
memory: 'MEMORY',
|
|
15
|
+
useAikarFlags: 'USE_AIKAR_FLAGS',
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Fields that require a server restart to take effect
|
|
19
|
+
*/
|
|
20
|
+
const RESTART_REQUIRED_FIELDS = [
|
|
21
|
+
'memory',
|
|
22
|
+
'useAikarFlags',
|
|
23
|
+
];
|
|
24
|
+
/**
|
|
25
|
+
* Parse config.env file content into key-value pairs
|
|
26
|
+
*/
|
|
27
|
+
function parseEnvFile(content) {
|
|
28
|
+
const result = new Map();
|
|
29
|
+
const lines = content.split('\n');
|
|
30
|
+
for (const line of lines) {
|
|
31
|
+
// Skip empty lines and comments
|
|
32
|
+
const trimmed = line.trim();
|
|
33
|
+
if (!trimmed || trimmed.startsWith('#')) {
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
// Parse KEY=VALUE
|
|
37
|
+
const eqIndex = line.indexOf('=');
|
|
38
|
+
if (eqIndex > 0) {
|
|
39
|
+
const key = line.substring(0, eqIndex).trim();
|
|
40
|
+
const value = line.substring(eqIndex + 1).trim();
|
|
41
|
+
result.set(key, value);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Convert env value to appropriate type for API response
|
|
48
|
+
*/
|
|
49
|
+
function parseEnvValue(key, value) {
|
|
50
|
+
if (value === undefined) {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
switch (key) {
|
|
54
|
+
case 'maxPlayers':
|
|
55
|
+
case 'viewDistance':
|
|
56
|
+
case 'spawnProtection':
|
|
57
|
+
const num = parseInt(value, 10);
|
|
58
|
+
return isNaN(num) ? undefined : num;
|
|
59
|
+
case 'pvp':
|
|
60
|
+
case 'useAikarFlags':
|
|
61
|
+
return value.toLowerCase() === 'true';
|
|
62
|
+
case 'difficulty':
|
|
63
|
+
const lowerDiff = value.toLowerCase();
|
|
64
|
+
if (['peaceful', 'easy', 'normal', 'hard'].includes(lowerDiff)) {
|
|
65
|
+
return lowerDiff;
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
case 'gameMode':
|
|
69
|
+
const lowerMode = value.toLowerCase();
|
|
70
|
+
if (['survival', 'creative', 'adventure', 'spectator'].includes(lowerMode)) {
|
|
71
|
+
return lowerMode;
|
|
72
|
+
}
|
|
73
|
+
return undefined;
|
|
74
|
+
case 'motd':
|
|
75
|
+
case 'memory':
|
|
76
|
+
return value;
|
|
77
|
+
default:
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Convert API value to env file format
|
|
83
|
+
*/
|
|
84
|
+
function formatEnvValue(key, value) {
|
|
85
|
+
if (value === undefined || value === null) {
|
|
86
|
+
return '';
|
|
87
|
+
}
|
|
88
|
+
switch (key) {
|
|
89
|
+
case 'pvp':
|
|
90
|
+
case 'useAikarFlags':
|
|
91
|
+
return value ? 'true' : 'false';
|
|
92
|
+
case 'difficulty':
|
|
93
|
+
case 'gameMode':
|
|
94
|
+
return String(value).toLowerCase();
|
|
95
|
+
default:
|
|
96
|
+
return String(value);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Update config.env file while preserving comments and structure
|
|
101
|
+
*/
|
|
102
|
+
function updateEnvFile(content, updates) {
|
|
103
|
+
const lines = content.split('\n');
|
|
104
|
+
const result = [];
|
|
105
|
+
const updatedKeys = new Set();
|
|
106
|
+
for (const line of lines) {
|
|
107
|
+
const trimmed = line.trim();
|
|
108
|
+
// Preserve empty lines and comments
|
|
109
|
+
if (!trimmed || trimmed.startsWith('#')) {
|
|
110
|
+
result.push(line);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
// Check if this line has a key we want to update
|
|
114
|
+
const eqIndex = line.indexOf('=');
|
|
115
|
+
if (eqIndex > 0) {
|
|
116
|
+
const key = line.substring(0, eqIndex).trim();
|
|
117
|
+
if (updates.has(key)) {
|
|
118
|
+
const newValue = updates.get(key);
|
|
119
|
+
result.push(`${key}=${newValue}`);
|
|
120
|
+
updatedKeys.add(key);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
result.push(line);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
result.push(line);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// Add any new keys that weren't in the original file
|
|
131
|
+
for (const [key, value] of updates) {
|
|
132
|
+
if (!updatedKeys.has(key)) {
|
|
133
|
+
// Find appropriate section or add at end
|
|
134
|
+
result.push(`${key}=${value}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return result.join('\n');
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* ConfigService - Manages server configuration files
|
|
141
|
+
*/
|
|
142
|
+
export class ConfigService {
|
|
143
|
+
platformPath;
|
|
144
|
+
constructor(platformPath) {
|
|
145
|
+
this.platformPath = platformPath;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get the path to a server's config.env file
|
|
149
|
+
*/
|
|
150
|
+
getConfigPath(serverName) {
|
|
151
|
+
return join(this.platformPath, 'servers', serverName, 'config.env');
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Check if a server's configuration exists
|
|
155
|
+
*/
|
|
156
|
+
configExists(serverName) {
|
|
157
|
+
return existsSync(this.getConfigPath(serverName));
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Read server configuration from config.env
|
|
161
|
+
*/
|
|
162
|
+
getConfig(serverName) {
|
|
163
|
+
const configPath = this.getConfigPath(serverName);
|
|
164
|
+
if (!existsSync(configPath)) {
|
|
165
|
+
throw new Error(`Server configuration not found: ${serverName}`);
|
|
166
|
+
}
|
|
167
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
168
|
+
const envMap = parseEnvFile(content);
|
|
169
|
+
const config = {};
|
|
170
|
+
for (const [apiKey, envKey] of Object.entries(CONFIG_FIELD_MAP)) {
|
|
171
|
+
const value = envMap.get(envKey);
|
|
172
|
+
const parsedValue = parseEnvValue(apiKey, value);
|
|
173
|
+
if (parsedValue !== undefined) {
|
|
174
|
+
config[apiKey] = parsedValue;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return config;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Update server configuration in config.env
|
|
181
|
+
* Returns information about what was changed
|
|
182
|
+
*/
|
|
183
|
+
updateConfig(serverName, updates) {
|
|
184
|
+
const configPath = this.getConfigPath(serverName);
|
|
185
|
+
if (!existsSync(configPath)) {
|
|
186
|
+
throw new Error(`Server configuration not found: ${serverName}`);
|
|
187
|
+
}
|
|
188
|
+
// Read current configuration
|
|
189
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
190
|
+
const currentConfig = this.getConfig(serverName);
|
|
191
|
+
// Prepare updates
|
|
192
|
+
const envUpdates = new Map();
|
|
193
|
+
const changedFields = [];
|
|
194
|
+
let restartRequired = false;
|
|
195
|
+
for (const [apiKey, value] of Object.entries(updates)) {
|
|
196
|
+
if (value === undefined) {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
const typedKey = apiKey;
|
|
200
|
+
const envKey = CONFIG_FIELD_MAP[typedKey];
|
|
201
|
+
if (!envKey) {
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
// Check if value actually changed
|
|
205
|
+
const currentValue = currentConfig[typedKey];
|
|
206
|
+
if (currentValue !== value) {
|
|
207
|
+
changedFields.push(apiKey);
|
|
208
|
+
envUpdates.set(envKey, formatEnvValue(typedKey, value));
|
|
209
|
+
// Check if this field requires restart
|
|
210
|
+
if (RESTART_REQUIRED_FIELDS.includes(typedKey)) {
|
|
211
|
+
restartRequired = true;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// Only write if there are changes
|
|
216
|
+
if (changedFields.length > 0) {
|
|
217
|
+
const updatedContent = updateEnvFile(content, envUpdates);
|
|
218
|
+
writeFileSync(configPath, updatedContent, 'utf-8');
|
|
219
|
+
}
|
|
220
|
+
// Read back the updated configuration
|
|
221
|
+
const newConfig = this.getConfig(serverName);
|
|
222
|
+
return {
|
|
223
|
+
config: newConfig,
|
|
224
|
+
changedFields,
|
|
225
|
+
restartRequired,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Get the world name from server configuration
|
|
230
|
+
*/
|
|
231
|
+
getWorldName(serverName) {
|
|
232
|
+
const configPath = this.getConfigPath(serverName);
|
|
233
|
+
if (!existsSync(configPath)) {
|
|
234
|
+
return 'world'; // Default world name
|
|
235
|
+
}
|
|
236
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
237
|
+
const envMap = parseEnvFile(content);
|
|
238
|
+
return envMap.get('LEVEL') || 'world';
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Create a ConfigService instance
|
|
243
|
+
*/
|
|
244
|
+
export function createConfigService(platformPath) {
|
|
245
|
+
return new ConfigService(platformPath);
|
|
246
|
+
}
|
|
247
|
+
//# sourceMappingURL=ConfigService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigService.js","sourceRoot":"","sources":["../../src/services/ConfigService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SqliteAuditLogRepository } from '@minecraft-docker/shared';
|
|
1
|
+
import { SqliteAuditLogRepository, type AuditLogData } from '@minecraft-docker/shared';
|
|
2
2
|
import type { AuditLogEntry, AuditLogListQuery, AuditLogListResponse, AuditLogStatsResponse, AuditLogDetailResponse, AuditLogPurgeResponse } from '../schemas/audit-log.js';
|
|
3
3
|
/**
|
|
4
4
|
* Event listeners for new audit log entries (SSE support)
|
|
@@ -33,6 +33,10 @@ export declare function subscribeAuditLogs(listener: AuditLogListener): () => vo
|
|
|
33
33
|
* Called by routes that create audit log entries
|
|
34
34
|
*/
|
|
35
35
|
export declare function notifyNewAuditLog(entry: AuditLogEntry): void;
|
|
36
|
+
/**
|
|
37
|
+
* Write an audit log entry and notify SSE listeners
|
|
38
|
+
*/
|
|
39
|
+
export declare function writeAuditLog(data: AuditLogData): Promise<void>;
|
|
36
40
|
/**
|
|
37
41
|
* Close the repository (for graceful shutdown)
|
|
38
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log-service.d.ts","sourceRoot":"","sources":["../../src/services/audit-log-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,
|
|
1
|
+
{"version":3,"file":"audit-log-service.d.ts","sourceRoot":"","sources":["../../src/services/audit-log-service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EAGxB,KAAK,YAAY,EAElB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,aAAa,EAEb,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAOjC;;GAEG;AACH,KAAK,gBAAgB,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;AAGrD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,wBAAwB,CAMhE;AAyFD;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA6B1F;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAoDvE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CA8BxF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,qBAAqB,CAAC,CAsBhC;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,IAAI,CAKzE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAQ5D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBrE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAK9C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { join } from 'path';
|
|
2
|
-
import { SqliteAuditLogRepository, AuditActionEnum, } from '@minecraft-docker/shared';
|
|
2
|
+
import { SqliteAuditLogRepository, AuditLog, AuditActionEnum, } from '@minecraft-docker/shared';
|
|
3
3
|
import { config } from '../config/index.js';
|
|
4
4
|
/**
|
|
5
5
|
* Singleton instance of the audit log repository
|
|
@@ -247,6 +247,27 @@ export function notifyNewAuditLog(entry) {
|
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Write an audit log entry and notify SSE listeners
|
|
252
|
+
*/
|
|
253
|
+
export async function writeAuditLog(data) {
|
|
254
|
+
const repo = getAuditLogRepository();
|
|
255
|
+
await repo.log(data);
|
|
256
|
+
// Notify SSE listeners
|
|
257
|
+
const log = AuditLog.create(data);
|
|
258
|
+
const json = log.toJSON();
|
|
259
|
+
notifyNewAuditLog({
|
|
260
|
+
id: json.id,
|
|
261
|
+
action: json.action,
|
|
262
|
+
actor: json.actor,
|
|
263
|
+
targetType: json.targetType,
|
|
264
|
+
targetName: json.targetName,
|
|
265
|
+
details: json.details,
|
|
266
|
+
status: json.status,
|
|
267
|
+
errorMessage: json.errorMessage ?? null,
|
|
268
|
+
timestamp: json.timestamp,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
250
271
|
/**
|
|
251
272
|
* Close the repository (for graceful shutdown)
|
|
252
273
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-log-service.js","sourceRoot":"","sources":["../../src/services/audit-log-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,wBAAwB,
|
|
1
|
+
{"version":3,"file":"audit-log-service.js","sourceRoot":"","sources":["../../src/services/audit-log-service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@minecraft-docker/mcctl-api",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.1",
|
|
4
4
|
"description": "REST API server for managing Docker Minecraft servers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@fastify/helmet": "^12.0.1",
|
|
52
52
|
"@fastify/swagger": "^9.6.1",
|
|
53
53
|
"@fastify/swagger-ui": "^5.2.4",
|
|
54
|
-
"@minecraft-docker/shared": "^1.
|
|
54
|
+
"@minecraft-docker/shared": "^1.12.1",
|
|
55
55
|
"@sinclair/typebox": "^0.34.48",
|
|
56
56
|
"bcrypt": "^6.0.0",
|
|
57
57
|
"dotenv": "^16.4.7",
|