@fastybird/smart-panel-backend 0.4.0-alpha.1 → 0.4.0-alpha.2

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.
Files changed (120) hide show
  1. package/dist/app.module.js +0 -17
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/common/filters/not-found-exception.filter.d.ts +4 -0
  4. package/dist/common/filters/not-found-exception.filter.js +22 -1
  5. package/dist/common/filters/not-found-exception.filter.js.map +1 -1
  6. package/dist/common/services/app-instance-holder.service.d.ts +1 -2
  7. package/dist/common/services/app-instance-holder.service.js.map +1 -1
  8. package/dist/common/utils/config.utils.d.ts +0 -1
  9. package/dist/common/utils/config.utils.js +1 -11
  10. package/dist/common/utils/config.utils.js.map +1 -1
  11. package/dist/main.js +15 -5
  12. package/dist/main.js.map +1 -1
  13. package/dist/migrations/1000000000000-InitialSetup.js +8 -0
  14. package/dist/migrations/1000000000000-InitialSetup.js.map +1 -1
  15. package/dist/modules/buddy/buddy.module.js +2 -1
  16. package/dist/modules/buddy/buddy.module.js.map +1 -1
  17. package/dist/modules/buddy/buddy.utils.d.ts +8 -0
  18. package/dist/modules/buddy/buddy.utils.js +49 -0
  19. package/dist/modules/buddy/buddy.utils.js.map +1 -1
  20. package/dist/modules/buddy/controllers/buddy-suggestions.controller.js +2 -2
  21. package/dist/modules/buddy/controllers/buddy-suggestions.controller.js.map +1 -1
  22. package/dist/modules/buddy/entities/buddy-conversation.entity.js +3 -3
  23. package/dist/modules/buddy/entities/buddy-conversation.entity.js.map +1 -1
  24. package/dist/modules/buddy/entities/buddy-message.entity.js +2 -2
  25. package/dist/modules/buddy/entities/buddy-message.entity.js.map +1 -1
  26. package/dist/modules/buddy/entities/buddy-suggestion.entity.d.ts +19 -0
  27. package/dist/modules/buddy/entities/buddy-suggestion.entity.js +93 -0
  28. package/dist/modules/buddy/entities/buddy-suggestion.entity.js.map +1 -0
  29. package/dist/modules/buddy/platforms/llm-provider.platform.d.ts +6 -0
  30. package/dist/modules/buddy/platforms/openai-sdk.utils.d.ts +2 -1
  31. package/dist/modules/buddy/platforms/openai-sdk.utils.js +12 -1
  32. package/dist/modules/buddy/platforms/openai-sdk.utils.js.map +1 -1
  33. package/dist/modules/buddy/services/buddy-conversation.service.js +23 -8
  34. package/dist/modules/buddy/services/buddy-conversation.service.js.map +1 -1
  35. package/dist/modules/buddy/services/heartbeat.service.js +1 -1
  36. package/dist/modules/buddy/services/heartbeat.service.js.map +1 -1
  37. package/dist/modules/buddy/services/llm-provider.service.js +2 -10
  38. package/dist/modules/buddy/services/llm-provider.service.js.map +1 -1
  39. package/dist/modules/buddy/services/module-reset.service.d.ts +3 -1
  40. package/dist/modules/buddy/services/module-reset.service.js +6 -1
  41. package/dist/modules/buddy/services/module-reset.service.js.map +1 -1
  42. package/dist/modules/buddy/services/pattern-detector.service.d.ts +4 -1
  43. package/dist/modules/buddy/services/pattern-detector.service.js +10 -3
  44. package/dist/modules/buddy/services/pattern-detector.service.js.map +1 -1
  45. package/dist/modules/buddy/services/scene-suggestion-evaluator.service.d.ts +4 -1
  46. package/dist/modules/buddy/services/scene-suggestion-evaluator.service.js +10 -4
  47. package/dist/modules/buddy/services/scene-suggestion-evaluator.service.js.map +1 -1
  48. package/dist/modules/buddy/services/stt-provider.service.js +2 -10
  49. package/dist/modules/buddy/services/stt-provider.service.js.map +1 -1
  50. package/dist/modules/buddy/services/suggestion-engine.service.d.ts +19 -13
  51. package/dist/modules/buddy/services/suggestion-engine.service.js +170 -103
  52. package/dist/modules/buddy/services/suggestion-engine.service.js.map +1 -1
  53. package/dist/modules/buddy/services/tts-provider.service.js +2 -10
  54. package/dist/modules/buddy/services/tts-provider.service.js.map +1 -1
  55. package/dist/modules/extensions/controllers/actions.controller.d.ts +9 -4
  56. package/dist/modules/extensions/controllers/actions.controller.js +63 -10
  57. package/dist/modules/extensions/controllers/actions.controller.js.map +1 -1
  58. package/dist/modules/extensions/extensions.module.js +3 -1
  59. package/dist/modules/extensions/extensions.module.js.map +1 -1
  60. package/dist/modules/extensions/extensions.openapi.d.ts +3 -3
  61. package/dist/modules/extensions/extensions.openapi.js +2 -0
  62. package/dist/modules/extensions/extensions.openapi.js.map +1 -1
  63. package/dist/modules/extensions/models/action.model.d.ts +13 -0
  64. package/dist/modules/extensions/models/action.model.js +87 -1
  65. package/dist/modules/extensions/models/action.model.js.map +1 -1
  66. package/dist/modules/extensions/models/actions-response.model.d.ts +4 -1
  67. package/dist/modules/extensions/models/actions-response.model.js +19 -1
  68. package/dist/modules/extensions/models/actions-response.model.js.map +1 -1
  69. package/dist/modules/extensions/services/action-audit.service.d.ts +21 -0
  70. package/dist/modules/extensions/services/action-audit.service.js +49 -0
  71. package/dist/modules/extensions/services/action-audit.service.js.map +1 -0
  72. package/dist/modules/extensions/services/extension-action-registry.service.d.ts +6 -1
  73. package/dist/modules/extensions/services/extension-action-registry.service.js +22 -3
  74. package/dist/modules/extensions/services/extension-action-registry.service.js.map +1 -1
  75. package/dist/modules/extensions/services/extension-action.interface.d.ts +3 -0
  76. package/dist/modules/extensions/services/extension-action.interface.js +3 -1
  77. package/dist/modules/extensions/services/extension-action.interface.js.map +1 -1
  78. package/dist/modules/swagger/commands/serve-swagger.command.d.ts +14 -0
  79. package/dist/modules/swagger/commands/serve-swagger.command.js +60 -0
  80. package/dist/modules/swagger/commands/serve-swagger.command.js.map +1 -0
  81. package/dist/modules/swagger/swagger.module.js +2 -0
  82. package/dist/modules/swagger/swagger.module.js.map +1 -1
  83. package/dist/modules/system/scripts/update-worker.sh +42 -32
  84. package/dist/modules/system/services/system-command.service.d.ts +7 -1
  85. package/dist/modules/system/services/system-command.service.js +24 -4
  86. package/dist/modules/system/services/system-command.service.js.map +1 -1
  87. package/dist/modules/system/services/update-executor.service.d.ts +4 -0
  88. package/dist/modules/system/services/update-executor.service.js +83 -0
  89. package/dist/modules/system/services/update-executor.service.js.map +1 -1
  90. package/dist/modules/system/system.constants.d.ts +2 -0
  91. package/dist/modules/system/system.constants.js +2 -0
  92. package/dist/modules/system/system.constants.js.map +1 -1
  93. package/dist/modules/system/system.module.js +6 -3
  94. package/dist/modules/system/system.module.js.map +1 -1
  95. package/dist/modules/users/controllers/users.controller.js +9 -0
  96. package/dist/modules/users/controllers/users.controller.js.map +1 -1
  97. package/dist/modules/users/dto/update-user.dto.d.ts +1 -0
  98. package/dist/modules/users/dto/update-user.dto.js +14 -1
  99. package/dist/modules/users/dto/update-user.dto.js.map +1 -1
  100. package/dist/modules/users/services/users.service.d.ts +1 -0
  101. package/dist/modules/users/services/users.service.js +10 -0
  102. package/dist/modules/users/services/users.service.js.map +1 -1
  103. package/dist/modules/websocket/gateway/websocket.gateway.js +5 -2
  104. package/dist/modules/websocket/gateway/websocket.gateway.js.map +1 -1
  105. package/dist/modules/websocket/services/command-event-registry.service.d.ts +3 -1
  106. package/dist/modules/websocket/services/command-event-registry.service.js +5 -4
  107. package/dist/modules/websocket/services/command-event-registry.service.js.map +1 -1
  108. package/dist/plugins/buddy-openai/platforms/openai.provider.js +1 -0
  109. package/dist/plugins/buddy-openai/platforms/openai.provider.js.map +1 -1
  110. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js +5 -0
  111. package/dist/plugins/devices-shelly-ng/delegates/delegates-manager.service.js.map +1 -1
  112. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.d.ts +1 -0
  113. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js +6 -4
  114. package/dist/plugins/devices-shelly-ng/delegates/shelly-device.delegate.js.map +1 -1
  115. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js +2 -1
  116. package/dist/plugins/devices-shelly-ng/services/shelly-ng.service.js.map +1 -1
  117. package/dist/plugins/simulator/services/simulator-actions.service.js +3 -0
  118. package/dist/plugins/simulator/services/simulator-actions.service.js.map +1 -1
  119. package/dist/tsconfig.build.tsbuildinfo +1 -1
  120. package/package.json +3 -2
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ServeSwaggerCommand = void 0;
13
+ const nest_commander_1 = require("nest-commander");
14
+ const common_1 = require("@nestjs/common");
15
+ const app_constants_1 = require("../../../app.constants");
16
+ const app_instance_holder_service_1 = require("../../../common/services/app-instance-holder.service");
17
+ const swagger_document_service_1 = require("../services/swagger-document.service");
18
+ let ServeSwaggerCommand = class ServeSwaggerCommand extends nest_commander_1.CommandRunner {
19
+ constructor(swaggerService, appHolder) {
20
+ super();
21
+ this.swaggerService = swaggerService;
22
+ this.appHolder = appHolder;
23
+ }
24
+ async run(_passedParams, options) {
25
+ const app = this.appHolder.getApp();
26
+ const port = options?.port ?? parseInt(process.env.FB_BACKEND_PORT || '3000', 10);
27
+ console.log('\x1b[36m📖 Starting Swagger UI server...\x1b[0m\n');
28
+ this.swaggerService.setup(app);
29
+ await app.listen(port, '0.0.0.0');
30
+ console.log(`\x1b[32m✅ Swagger UI available at http://localhost:${port}/${app_constants_1.API_PREFIX}/docs\x1b[0m`);
31
+ console.log('\x1b[90mPress Ctrl+C to stop\x1b[0m\n');
32
+ await new Promise((resolve) => {
33
+ process.on('SIGINT', resolve);
34
+ process.on('SIGTERM', resolve);
35
+ });
36
+ }
37
+ parsePort(val) {
38
+ return parseInt(val, 10);
39
+ }
40
+ };
41
+ exports.ServeSwaggerCommand = ServeSwaggerCommand;
42
+ __decorate([
43
+ (0, nest_commander_1.Option)({
44
+ flags: '-p, --port <port>',
45
+ description: 'Port to run the Swagger UI server on (default: FB_BACKEND_PORT or 3000)',
46
+ }),
47
+ __metadata("design:type", Function),
48
+ __metadata("design:paramtypes", [String]),
49
+ __metadata("design:returntype", Number)
50
+ ], ServeSwaggerCommand.prototype, "parsePort", null);
51
+ exports.ServeSwaggerCommand = ServeSwaggerCommand = __decorate([
52
+ (0, nest_commander_1.Command)({
53
+ name: 'swagger:serve',
54
+ description: 'Start a standalone Swagger UI server for API documentation',
55
+ }),
56
+ (0, common_1.Injectable)(),
57
+ __metadata("design:paramtypes", [swagger_document_service_1.SwaggerDocumentService,
58
+ app_instance_holder_service_1.AppInstanceHolder])
59
+ ], ServeSwaggerCommand);
60
+ //# sourceMappingURL=serve-swagger.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-swagger.command.js","sourceRoot":"","sources":["../../../../src/modules/swagger/commands/serve-swagger.command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mDAAgE;AAEhE,2CAA4C;AAE5C,0DAAoD;AACpD,sGAAyF;AACzF,mFAA8E;AAWvE,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,8BAAa;IACrD,YACkB,cAAsC,EACtC,SAA4B;QAE7C,KAAK,EAAE,CAAC;QAHS,mBAAc,GAAd,cAAc,CAAwB;QACtC,cAAS,GAAT,SAAS,CAAmB;IAG9C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,aAAuB,EAAE,OAA6B;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;QAElF,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QAEjE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/B,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAElC,OAAO,CAAC,GAAG,CAAC,sDAAsD,IAAI,IAAI,0BAAU,cAAc,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QAIrD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACJ,CAAC;IAMD,SAAS,CAAC,GAAW;QACpB,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;CACD,CAAA;AApCY,kDAAmB;AAiC/B;IAJC,IAAA,uBAAM,EAAC;QACP,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,yEAAyE;KACtF,CAAC;;;;oDAGD;8BAnCW,mBAAmB;IAL/B,IAAA,wBAAO,EAAC;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,4DAA4D;KACzE,CAAC;IACD,IAAA,mBAAU,GAAE;qCAGsB,iDAAsB;QAC3B,+CAAiB;GAHlC,mBAAmB,CAoC/B"}
@@ -10,6 +10,7 @@ exports.SwaggerModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const app_instance_holder_service_1 = require("../../common/services/app-instance-holder.service");
12
12
  const generate_openapi_command_1 = require("./commands/generate-openapi.command");
13
+ const serve_swagger_command_1 = require("./commands/serve-swagger.command");
13
14
  const extended_discriminator_service_1 = require("./services/extended-discriminator.service");
14
15
  const swagger_document_service_1 = require("./services/swagger-document.service");
15
16
  const swagger_models_registry_service_1 = require("./services/swagger-models-registry.service");
@@ -25,6 +26,7 @@ exports.SwaggerModule = SwaggerModule = __decorate([
25
26
  extended_discriminator_service_1.ExtendedDiscriminatorService,
26
27
  app_instance_holder_service_1.AppInstanceHolder,
27
28
  generate_openapi_command_1.GenerateOpenapiCommand,
29
+ serve_swagger_command_1.ServeSwaggerCommand,
28
30
  ],
29
31
  exports: [swagger_document_service_1.SwaggerDocumentService, swagger_models_registry_service_1.SwaggerModelsRegistryService, extended_discriminator_service_1.ExtendedDiscriminatorService, app_instance_holder_service_1.AppInstanceHolder],
30
32
  })
@@ -1 +1 @@
1
- {"version":3,"file":"swagger.module.js","sourceRoot":"","sources":["../../../src/modules/swagger/swagger.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAEhD,mGAAsF;AAEtF,kFAA6E;AAC7E,8FAAyF;AACzF,kFAA6E;AAC7E,gGAA0F;AAanF,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IAXzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACP,SAAS,EAAE;YACV,iDAAsB;YACtB,8DAA4B;YAC5B,6DAA4B;YAC5B,+CAAiB;YACjB,iDAAsB;SACtB;QACD,OAAO,EAAE,CAAC,iDAAsB,EAAE,8DAA4B,EAAE,6DAA4B,EAAE,+CAAiB,CAAC;KAChH,CAAC;GACW,aAAa,CAAG"}
1
+ {"version":3,"file":"swagger.module.js","sourceRoot":"","sources":["../../../src/modules/swagger/swagger.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAEhD,mGAAsF;AAEtF,kFAA6E;AAC7E,4EAAuE;AACvE,8FAAyF;AACzF,kFAA6E;AAC7E,gGAA0F;AAcnF,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IAZzB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACP,SAAS,EAAE;YACV,iDAAsB;YACtB,8DAA4B;YAC5B,6DAA4B;YAC5B,+CAAiB;YACjB,iDAAsB;YACtB,2CAAmB;SACnB;QACD,OAAO,EAAE,CAAC,iDAAsB,EAAE,8DAA4B,EAAE,6DAA4B,EAAE,+CAAiB,CAAC;KAChH,CAAC;GACW,aAAa,CAAG"}
@@ -60,15 +60,27 @@ trap cleanup EXIT
60
60
  # Image-based update (Raspbian image installs)
61
61
  # ──────────────────────────────────────────────────────────────
62
62
  if [ "$INSTALL_TYPE" = "image" ]; then
63
- # Verify passwordless sudo is available (required for systemctl, chown, ln)
64
- if ! sudo -n true 2>/dev/null; then
65
- update_status "failed" "failed" "Passwordless sudo is not available for this user"
66
- exit 1
67
- fi
68
63
  # Strip leading 'v' prefix if present to avoid double-prefixed dirs like vv1.0.0
69
64
  CLEAN_VERSION="${VERSION#v}"
70
65
  NEW_VERSION_DIR="${IMAGE_BASE_DIR}/v${CLEAN_VERSION}"
71
66
  CURRENT_LINK="${IMAGE_BASE_DIR}/current"
67
+
68
+ # Verify passwordless sudo is available for all required commands.
69
+ # Without -n, sudo may hang waiting for a password on a detached process.
70
+ SUDO_CMDS=(
71
+ "/usr/bin/true"
72
+ "/usr/bin/systemctl stop smart-panel"
73
+ "/usr/bin/systemctl start smart-panel"
74
+ "/usr/bin/chown -R smart-panel:smart-panel ${NEW_VERSION_DIR}"
75
+ "/usr/bin/ln -sfn ${NEW_VERSION_DIR} ${CURRENT_LINK}"
76
+ )
77
+
78
+ for cmd in "${SUDO_CMDS[@]}"; do
79
+ if ! sudo -n -l $cmd >/dev/null 2>&1; then
80
+ update_status "failed" "failed" "Passwordless sudo not available for: $cmd"
81
+ exit 1
82
+ fi
83
+ done
72
84
  PREVIOUS_TARGET=""
73
85
 
74
86
  # Save the current version for rollback
@@ -122,26 +134,24 @@ if [ "$INSTALL_TYPE" = "image" ]; then
122
134
  exit 1
123
135
  }
124
136
 
125
- # ── Install dependencies ──
137
+ # ── Verify dependencies ──
126
138
  cd "$NEW_VERSION_DIR"
127
139
 
128
- pnpm install --prod --ignore-scripts 2>&1 || {
129
- rm -rf "$NEW_VERSION_DIR"
130
- update_status "failed" "failed" "pnpm install failed"
131
- exit 1
132
- }
133
-
134
- # ── Rebuild native modules ──
135
- if [ -x "${IMAGE_BASE_DIR}/rebuild-native.sh" ]; then
136
- "${IMAGE_BASE_DIR}/rebuild-native.sh" "${NEW_VERSION_DIR}" 2>&1 || {
140
+ # The release tarball includes pre-built node_modules with native modules
141
+ # compiled for ARM64 by the CI arm-runner. Only install as fallback if
142
+ # node_modules is missing (e.g. manually extracted tarball without deps).
143
+ if [ ! -d "node_modules" ]; then
144
+ npm install --omit=dev 2>&1 || {
137
145
  rm -rf "$NEW_VERSION_DIR"
138
- update_status "failed" "failed" "Native module rebuild failed"
146
+ update_status "failed" "failed" "npm install failed"
139
147
  exit 1
140
148
  }
141
149
  fi
142
150
 
143
151
  # Set ownership
144
- sudo chown -R smart-panel:smart-panel "$NEW_VERSION_DIR" || {
152
+ # All sudo calls use -n (non-interactive) to fail fast instead of
153
+ # hanging on password prompt when running as a detached process.
154
+ sudo -n chown -R smart-panel:smart-panel "$NEW_VERSION_DIR" || {
145
155
  rm -rf "$NEW_VERSION_DIR"
146
156
  update_status "failed" "failed" "Failed to set ownership on ${NEW_VERSION_DIR}"
147
157
  exit 1
@@ -149,15 +159,15 @@ if [ "$INSTALL_TYPE" = "image" ]; then
149
159
 
150
160
  # ── Stop service ──
151
161
  update_status "stopping" "stopping"
152
- sudo systemctl stop smart-panel 2>/dev/null || true
162
+ sudo -n systemctl stop smart-panel 2>/dev/null || true
153
163
 
154
164
  # ── Switch symlink (atomic on same filesystem) ──
155
- sudo ln -sfn "$NEW_VERSION_DIR" "$CURRENT_LINK" || {
165
+ sudo -n ln -sfn "$NEW_VERSION_DIR" "$CURRENT_LINK" || {
156
166
  # Revert on failure
157
167
  if [ -n "$PREVIOUS_TARGET" ]; then
158
- sudo ln -sfn "$PREVIOUS_TARGET" "$CURRENT_LINK"
168
+ sudo -n ln -sfn "$PREVIOUS_TARGET" "$CURRENT_LINK"
159
169
  fi
160
- sudo systemctl start smart-panel 2>/dev/null || true
170
+ sudo -n systemctl start smart-panel 2>/dev/null || true
161
171
  update_status "failed" "failed" "Failed to switch version symlink"
162
172
  exit 1
163
173
  }
@@ -178,10 +188,10 @@ if [ "$INSTALL_TYPE" = "image" ]; then
178
188
  ) 2>&1 || {
179
189
  # Migration failed — revert symlink if possible
180
190
  update_status "stopping" "stopping"
181
- sudo systemctl stop smart-panel 2>/dev/null || true
191
+ sudo -n systemctl stop smart-panel 2>/dev/null || true
182
192
 
183
193
  if [ -n "$PREVIOUS_TARGET" ]; then
184
- if sudo ln -sfn "$PREVIOUS_TARGET" "$CURRENT_LINK"; then
194
+ if sudo -n ln -sfn "$PREVIOUS_TARGET" "$CURRENT_LINK"; then
185
195
  rm -rf "$NEW_VERSION_DIR"
186
196
  update_status "failed" "failed" "Database migration failed — reverted to previous version"
187
197
  else
@@ -193,18 +203,18 @@ if [ "$INSTALL_TYPE" = "image" ]; then
193
203
  update_status "failed" "failed" "Database migration failed — no previous version to revert to"
194
204
  fi
195
205
 
196
- sudo systemctl start smart-panel 2>/dev/null || true
206
+ sudo -n systemctl start smart-panel 2>/dev/null || true
197
207
  exit 1
198
208
  }
199
209
  fi
200
210
 
201
211
  # ── Start service ──
202
212
  update_status "starting" "starting"
203
- sudo systemctl start smart-panel 2>&1 || {
213
+ sudo -n systemctl start smart-panel 2>&1 || {
204
214
  # Try to revert if start fails
205
215
  if [ -n "$PREVIOUS_TARGET" ]; then
206
- sudo ln -sfn "$PREVIOUS_TARGET" "$CURRENT_LINK"
207
- sudo systemctl start smart-panel 2>/dev/null || true
216
+ sudo -n ln -sfn "$PREVIOUS_TARGET" "$CURRENT_LINK"
217
+ sudo -n systemctl start smart-panel 2>/dev/null || true
208
218
  fi
209
219
  update_status "failed" "failed" "Failed to start service after update"
210
220
  exit 1
@@ -243,7 +253,7 @@ update_status "downloading" "downloading"
243
253
 
244
254
  # Stop the service
245
255
  update_status "stopping" "stopping"
246
- sudo systemctl stop smart-panel 2>/dev/null || true
256
+ sudo -n systemctl stop smart-panel 2>/dev/null || true
247
257
 
248
258
  # Install the update
249
259
  update_status "installing" "installing"
@@ -251,13 +261,13 @@ update_status "installing" "installing"
251
261
  if [ "$VERSION" = "latest" ]; then
252
262
  npm update -g @fastybird/smart-panel 2>&1 || {
253
263
  update_status "failed" "failed" "npm update failed"
254
- sudo systemctl start smart-panel 2>/dev/null || true
264
+ sudo -n systemctl start smart-panel 2>/dev/null || true
255
265
  exit 1
256
266
  }
257
267
  else
258
268
  npm install -g "@fastybird/smart-panel@$VERSION" 2>&1 || {
259
269
  update_status "failed" "failed" "npm install failed for version $VERSION"
260
- sudo systemctl start smart-panel 2>/dev/null || true
270
+ sudo -n systemctl start smart-panel 2>/dev/null || true
261
271
  exit 1
262
272
  }
263
273
  fi
@@ -273,14 +283,14 @@ if [ -f "$(npm root -g)/@fastybird/smart-panel/dataSource.js" ]; then
273
283
  migration:run \
274
284
  -d "$(npm root -g)/@fastybird/smart-panel/dataSource.js" 2>&1 || {
275
285
  update_status "failed" "failed" "Database migration failed"
276
- sudo systemctl start smart-panel 2>/dev/null || true
286
+ sudo -n systemctl start smart-panel 2>/dev/null || true
277
287
  exit 1
278
288
  }
279
289
  fi
280
290
 
281
291
  # Start the service
282
292
  update_status "starting" "starting"
283
- sudo systemctl start smart-panel 2>&1 || {
293
+ sudo -n systemctl start smart-panel 2>&1 || {
284
294
  update_status "failed" "failed" "Failed to start service after update"
285
295
  exit 1
286
296
  }
@@ -1,6 +1,7 @@
1
1
  import { OnModuleInit } from '@nestjs/common';
2
2
  import { ModuleRef } from '@nestjs/core';
3
3
  import { EventEmitter2 } from '@nestjs/event-emitter';
4
+ import { AppInstanceHolder } from '../../../common/services/app-instance-holder.service';
4
5
  import { TokensService } from '../../auth/services/tokens.service';
5
6
  import { PluginServiceManagerService } from '../../extensions/services/plugin-service-manager.service';
6
7
  import { PlatformService } from '../../platform/services/platform.service';
@@ -13,10 +14,11 @@ export declare class SystemCommandService implements OnModuleInit {
13
14
  private readonly platformService;
14
15
  private readonly tokensService;
15
16
  private readonly eventEmitter;
17
+ private readonly appInstanceHolder;
16
18
  private readonly logger;
17
19
  private displaysService;
18
20
  private permitJoinService;
19
- constructor(moduleRef: ModuleRef, factoryResetRegistry: FactoryResetRegistryService, pluginServiceManager: PluginServiceManagerService, platformService: PlatformService, tokensService: TokensService, eventEmitter: EventEmitter2);
21
+ constructor(moduleRef: ModuleRef, factoryResetRegistry: FactoryResetRegistryService, pluginServiceManager: PluginServiceManagerService, platformService: PlatformService, tokensService: TokensService, eventEmitter: EventEmitter2, appInstanceHolder: AppInstanceHolder);
20
22
  onModuleInit(): void;
21
23
  reboot(user: ClientUserDto): Promise<{
22
24
  success: boolean;
@@ -26,6 +28,10 @@ export declare class SystemCommandService implements OnModuleInit {
26
28
  success: boolean;
27
29
  reason?: string;
28
30
  }>;
31
+ restartService(user: ClientUserDto): Promise<{
32
+ success: boolean;
33
+ reason?: string;
34
+ }>;
29
35
  factoryReset(user: ClientUserDto): Promise<{
30
36
  success: boolean;
31
37
  reason?: string;
@@ -14,6 +14,7 @@ const common_1 = require("@nestjs/common");
14
14
  const core_1 = require("@nestjs/core");
15
15
  const event_emitter_1 = require("@nestjs/event-emitter");
16
16
  const logger_1 = require("../../../common/logger");
17
+ const app_instance_holder_service_1 = require("../../../common/services/app-instance-holder.service");
17
18
  const auth_constants_1 = require("../../auth/auth.constants");
18
19
  const tokens_service_1 = require("../../auth/services/tokens.service");
19
20
  const displays_constants_1 = require("../../displays/displays.constants");
@@ -25,13 +26,14 @@ const platform_service_1 = require("../../platform/services/platform.service");
25
26
  const system_constants_1 = require("../system.constants");
26
27
  const factory_reset_registry_service_1 = require("./factory-reset-registry.service");
27
28
  let SystemCommandService = class SystemCommandService {
28
- constructor(moduleRef, factoryResetRegistry, pluginServiceManager, platformService, tokensService, eventEmitter) {
29
+ constructor(moduleRef, factoryResetRegistry, pluginServiceManager, platformService, tokensService, eventEmitter, appInstanceHolder) {
29
30
  this.moduleRef = moduleRef;
30
31
  this.factoryResetRegistry = factoryResetRegistry;
31
32
  this.pluginServiceManager = pluginServiceManager;
32
33
  this.platformService = platformService;
33
34
  this.tokensService = tokensService;
34
35
  this.eventEmitter = eventEmitter;
36
+ this.appInstanceHolder = appInstanceHolder;
35
37
  this.logger = (0, logger_1.createExtensionLogger)(system_constants_1.SYSTEM_MODULE_NAME, 'SystemCommandService');
36
38
  }
37
39
  onModuleInit() {
@@ -58,7 +60,7 @@ let SystemCommandService = class SystemCommandService {
58
60
  this.eventEmitter.emit(system_constants_1.EventType.SYSTEM_REBOOT, {
59
61
  triggered_by: user.id,
60
62
  status: 'err',
61
- reason: 'no supported',
63
+ reason: 'not supported',
62
64
  });
63
65
  return {
64
66
  success: false,
@@ -96,7 +98,7 @@ let SystemCommandService = class SystemCommandService {
96
98
  this.eventEmitter.emit(system_constants_1.EventType.SYSTEM_POWER_OFF, {
97
99
  triggered_by: user.id,
98
100
  status: 'err',
99
- reason: 'no supported',
101
+ reason: 'not supported',
100
102
  });
101
103
  return {
102
104
  success: false,
@@ -114,6 +116,23 @@ let SystemCommandService = class SystemCommandService {
114
116
  };
115
117
  }
116
118
  }
119
+ async restartService(user) {
120
+ this.logger.log('[SYSTEM] Service restart requested — performing graceful shutdown');
121
+ try {
122
+ this.eventEmitter.emit(system_constants_1.EventType.SYSTEM_SERVICE_RESTART, {
123
+ triggered_by: user.id,
124
+ status: 'processing',
125
+ });
126
+ await new Promise((resolve) => setTimeout(resolve, 500));
127
+ const app = this.appInstanceHolder.getApp();
128
+ await app.close();
129
+ }
130
+ catch (error) {
131
+ this.logger.warn(`Error during graceful shutdown: ${error.message}`);
132
+ }
133
+ process.exit(0);
134
+ return { success: true };
135
+ }
117
136
  async factoryReset(user) {
118
137
  try {
119
138
  this.eventEmitter.emit(system_constants_1.EventType.SYSTEM_FACTORY_RESET, {
@@ -194,6 +213,7 @@ exports.SystemCommandService = SystemCommandService = __decorate([
194
213
  plugin_service_manager_service_1.PluginServiceManagerService,
195
214
  platform_service_1.PlatformService,
196
215
  tokens_service_1.TokensService,
197
- event_emitter_1.EventEmitter2])
216
+ event_emitter_1.EventEmitter2,
217
+ app_instance_holder_service_1.AppInstanceHolder])
198
218
  ], SystemCommandService);
199
219
  //# sourceMappingURL=system-command.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-command.service.js","sourceRoot":"","sources":["../../../../src/modules/system/services/system-command.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-command.service.js","sourceRoot":"","sources":["../../../../src/modules/system/services/system-command.service.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,13 @@ export interface UpdateProgressFile {
12
12
  export declare class UpdateExecutorService implements OnModuleInit {
13
13
  private readonly updateService;
14
14
  private readonly logger;
15
+ private statusPollTimer;
16
+ private progressHighWaterMark;
15
17
  constructor(updateService: UpdateService);
16
18
  onModuleInit(): void;
17
19
  private checkPendingUpdateStatus;
18
20
  startUpdate(targetVersion: string): Promise<void>;
21
+ private startStatusPolling;
22
+ private stopStatusPolling;
19
23
  private writeStatusFile;
20
24
  }
@@ -51,10 +51,22 @@ const system_constants_1 = require("../system.constants");
51
51
  const update_service_1 = require("./update.service");
52
52
  const STATUS_FILE = '/var/lib/smart-panel/update-status.json';
53
53
  const UPDATE_TIMEOUT_MS = 10 * 60 * 1000;
54
+ const STATUS_POLL_INTERVAL_MS = 3_000;
55
+ const STATUS_POLL_MAX_MS = UPDATE_TIMEOUT_MS + 30_000;
56
+ const PHASE_PROGRESS = {
57
+ downloading: 20,
58
+ installing: 45,
59
+ stopping: 45,
60
+ migrating: 65,
61
+ starting: 85,
62
+ complete: 100,
63
+ };
54
64
  let UpdateExecutorService = class UpdateExecutorService {
55
65
  constructor(updateService) {
56
66
  this.updateService = updateService;
57
67
  this.logger = (0, logger_1.createExtensionLogger)(system_constants_1.SYSTEM_MODULE_NAME, 'UpdateExecutorService');
68
+ this.statusPollTimer = null;
69
+ this.progressHighWaterMark = 0;
58
70
  }
59
71
  onModuleInit() {
60
72
  this.checkPendingUpdateStatus();
@@ -195,6 +207,7 @@ let UpdateExecutorService = class UpdateExecutorService {
195
207
  });
196
208
  child.unref();
197
209
  this.logger.log(`Update worker spawned for version ${targetVersion} (PID: ${child.pid}, type: ${installType})`);
210
+ this.startStatusPolling();
198
211
  }
199
212
  catch (error) {
200
213
  const err = error;
@@ -216,6 +229,76 @@ let UpdateExecutorService = class UpdateExecutorService {
216
229
  throw error;
217
230
  }
218
231
  }
232
+ startStatusPolling() {
233
+ this.stopStatusPolling();
234
+ this.progressHighWaterMark = 10;
235
+ const startedAt = Date.now();
236
+ this.statusPollTimer = setInterval(() => {
237
+ if (Date.now() - startedAt > STATUS_POLL_MAX_MS) {
238
+ this.logger.error('Update status polling timed out');
239
+ this.updateService.setStatus({
240
+ status: system_constants_1.UpdateStatusType.FAILED,
241
+ phase: system_constants_1.UpdatePhase.FAILED,
242
+ progressPercent: null,
243
+ message: null,
244
+ error: 'Update timed out — no completion signal received',
245
+ });
246
+ this.updateService.releaseUpdateLock();
247
+ this.stopStatusPolling();
248
+ return;
249
+ }
250
+ if (!(0, fs_1.existsSync)(STATUS_FILE)) {
251
+ return;
252
+ }
253
+ try {
254
+ const raw = (0, fs_1.readFileSync)(STATUS_FILE, 'utf-8');
255
+ const fileStatus = JSON.parse(raw);
256
+ if (fileStatus.status === system_constants_1.UpdateStatusType.FAILED) {
257
+ this.logger.error(`Update worker failed: ${fileStatus.error ?? 'unknown error'}`);
258
+ this.updateService.setStatus({
259
+ status: system_constants_1.UpdateStatusType.FAILED,
260
+ phase: system_constants_1.UpdatePhase.FAILED,
261
+ progressPercent: null,
262
+ message: null,
263
+ error: fileStatus.error ?? 'Update failed with unknown error',
264
+ });
265
+ this.updateService.releaseUpdateLock();
266
+ this.stopStatusPolling();
267
+ }
268
+ else if (fileStatus.status === system_constants_1.UpdateStatusType.COMPLETE) {
269
+ this.updateService.setStatus({
270
+ status: system_constants_1.UpdateStatusType.COMPLETE,
271
+ phase: system_constants_1.UpdatePhase.COMPLETE,
272
+ progressPercent: 100,
273
+ message: `Successfully updated to ${fileStatus.targetVersion}`,
274
+ error: null,
275
+ });
276
+ this.updateService.releaseUpdateLock();
277
+ this.stopStatusPolling();
278
+ }
279
+ else {
280
+ const rawProgress = PHASE_PROGRESS[fileStatus.phase] ?? 10;
281
+ const progress = Math.max(this.progressHighWaterMark, rawProgress);
282
+ this.progressHighWaterMark = progress;
283
+ this.updateService.setStatus({
284
+ status: fileStatus.status ?? system_constants_1.UpdateStatusType.DOWNLOADING,
285
+ phase: fileStatus.phase ?? system_constants_1.UpdatePhase.DOWNLOADING,
286
+ progressPercent: progress,
287
+ message: `Update in progress: ${fileStatus.phase}...`,
288
+ error: null,
289
+ });
290
+ }
291
+ }
292
+ catch {
293
+ }
294
+ }, STATUS_POLL_INTERVAL_MS);
295
+ }
296
+ stopStatusPolling() {
297
+ if (this.statusPollTimer) {
298
+ clearInterval(this.statusPollTimer);
299
+ this.statusPollTimer = null;
300
+ }
301
+ }
219
302
  writeStatusFile(status) {
220
303
  try {
221
304
  const dir = (0, path_1.dirname)(STATUS_FILE);
@@ -1 +1 @@
1
- {"version":3,"file":"update-executor.service.js","sourceRoot":"","sources":["../../../../src/modules/system/services/update-executor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-executor.service.js","sourceRoot":"","sources":["../../../../src/modules/system/services/update-executor.service.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,11 @@ export declare enum EventType {
11
11
  SYSTEM_REBOOT = "SystemModule.System.Reboot",
12
12
  SYSTEM_POWER_OFF = "SystemModule.System.PowerOff",
13
13
  SYSTEM_FACTORY_RESET = "SystemModule.System.FactoryReset",
14
+ SYSTEM_SERVICE_RESTART = "SystemModule.System.ServiceRestart",
14
15
  SYSTEM_REBOOT_SET = "SystemModule.System.Reboot.Set",
15
16
  SYSTEM_POWER_OFF_SET = "SystemModule.System.PowerOff.Set",
16
17
  SYSTEM_FACTORY_RESET_SET = "SystemModule.System.FactoryReset.Set",
18
+ SYSTEM_SERVICE_RESTART_SET = "SystemModule.System.ServiceRestart.Set",
17
19
  DISPLAY_REBOOT = "SystemModule.Display.Reboot",
18
20
  DISPLAY_POWER_OFF = "SystemModule.Display.PowerOff",
19
21
  DISPLAY_FACTORY_RESET = "SystemModule.Display.FactoryReset",
@@ -16,9 +16,11 @@ var EventType;
16
16
  EventType["SYSTEM_REBOOT"] = "SystemModule.System.Reboot";
17
17
  EventType["SYSTEM_POWER_OFF"] = "SystemModule.System.PowerOff";
18
18
  EventType["SYSTEM_FACTORY_RESET"] = "SystemModule.System.FactoryReset";
19
+ EventType["SYSTEM_SERVICE_RESTART"] = "SystemModule.System.ServiceRestart";
19
20
  EventType["SYSTEM_REBOOT_SET"] = "SystemModule.System.Reboot.Set";
20
21
  EventType["SYSTEM_POWER_OFF_SET"] = "SystemModule.System.PowerOff.Set";
21
22
  EventType["SYSTEM_FACTORY_RESET_SET"] = "SystemModule.System.FactoryReset.Set";
23
+ EventType["SYSTEM_SERVICE_RESTART_SET"] = "SystemModule.System.ServiceRestart.Set";
22
24
  EventType["DISPLAY_REBOOT"] = "SystemModule.Display.Reboot";
23
25
  EventType["DISPLAY_POWER_OFF"] = "SystemModule.Display.PowerOff";
24
26
  EventType["DISPLAY_FACTORY_RESET"] = "SystemModule.Display.FactoryReset";
@@ -1 +1 @@
1
- {"version":3,"file":"system.constants.js","sourceRoot":"","sources":["../../../src/modules/system/system.constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system.constants.js","sourceRoot":"","sources":["../../../src/modules/system/system.constants.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ const stats_module_1 = require("../stats/stats.module");
26
26
  const storage_module_1 = require("../storage/storage.module");
27
27
  const api_tag_decorator_1 = require("../swagger/decorators/api-tag.decorator");
28
28
  const swagger_models_registry_service_1 = require("../swagger/services/swagger-models-registry.service");
29
+ const users_constants_1 = require("../users/users.constants");
29
30
  const users_module_1 = require("../users/users.module");
30
31
  const command_event_registry_service_1 = require("../websocket/services/command-event-registry.service");
31
32
  const websocket_module_1 = require("../websocket/websocket.module");
@@ -67,9 +68,11 @@ let SystemModule = class SystemModule {
67
68
  class: config_model_1.SystemConfigModel,
68
69
  configDto: update_config_dto_1.UpdateSystemConfigDto,
69
70
  });
70
- this.eventRegistry.register(system_constants_1.EventType.SYSTEM_REBOOT_SET, system_constants_1.EventHandlerName.INTERNAL_PLATFORM_ACTION, async (user, _payload) => this.systemCommandService.reboot(user));
71
- this.eventRegistry.register(system_constants_1.EventType.SYSTEM_POWER_OFF_SET, system_constants_1.EventHandlerName.INTERNAL_PLATFORM_ACTION, async (user, _payload) => this.systemCommandService.powerOff(user));
72
- this.eventRegistry.register(system_constants_1.EventType.SYSTEM_FACTORY_RESET_SET, system_constants_1.EventHandlerName.INTERNAL_PLATFORM_ACTION, async (user, _payload) => this.systemCommandService.factoryReset(user));
71
+ const adminRoles = [users_constants_1.UserRole.ADMIN, users_constants_1.UserRole.OWNER];
72
+ this.eventRegistry.register(system_constants_1.EventType.SYSTEM_REBOOT_SET, system_constants_1.EventHandlerName.INTERNAL_PLATFORM_ACTION, async (user, _payload) => this.systemCommandService.reboot(user), adminRoles);
73
+ this.eventRegistry.register(system_constants_1.EventType.SYSTEM_POWER_OFF_SET, system_constants_1.EventHandlerName.INTERNAL_PLATFORM_ACTION, async (user, _payload) => this.systemCommandService.powerOff(user), adminRoles);
74
+ this.eventRegistry.register(system_constants_1.EventType.SYSTEM_SERVICE_RESTART_SET, system_constants_1.EventHandlerName.INTERNAL_PLATFORM_ACTION, async (user, _payload) => this.systemCommandService.restartService(user), adminRoles);
75
+ this.eventRegistry.register(system_constants_1.EventType.SYSTEM_FACTORY_RESET_SET, system_constants_1.EventHandlerName.INTERNAL_PLATFORM_ACTION, async (user, _payload) => this.systemCommandService.factoryReset(user), adminRoles);
73
76
  this.eventRegistry.register(system_constants_1.EventType.DISPLAY_REBOOT_SET, system_constants_1.EventHandlerName.INTERNAL_DISPLAY_ACTION, (user, _payload) => Promise.resolve(this.displayCommandService.displayReboot(user)));
74
77
  this.eventRegistry.register(system_constants_1.EventType.DISPLAY_POWER_OFF_SET, system_constants_1.EventHandlerName.INTERNAL_DISPLAY_ACTION, (user, _payload) => Promise.resolve(this.displayCommandService.displayPowerOff(user)));
75
78
  this.eventRegistry.register(system_constants_1.EventType.DISPLAY_FACTORY_RESET_SET, system_constants_1.EventHandlerName.INTERNAL_DISPLAY_ACTION, async (user, _payload) => this.displayCommandService.displayFactoryReset(user));