@fdm-monster/server 1.5.0-rc2 → 1.5.0
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/constants/authorization.constants.js +12 -0
- package/dist/constants/authorization.constants.js.map +1 -1
- package/dist/container.js +2 -1
- package/dist/container.js.map +1 -1
- package/dist/container.tokens.js +3 -1
- package/dist/container.tokens.js.map +1 -1
- package/dist/controllers/auth.controller.js +9 -5
- package/dist/controllers/auth.controller.js.map +1 -1
- package/dist/controllers/first-time-setup.controller.js +1 -3
- package/dist/controllers/first-time-setup.controller.js.map +1 -1
- package/dist/controllers/user.controller.js +72 -9
- package/dist/controllers/user.controller.js.map +1 -1
- package/dist/controllers/validation/user-controller.validation.js +3 -2
- package/dist/controllers/validation/user-controller.validation.js.map +1 -1
- package/dist/exceptions/job.exceptions.js.map +1 -1
- package/dist/exceptions/runtime.exceptions.js +3 -10
- package/dist/exceptions/runtime.exceptions.js.map +1 -1
- package/dist/middleware/authenticate.js +7 -4
- package/dist/middleware/authenticate.js.map +1 -1
- package/dist/middleware/{exception.handler.js → exception.filter.js} +6 -11
- package/dist/middleware/exception.filter.js.map +1 -0
- package/dist/middleware/global.middleware.js +1 -1
- package/dist/middleware/global.middleware.js.map +1 -1
- package/dist/middleware/passport.js +45 -16
- package/dist/middleware/passport.js.map +1 -1
- package/dist/server.constants.js +8 -2
- package/dist/server.constants.js.map +1 -1
- package/dist/server.host.js +3 -3
- package/dist/server.host.js.map +1 -1
- package/dist/services/authentication/auth.service.js +26 -15
- package/dist/services/authentication/auth.service.js.map +1 -1
- package/dist/services/authentication/refresh-token.service.js +3 -2
- package/dist/services/authentication/refresh-token.service.js.map +1 -1
- package/dist/services/authentication/role.service.js +6 -0
- package/dist/services/authentication/role.service.js.map +1 -1
- package/dist/services/authentication/user.service.js +33 -12
- package/dist/services/authentication/user.service.js.map +1 -1
- package/dist/services/influxdb-v2/influx-db-v2-base.service.js +4 -8
- package/dist/services/influxdb-v2/influx-db-v2-base.service.js.map +1 -1
- package/dist/services/interfaces/refresh-token.dto.js +20 -0
- package/dist/services/interfaces/refresh-token.dto.js.map +1 -0
- package/dist/services/interfaces/role.dto.js +16 -0
- package/dist/services/interfaces/role.dto.js.map +1 -0
- package/dist/services/octoprint/octoprint-sockio.adapter.js +7 -11
- package/dist/services/octoprint/octoprint-sockio.adapter.js.map +1 -1
- package/dist/services/settings.service.js +2 -29
- package/dist/services/settings.service.js.map +1 -1
- package/dist/services/validators/printer-service.validation.js +1 -1
- package/dist/services/validators/printer-service.validation.js.map +1 -1
- package/dist/services/validators/user-service.validation.js +1 -1
- package/dist/services/validators/user-service.validation.js.map +1 -1
- package/dist/state/settings.store.js +1 -1
- package/dist/state/settings.store.js.map +1 -1
- package/dist/state/socket-io.gateway.js +30 -3
- package/dist/state/socket-io.gateway.js.map +1 -1
- package/dist/tasks/boot.task.js +3 -3
- package/dist/tasks/boot.task.js.map +1 -1
- package/package.json +5 -5
- package/dist/middleware/exception.handler.js.map +0 -1
|
@@ -18,10 +18,10 @@ class InfluxDbV2BaseService {
|
|
|
18
18
|
this.logger = loggerFactory(InfluxDbV2BaseService.name);
|
|
19
19
|
}
|
|
20
20
|
isConfigValid() {
|
|
21
|
-
const { bucket, org, url, token } = this
|
|
21
|
+
const { bucket, org, url, token } = this.getConfig();
|
|
22
22
|
return bucket && org && url && token;
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
getConfig() {
|
|
25
25
|
return {
|
|
26
26
|
url: this.configService.get(_serverconstants.AppConstants.influxUrl),
|
|
27
27
|
token: this.configService.get(_serverconstants.AppConstants.influxToken),
|
|
@@ -29,17 +29,13 @@ class InfluxDbV2BaseService {
|
|
|
29
29
|
bucket: this.configService.get(_serverconstants.AppConstants.influxBucket)
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
const { url, token } = this
|
|
32
|
+
getClient() {
|
|
33
|
+
const { url, token } = this.getConfig();
|
|
34
34
|
return new _influxdbclient.InfluxDB({
|
|
35
35
|
url,
|
|
36
36
|
token
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
#getQueryApi() {
|
|
40
|
-
const { org } = this.#getConfig();
|
|
41
|
-
return this.#getClient().getQueryApi(org);
|
|
42
|
-
}
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
//# sourceMappingURL=influx-db-v2-base.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/influxdb-v2/influx-db-v2-base.service.ts"],"names":["InfluxDbV2BaseService","configService","logger","constructor","loggerFactory","name","isConfigValid","bucket","org","url","token","getConfig","get","AppConstants","influxUrl","influxToken","influxOrg","influxBucket","getClient","InfluxDB"
|
|
1
|
+
{"version":3,"sources":["../../../src/services/influxdb-v2/influx-db-v2-base.service.ts"],"names":["InfluxDbV2BaseService","configService","logger","constructor","loggerFactory","name","isConfigValid","bucket","org","url","token","getConfig","get","AppConstants","influxUrl","influxToken","influxOrg","influxBucket","getClient","InfluxDB"],"mappings":";;;;+BAMaA;;;eAAAA;;;gCANY;iCACI;AAKtB,MAAMA;IACXC,cAA6B;IAC7BC,OAAsB;IAEtBC,YAAY,EAAEF,aAAa,EAAEG,aAAa,EAAmE,CAAE;QAC7G,IAAI,CAACH,aAAa,GAAGA;QACrB,IAAI,CAACC,MAAM,GAAGE,cAAcJ,sBAAsBK,IAAI;IACxD;IAEAC,gBAAgB;QACd,MAAM,EAAEC,MAAM,EAAEC,GAAG,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAG,IAAI,CAACC,SAAS;QAClD,OAAOJ,UAAUC,OAAOC,OAAOC;IACjC;IAEAC,YAAY;QACV,OAAO;YACLF,KAAK,IAAI,CAACR,aAAa,CAACW,GAAG,CAACC,6BAAY,CAACC,SAAS;YAClDJ,OAAO,IAAI,CAACT,aAAa,CAACW,GAAG,CAACC,6BAAY,CAACE,WAAW;YACtDP,KAAK,IAAI,CAACP,aAAa,CAACW,GAAG,CAACC,6BAAY,CAACG,SAAS;YAClDT,QAAQ,IAAI,CAACN,aAAa,CAACW,GAAG,CAACC,6BAAY,CAACI,YAAY;QAC1D;IACF;IAEAC,YAAY;QACV,MAAM,EAAET,GAAG,EAAEC,KAAK,EAAE,GAAG,IAAI,CAACC,SAAS;QACrC,OAAO,IAAIQ,wBAAQ,CAAC;YAAEV;YAAKC;QAAM;IACnC;AAMF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "RefreshTokenDto", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return RefreshTokenDto;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
class RefreshTokenDto {
|
|
12
|
+
id;
|
|
13
|
+
userId;
|
|
14
|
+
expiresAt;
|
|
15
|
+
// Not exposed
|
|
16
|
+
// refreshToken!: string;
|
|
17
|
+
refreshAttemptsUsed;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=refresh-token.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/interfaces/refresh-token.dto.ts"],"names":["RefreshTokenDto","id","userId","expiresAt","refreshAttemptsUsed"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA;IACXC,GAAa;IACbC,OAAiB;IACjBC,UAAmB;IACnB,cAAc;IACd,yBAAyB;IACzBC,oBAA6B;AAC/B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "RoleDto", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return RoleDto;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
class RoleDto {
|
|
12
|
+
id;
|
|
13
|
+
name;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=role.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/interfaces/role.dto.ts"],"names":["RoleDto","id","name"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA;IACXC,GAAY;IACZC,KAAa;AACf"}
|
|
@@ -141,7 +141,6 @@ class OctoPrintSockIoAdapter extends _websocketadapter.WebsocketAdapter {
|
|
|
141
141
|
}
|
|
142
142
|
/**
|
|
143
143
|
* Retrieve session token by authenticating with OctoPrint API
|
|
144
|
-
* @returns {Promise<void>}
|
|
145
144
|
*/ async setupSocketSession() {
|
|
146
145
|
this.resetSocketState();
|
|
147
146
|
this.sessionDto = await this.octoPrintApiService.login(this.loginDto).then((r)=>{
|
|
@@ -149,38 +148,35 @@ class OctoPrintSockIoAdapter extends _websocketadapter.WebsocketAdapter {
|
|
|
149
148
|
if (r.name === "_api") {
|
|
150
149
|
this.setApiState(API_STATE.globalKey);
|
|
151
150
|
this.setSocketState(SOCKET_STATE.aborted);
|
|
152
|
-
throw new _runtimeexceptions.
|
|
151
|
+
throw new _runtimeexceptions.ExternalServiceError("Global API Key detected, aborting socket connection");
|
|
153
152
|
} else if (r.needs?.group[0] === "guests") {
|
|
154
153
|
this.logger.warn("Detected group guests in OctoPrint login response, marking as unauthorized");
|
|
155
154
|
// This doesn't occur often (instead a 400 with CSRF failed is returned)
|
|
156
155
|
this.setApiState(API_STATE.authFail);
|
|
157
156
|
this.setSocketState(SOCKET_STATE.aborted);
|
|
158
|
-
throw new _runtimeexceptions.
|
|
157
|
+
throw new _runtimeexceptions.ExternalServiceError("Guest group detected, authentication failed, aborting socket connection");
|
|
159
158
|
}
|
|
160
159
|
this.setApiState(API_STATE.responding);
|
|
161
160
|
this.setSocketState(SOCKET_STATE.opening);
|
|
162
161
|
return r;
|
|
163
|
-
}).catch(
|
|
164
|
-
* @param {ExternalHttpError|AxiosError} e
|
|
165
|
-
*/ (e)=>{
|
|
162
|
+
}).catch((e)=>{
|
|
166
163
|
this.setSocketState(SOCKET_STATE.aborted);
|
|
167
|
-
|
|
164
|
+
// TODO improve error type detection
|
|
165
|
+
if (e instanceof _runtimeexceptions.ExternalServiceError) {
|
|
168
166
|
this.logger.warn(`Printer authorization error (id: ${this.printerId}), apiState: ${this.apiState}`);
|
|
169
167
|
throw e;
|
|
170
168
|
} else {
|
|
171
169
|
if (e?.response?.status === 403) {
|
|
172
170
|
this.setApiState(API_STATE.authFail);
|
|
173
171
|
this.setSocketState(SOCKET_STATE.aborted);
|
|
174
|
-
throw new _runtimeexceptions.
|
|
172
|
+
throw new _runtimeexceptions.ExternalServiceError(e);
|
|
175
173
|
}
|
|
176
174
|
this.logger.error(`Printer (${this.printerId}) network or transport error, marking it as unreachable; ${e}`);
|
|
177
175
|
this.setApiState(API_STATE.noResponse);
|
|
178
176
|
}
|
|
179
177
|
throw e;
|
|
180
178
|
});
|
|
181
|
-
this.username = await this.octoPrintApiService.getAdminUserOrDefault(this.loginDto).catch(
|
|
182
|
-
* @param {ExternalHttpError|AxiosError} e
|
|
183
|
-
*/ (e)=>{
|
|
179
|
+
this.username = await this.octoPrintApiService.getAdminUserOrDefault(this.loginDto).catch((e)=>{
|
|
184
180
|
const status = e.response?.status;
|
|
185
181
|
if (status === _httpstatuscodesconstants.HttpStatusCode.FORBIDDEN) {
|
|
186
182
|
this.setApiState(API_STATE.authFail);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/octoprint/octoprint-sockio.adapter.ts"],"names":["API_STATE","Message","OctoPrintSockIoAdapter","SOCKET_STATE","octoPrintEvent","connected","reauthRequired","current","history","event","plugin","timelapse","slicingProgress","WS_OPENED","WS_CLOSED","WS_ERROR","API_STATE_UPDATED","WS_STATE_UPDATED","unopened","opening","authenticating","opened","authenticated","aborted","error","closed","unset","noResponse","globalKey","authFail","responding","WebsocketAdapter","printerId","loginDto","socketURL","sessionDto","username","octoPrintApiService","eventEmitter","logger","configService","stateUpdated","stateUpdateTimestamp","socketState","apiStateUpdated","apiStateUpdateTimestamp","apiState","lastMessageReceivedTimestamp","reauthRequiredTimestamp","constructor","loggerFactory","eventEmitter2","name","_debugMode","get","AppConstants","debugSocketStatesKey","defaultDebugSocketStates","needsReopen","isApiOnline","needsSetup","needsReauth","isClosedOrAborted","registerCredentials","socketLogin","protocol","httpUrl","normalizeUrl","printerURL","wsUrl","httpToWsUrl","pathname","open","_","socket","Error","close","sendThrottle","throttle","defaultSocketThrottleRate","sendMessage","JSON","stringify","reauthSession","setupSocketSession","sendAuth","resetReauthRequired","resetSocketState","login","then","r","setApiState","setSocketState","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/octoprint/octoprint-sockio.adapter.ts"],"names":["API_STATE","Message","OctoPrintSockIoAdapter","SOCKET_STATE","octoPrintEvent","connected","reauthRequired","current","history","event","plugin","timelapse","slicingProgress","WS_OPENED","WS_CLOSED","WS_ERROR","API_STATE_UPDATED","WS_STATE_UPDATED","unopened","opening","authenticating","opened","authenticated","aborted","error","closed","unset","noResponse","globalKey","authFail","responding","WebsocketAdapter","printerId","loginDto","socketURL","sessionDto","username","octoPrintApiService","eventEmitter","logger","configService","stateUpdated","stateUpdateTimestamp","socketState","apiStateUpdated","apiStateUpdateTimestamp","apiState","lastMessageReceivedTimestamp","reauthRequiredTimestamp","constructor","loggerFactory","eventEmitter2","name","_debugMode","get","AppConstants","debugSocketStatesKey","defaultDebugSocketStates","needsReopen","isApiOnline","needsSetup","needsReauth","isClosedOrAborted","registerCredentials","socketLogin","protocol","httpUrl","normalizeUrl","printerURL","wsUrl","httpToWsUrl","pathname","open","_","socket","Error","close","sendThrottle","throttle","defaultSocketThrottleRate","sendMessage","JSON","stringify","reauthSession","setupSocketSession","sendAuth","resetReauthRequired","resetSocketState","login","then","r","setApiState","setSocketState","ExternalServiceError","needs","group","warn","catch","e","response","status","getAdminUserOrDefault","HttpStatusCode","FORBIDDEN","BAD_GATEWAY","NOT_IMPLEMENTED","SERVICE_UNAVAILABLE","GATEWAY_TIMEOUT","includes","afterOpened","onMessage","message","Date","now","data","parse","eventName","Object","keys","payload","setReauthRequired","emitEvent","auth","session","afterClosed","onError","state","log","emitEventSync","emitAsync","emit"],"mappings":"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"}
|
|
@@ -77,15 +77,6 @@ class SettingsService {
|
|
|
77
77
|
}
|
|
78
78
|
return knownSettings;
|
|
79
79
|
}
|
|
80
|
-
async setSentryDiagnosticsEnabled(enabled) {
|
|
81
|
-
const settingsDoc = await this.getOrCreate();
|
|
82
|
-
settingsDoc[_serversettingsconstants.serverSettingsKey].sentryDiagnosticsEnabled = enabled;
|
|
83
|
-
return _models.Settings.findOneAndUpdate({
|
|
84
|
-
_id: settingsDoc.id
|
|
85
|
-
}, settingsDoc, {
|
|
86
|
-
new: true
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
80
|
async patchFileCleanSettings(patchUpdate) {
|
|
90
81
|
const validatedInput = await (0, _validators.validateInput)(patchUpdate, _settingsservicevalidation.fileCleanSettingsUpdateRules);
|
|
91
82
|
const settingsDoc = await this.getOrCreate();
|
|
@@ -106,31 +97,13 @@ class SettingsService {
|
|
|
106
97
|
new: true
|
|
107
98
|
});
|
|
108
99
|
}
|
|
109
|
-
async setRegistrationEnabled(enabled = true) {
|
|
110
|
-
const settingsDoc = await this.getOrCreate();
|
|
111
|
-
settingsDoc[_serversettingsconstants.serverSettingsKey].registration = enabled;
|
|
112
|
-
return _models.Settings.findOneAndUpdate({
|
|
113
|
-
_id: settingsDoc.id
|
|
114
|
-
}, settingsDoc, {
|
|
115
|
-
new: true
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
async setLoginRequired(enabled = true) {
|
|
119
|
-
const settingsDoc = await this.getOrCreate();
|
|
120
|
-
settingsDoc[_serversettingsconstants.serverSettingsKey].loginRequired = enabled;
|
|
121
|
-
return _models.Settings.findOneAndUpdate({
|
|
122
|
-
_id: settingsDoc.id
|
|
123
|
-
}, settingsDoc, {
|
|
124
|
-
new: true
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
100
|
async setWhitelist(enabled, ipAddresses) {
|
|
128
101
|
if (!this.isWhiteListSettingEnabled()) {
|
|
129
102
|
throw new _runtimeexceptions.BadRequestException("Whitelist settings are not enabled");
|
|
130
103
|
}
|
|
131
104
|
await (0, _validators.validateInput)({
|
|
132
|
-
enabled,
|
|
133
|
-
ipAddresses
|
|
105
|
+
whitelistEnabled: enabled,
|
|
106
|
+
whitelistedIpAddresses: ipAddresses
|
|
134
107
|
}, _settingsservicevalidation.whitelistSettingUpdateRules);
|
|
135
108
|
const settingsDoc = await this.getOrCreate();
|
|
136
109
|
const settings = settingsDoc[_serversettingsconstants.serverSettingsKey];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/settings.service.ts"],"names":["SettingsService","configService","constructor","toDto","entity","serverSettingsKey","wizardSettingKey","frontendSettingKey","fileCleanSettingKey","timeoutSettingKey","getOrCreate","settings","Settings","findOne","defaultSettings","getDefaultSettings","save","migrateSettingsRuntime","findOneAndUpdate","_id","id","new","knownSettings","doc","getDefaultFileCleanSettings","getDefaultWizardSettings","getDefaultTimeout","getDefaultServerSettings","credentialSettingsKey","getDefaultCredentialSettings","isWhiteListSettingEnabled","server","whitelistEnabled","whitelistedIpAddresses","getDefaultWhitelistIpAddresses","length","getDefaultFrontendSettings","
|
|
1
|
+
{"version":3,"sources":["../../src/services/settings.service.ts"],"names":["SettingsService","configService","constructor","toDto","entity","serverSettingsKey","wizardSettingKey","frontendSettingKey","fileCleanSettingKey","timeoutSettingKey","getOrCreate","settings","Settings","findOne","defaultSettings","getDefaultSettings","save","migrateSettingsRuntime","findOneAndUpdate","_id","id","new","knownSettings","doc","getDefaultFileCleanSettings","getDefaultWizardSettings","getDefaultTimeout","getDefaultServerSettings","credentialSettingsKey","getDefaultCredentialSettings","isWhiteListSettingEnabled","server","whitelistEnabled","whitelistedIpAddresses","getDefaultWhitelistIpAddresses","length","getDefaultFrontendSettings","patchFileCleanSettings","patchUpdate","validatedInput","validateInput","fileCleanSettingsUpdateRules","settingsDoc","Object","assign","patchWizardSettings","wizardUpdateRules","setWhitelist","enabled","ipAddresses","BadRequestException","whitelistSettingUpdateRules","updateFrontendSettings","frontendSettingsUpdateRules","frontendSettings","patchCredentialSettings","credentialSettingPatchRules","credentialSettings","patchServerSettings","serverSettingsUpdateRules","serverSettings","updateTimeoutSettings","timeoutSettingsUpdateRules","timeoutSettings","get","AppConstants","ENABLE_EXPERIMENTAL_WHITELIST_SETTINGS"],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ const createMongoPrinterRules = {
|
|
|
33
33
|
};
|
|
34
34
|
const createPrinterRules = {
|
|
35
35
|
apiKey: `required|length:${_serviceconstants.UUID_LENGTH},${_serviceconstants.UUID_LENGTH}|alphaNumeric`,
|
|
36
|
-
|
|
36
|
+
printerURL: "required|httpurl",
|
|
37
37
|
enabled: "boolean",
|
|
38
38
|
name: "required|string"
|
|
39
39
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/validators/printer-service.validation.ts"],"names":["createMongoPrinterRules","createPrinterRules","updatePrinterDisabledReasonRule","updatePrinterEnabledRule","_id","apiKey","UUID_LENGTH","printerURL","enabled","settingsAppearance","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/printer-service.validation.ts"],"names":["createMongoPrinterRules","createPrinterRules","updatePrinterDisabledReasonRule","updatePrinterEnabledRule","_id","apiKey","UUID_LENGTH","printerURL","enabled","settingsAppearance","name","disabledReason"],"mappings":";;;;;;;;;;;IAEaA,uBAAuB;eAAvBA;;IASAC,kBAAkB;eAAlBA;;IAWAC,+BAA+B;eAA/BA;;IAJAC,wBAAwB;eAAxBA;;;kCAlBe;AAErB,MAAMH,0BAA0B;IACrCI,KAAK;IACLC,QAAQ,CAAC,gBAAgB,EAAEC,6BAAW,CAAC,CAAC,EAAEA,6BAAW,CAAC,aAAa,CAAC;IACpEC,YAAY;IACZC,SAAS;IACTC,oBAAoB;IACpB,2BAA2B;AAC7B;AAEO,MAAMR,qBAAqB;IAChCI,QAAQ,CAAC,gBAAgB,EAAEC,6BAAW,CAAC,CAAC,EAAEA,6BAAW,CAAC,aAAa,CAAC;IACpEC,YAAY;IACZC,SAAS;IACTE,MAAM;AACR;AAEO,MAAMP,2BAA2B;IACtCK,SAAS;AACX;AAEO,MAAMN,kCAAkC;IAC7CS,gBAAgB;IAChBH,SAAS;AACX"}
|
|
@@ -18,7 +18,7 @@ _export(exports, {
|
|
|
18
18
|
});
|
|
19
19
|
const _serverconstants = require("../../server.constants");
|
|
20
20
|
const registerUserRules = {
|
|
21
|
-
username:
|
|
21
|
+
username: `required|string|minLength:${_serverconstants.AppConstants.DEFAULT_USERNAME_MINLEN}`,
|
|
22
22
|
password: `required|string|minLength:${_serverconstants.AppConstants.DEFAULT_PASSWORD_MINLEN}`,
|
|
23
23
|
needsPasswordChange: "boolean",
|
|
24
24
|
roles: "required|array",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/validators/user-service.validation.ts"],"names":["newPasswordRules","registerUserRules","username","
|
|
1
|
+
{"version":3,"sources":["../../../src/services/validators/user-service.validation.ts"],"names":["newPasswordRules","registerUserRules","username","AppConstants","DEFAULT_USERNAME_MINLEN","password","DEFAULT_PASSWORD_MINLEN","needsPasswordChange","roles","isDemoUser","isRootUser","isVerified"],"mappings":";;;;;;;;;;;IAaaA,gBAAgB;eAAhBA;;IAXAC,iBAAiB;eAAjBA;;;iCAFgB;AAEtB,MAAMA,oBAAoB;IAC/BC,UAAU,CAAC,0BAA0B,EAAEC,6BAAY,CAACC,uBAAuB,CAAC,CAAC;IAC7EC,UAAU,CAAC,0BAA0B,EAAEF,6BAAY,CAACG,uBAAuB,CAAC,CAAC;IAC7EC,qBAAqB;IACrBC,OAAO;IACPC,YAAY;IACZC,YAAY;IACZ,WAAW;IACXC,YAAY;AACd;AAEO,MAAMX,mBAAmB;IAC9BK,UAAU,CAAC,0BAA0B,EAAEF,6BAAY,CAACG,uBAAuB,CAAC,CAAC;AAC/E"}
|
|
@@ -163,13 +163,13 @@ class SettingsStore {
|
|
|
163
163
|
return this.getSettings();
|
|
164
164
|
}
|
|
165
165
|
async processSentryEnabled() {
|
|
166
|
-
if ((0, _envutils.isTestEnvironment)()) return;
|
|
167
166
|
const sentryEnabled = await this.getAnonymousDiagnosticsEnabled();
|
|
168
167
|
if (sentryEnabled) {
|
|
169
168
|
this.logger.log("Enabling Sentry for remote diagnostics");
|
|
170
169
|
} else {
|
|
171
170
|
this.logger.log("Disabling Sentry for remote diagnostics");
|
|
172
171
|
}
|
|
172
|
+
if ((0, _envutils.isTestEnvironment)()) return;
|
|
173
173
|
(0, _node.getCurrentHub)().getClient().getOptions().enabled = sentryEnabled;
|
|
174
174
|
}
|
|
175
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/settings.store.ts"],"names":["SettingsStore","settingsService","logger","settings","constructor","loggerFactory","name","getSettings","InternalServerException","Object","freeze","serverSettingsKey","loginRequired","registration","sentryDiagnosticsEnabled","wizardSettingKey","frontendSettingKey","fileCleanSettingKey","timeoutSettingKey","getSettingsSensitive","credentialSettingsKey","jwtExpiresIn","refreshTokenAttempts","refreshTokenExpiry","debugSettings","whitelistEnabled","whitelistedIpAddresses","loadSettings","getOrCreate","processSentryEnabled","getCredentialSettings","getAnonymousDiagnosticsEnabled","persistOptionalCredentialSettings","overrideJwtSecret","overrideJwtExpiresIn","updateCredentialSettings","jwtSecret","parseInt","getWizardState","wizardCompleted","wizardVersion","latestWizardVersion","AppConstants","currentWizardVersion","isWizardCompleted","getWizardSettings","isRegistrationEnabled","getServerSettings","getFrontendSettings","getFileCleanSettings","isPreUploadFileCleanEnabled","autoRemoveOldFilesBeforeUpload","setWizardCompleted","version","patchWizardSettings","wizardCompletedAt","Date","setRegistrationEnabled","patchServerSettings","getLoginRequired","setLoginRequired","setWhitelist","updateServerSettings","serverSettings","updateTimeoutSettings","timeoutSettings","patchFileCleanSettings","fileClean","credentialSettings","patchCredentialSettings","setSentryDiagnosticsEnabled","updateFrontendSettings","frontendSettings","
|
|
1
|
+
{"version":3,"sources":["../../src/state/settings.store.ts"],"names":["SettingsStore","settingsService","logger","settings","constructor","loggerFactory","name","getSettings","InternalServerException","Object","freeze","serverSettingsKey","loginRequired","registration","sentryDiagnosticsEnabled","wizardSettingKey","frontendSettingKey","fileCleanSettingKey","timeoutSettingKey","getSettingsSensitive","credentialSettingsKey","jwtExpiresIn","refreshTokenAttempts","refreshTokenExpiry","debugSettings","whitelistEnabled","whitelistedIpAddresses","loadSettings","getOrCreate","processSentryEnabled","getCredentialSettings","getAnonymousDiagnosticsEnabled","persistOptionalCredentialSettings","overrideJwtSecret","overrideJwtExpiresIn","updateCredentialSettings","jwtSecret","parseInt","getWizardState","wizardCompleted","wizardVersion","latestWizardVersion","AppConstants","currentWizardVersion","isWizardCompleted","getWizardSettings","isRegistrationEnabled","getServerSettings","getFrontendSettings","getFileCleanSettings","isPreUploadFileCleanEnabled","autoRemoveOldFilesBeforeUpload","setWizardCompleted","version","patchWizardSettings","wizardCompletedAt","Date","setRegistrationEnabled","patchServerSettings","getLoginRequired","setLoginRequired","setWhitelist","updateServerSettings","serverSettings","updateTimeoutSettings","timeoutSettings","patchFileCleanSettings","fileClean","credentialSettings","patchCredentialSettings","setSentryDiagnosticsEnabled","updateFrontendSettings","frontendSettings","sentryEnabled","log","isTestEnvironment","getCurrentHub","getClient","getOptions","enabled"],"mappings":"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"}
|
|
@@ -18,15 +18,40 @@ _export(exports, {
|
|
|
18
18
|
});
|
|
19
19
|
const _socketio = require("socket.io");
|
|
20
20
|
const _eventconstants = require("../constants/event.constants");
|
|
21
|
+
const _passport = require("../middleware/passport");
|
|
22
|
+
const _passportjwt = require("passport-jwt");
|
|
23
|
+
const authorize = (settingsStore, options, verify)=>{
|
|
24
|
+
const strategy = new _passportjwt.Strategy(options, verify);
|
|
25
|
+
return async function authorizeCallback(socket, next) {
|
|
26
|
+
if (!await settingsStore.getLoginRequired()) {
|
|
27
|
+
// No login required, so we can skip the authentication
|
|
28
|
+
return next();
|
|
29
|
+
}
|
|
30
|
+
// --- Begin strategy augmentation ala passport
|
|
31
|
+
strategy.success = function success(user) {
|
|
32
|
+
socket.handshake.user = user;
|
|
33
|
+
next();
|
|
34
|
+
};
|
|
35
|
+
strategy.fail = (info)=>next(new Error(info));
|
|
36
|
+
strategy.error = (error)=>next(error);
|
|
37
|
+
strategy.authenticate(socket, {});
|
|
38
|
+
};
|
|
39
|
+
};
|
|
21
40
|
class SocketIoGateway {
|
|
22
41
|
logger;
|
|
23
42
|
eventEmitter2;
|
|
24
43
|
io;
|
|
44
|
+
authService;
|
|
25
45
|
settingsStore;
|
|
26
|
-
|
|
46
|
+
configService;
|
|
47
|
+
userService;
|
|
48
|
+
constructor({ loggerFactory, eventEmitter2, settingsStore, authService, configService, userService }){
|
|
27
49
|
this.logger = loggerFactory(SocketIoGateway.name);
|
|
28
50
|
this.eventEmitter2 = eventEmitter2;
|
|
29
51
|
this.settingsStore = settingsStore;
|
|
52
|
+
this.authService = authService;
|
|
53
|
+
this.userService = userService;
|
|
54
|
+
this.configService = configService;
|
|
30
55
|
}
|
|
31
56
|
attachServer(httpServer) {
|
|
32
57
|
this.io = new _socketio.Server(httpServer, {
|
|
@@ -34,8 +59,10 @@ class SocketIoGateway {
|
|
|
34
59
|
origin: "*"
|
|
35
60
|
}
|
|
36
61
|
});
|
|
37
|
-
const
|
|
38
|
-
|
|
62
|
+
const opts = (0, _passport.getPassportJwtOptions)(this.settingsStore, this.configService, (value)=>value.handshake.auth.token);
|
|
63
|
+
const verify = (0, _passport.verifyUserCallback)(this.userService);
|
|
64
|
+
this.io.use(authorize(this.settingsStore, opts, verify));
|
|
65
|
+
this.io.on("connection", (socket)=>this.onConnect.bind(this)(socket));
|
|
39
66
|
}
|
|
40
67
|
onConnect(socket) {
|
|
41
68
|
this.logger.log("SocketIO Client connected", socket.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/state/socket-io.gateway.ts"],"names":["IO_MESSAGES","SocketIoGateway","logger","eventEmitter2","io","
|
|
1
|
+
{"version":3,"sources":["../../src/state/socket-io.gateway.ts"],"names":["IO_MESSAGES","SocketIoGateway","authorize","settingsStore","options","verify","strategy","JwtStrategy","authorizeCallback","socket","next","getLoginRequired","success","user","handshake","fail","info","Error","error","authenticate","logger","eventEmitter2","io","authService","configService","userService","constructor","loggerFactory","name","attachServer","httpServer","Server","cors","origin","opts","getPassportJwtOptions","value","auth","token","verifyUserCallback","use","on","onConnect","bind","log","id","emit","socketIoConnectedEvent","send","event","data","debug","getServerSettings","debugSettings","debugSocketIoEvents","LegacyUpdate","LegacyPrinterTest","CompletionEvent","HostState","ApiAccessibility"],"mappings":"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"}
|
package/dist/tasks/boot.task.js
CHANGED
|
@@ -170,7 +170,7 @@ class BootTask {
|
|
|
170
170
|
password: demoPassword,
|
|
171
171
|
isDemoUser: true,
|
|
172
172
|
isVerified: true,
|
|
173
|
-
isRootUser:
|
|
173
|
+
isRootUser: false,
|
|
174
174
|
needsPasswordChange: false,
|
|
175
175
|
roles: [
|
|
176
176
|
adminRole.id
|
|
@@ -179,8 +179,8 @@ class BootTask {
|
|
|
179
179
|
this.logger.log("Created demo account");
|
|
180
180
|
} else {
|
|
181
181
|
await this.userService.setVerifiedById(demoUserId, true);
|
|
182
|
-
await this.userService.setIsRootUserById(demoUserId,
|
|
183
|
-
await this.userService.
|
|
182
|
+
await this.userService.setIsRootUserById(demoUserId, false);
|
|
183
|
+
await this.userService.updatePasswordUnsafeByUsername(demoUsername, demoPassword);
|
|
184
184
|
await this.userService.setUserRoleIds(demoUserId, [
|
|
185
185
|
adminRole.id
|
|
186
186
|
]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tasks/boot.task.ts"],"names":["BootTask","logger","taskManagerService","serverTasks","settingsStore","settingsService","multerService","printerSocketStore","filesStore","permissionService","roleService","userService","pluginRepositoryCache","floorStore","pluginFirmwareUpdateService","clientBundleService","configService","constructor","loggerFactory","name","runOnce","registerJobOrTask","SERVER_BOOT_TASK","log","run","createConnection","migrateDatabase","e","mongoose","Error","message","includes","error","scheduleDisabledJob","DITokens","bootTask","loadSettings","syncPermissions","syncRoles","isDemoMode","warn","AppConstants","OVERRIDE_IS_DEMO_MODE","createOrUpdateDemoAccount","setLoginRequired","setRegistrationEnabled","loginRequired","get","OVERRIDE_LOGIN_REQUIRED","registrationEnabled","OVERRIDE_REGISTRATION_ENABLED","overrideJwtSecret","OVERRIDE_JWT_SECRET","undefined","overrideJwtExpiresIn","OVERRIDE_JWT_EXPIRES_IN","persistOptionalCredentialSettings","clearUploadsFolder","loadPrinterSockets","loadFilesStore","loadStore","process","env","SAFEMODE_ENABLED","BOOT_TASKS","forEach","task","disableJob","demoUsername","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","demoPassword","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","demoRole","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","adminRole","getRoleByName","demoUserId","getDemoUserId","register","username","password","isDemoUser","isVerified","isRootUser","needsPasswordChange","roles","id","setVerifiedById","setIsRootUserById","
|
|
1
|
+
{"version":3,"sources":["../../src/tasks/boot.task.ts"],"names":["BootTask","logger","taskManagerService","serverTasks","settingsStore","settingsService","multerService","printerSocketStore","filesStore","permissionService","roleService","userService","pluginRepositoryCache","floorStore","pluginFirmwareUpdateService","clientBundleService","configService","constructor","loggerFactory","name","runOnce","registerJobOrTask","SERVER_BOOT_TASK","log","run","createConnection","migrateDatabase","e","mongoose","Error","message","includes","error","scheduleDisabledJob","DITokens","bootTask","loadSettings","syncPermissions","syncRoles","isDemoMode","warn","AppConstants","OVERRIDE_IS_DEMO_MODE","createOrUpdateDemoAccount","setLoginRequired","setRegistrationEnabled","loginRequired","get","OVERRIDE_LOGIN_REQUIRED","registrationEnabled","OVERRIDE_REGISTRATION_ENABLED","overrideJwtSecret","OVERRIDE_JWT_SECRET","undefined","overrideJwtExpiresIn","OVERRIDE_JWT_EXPIRES_IN","persistOptionalCredentialSettings","clearUploadsFolder","loadPrinterSockets","loadFilesStore","loadStore","process","env","SAFEMODE_ENABLED","BOOT_TASKS","forEach","task","disableJob","demoUsername","OVERRIDE_DEMO_USERNAME","DEFAULT_DEMO_USERNAME","demoPassword","OVERRIDE_DEMO_PASSWORD","DEFAULT_DEMO_PASSWORD","demoRole","OVERRIDE_DEMO_ROLE","DEFAULT_DEMO_ROLE","adminRole","getRoleByName","demoUserId","getDemoUserId","register","username","password","isDemoUser","isVerified","isRootUser","needsPasswordChange","roles","id","setVerifiedById","setIsRootUserById","updatePasswordUnsafeByUsername","setUserRoleIds","setWizardCompleted","connect","fetchMongoDBConnectionString","serverSelectionTimeoutMS","syncIndexes","runMigrations","connection","db","getClient"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"author": "David Zwart",
|
|
8
8
|
"license": "AGPL-3.0-or-later",
|
|
9
9
|
"private": false,
|
|
10
|
-
"version": "1.5.0
|
|
10
|
+
"version": "1.5.0",
|
|
11
11
|
"description": "FDM Monster is a bulk OctoPrint manager to set up, configure and monitor 3D printers. Our aim is to provide extremely optimized websocket performance and reliability.",
|
|
12
12
|
"main": "src/index.ts",
|
|
13
13
|
"scripts": {
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"format": "prettier --write \"src/**/*.js\" \"test/**/*.js\"",
|
|
25
25
|
"swc": "swc",
|
|
26
26
|
"tsc": "tsc --noEmit",
|
|
27
|
-
"test": "jest --forceExit",
|
|
28
|
-
"test:cov": "jest --forceExit --coverage",
|
|
27
|
+
"test": "jest --forceExit --maxConcurrency=8 --runInBand ",
|
|
28
|
+
"test:cov": "jest --forceExit --coverage --maxConcurrency=8 --runInBand ",
|
|
29
29
|
"cov:show": "./coverage/lcov-report/index.html"
|
|
30
30
|
},
|
|
31
31
|
"keywords": [
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"vue"
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@fdm-monster/client": "1.
|
|
42
|
+
"@fdm-monster/client": "1.4.0",
|
|
43
43
|
"@influxdata/influxdb-client": "1.33.2",
|
|
44
44
|
"@sentry/node": "7.74.0",
|
|
45
45
|
"adm-zip": "0.5.10",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"connect-history-api-fallback": "2.0.0",
|
|
53
53
|
"cookie-parser": "1.4.6",
|
|
54
54
|
"cors": "2.8.5",
|
|
55
|
+
"cross-env": "7.0.3",
|
|
55
56
|
"dotenv": "16.3.1",
|
|
56
57
|
"eventemitter2": "6.4.9",
|
|
57
58
|
"express": "4.18.2",
|
|
@@ -110,7 +111,6 @@
|
|
|
110
111
|
"@types/uuid": "9.0.5",
|
|
111
112
|
"chokidar": "3.5.3",
|
|
112
113
|
"concurrently": "8.2.1",
|
|
113
|
-
"cross-env": "7.0.3",
|
|
114
114
|
"eslint": "8.51.0",
|
|
115
115
|
"eslint-config-airbnb-base": "15.0.0",
|
|
116
116
|
"eslint-config-prettier": "9.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/middleware/exception.handler.ts"],"names":["exceptionHandler","err","req","res","next","isTest","process","env","NODE_ENV","AppConstants","defaultTestEnv","console","error","stack","response","data","isAxiosError","code","status","send","type","AuthenticationError","statusCode","message","AuthorizationError","HttpStatusCode","FORBIDDEN","permissions","roles","reason","ForbiddenError","PasswordChangeRequiredError","CONFLICT","NotFoundException","BadRequestException","ValidationException","name","errors","InternalServerException","ExternalServiceError"],"mappings":"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"}
|