@fastybird/smart-panel-backend 1.1.0-alpha.3 → 1.1.0-alpha.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.
Files changed (62) hide show
  1. package/dist/common/filters/conflict-exception.filter.d.ts +6 -0
  2. package/dist/common/filters/conflict-exception.filter.js +59 -0
  3. package/dist/common/filters/conflict-exception.filter.js.map +1 -0
  4. package/dist/common/filters/global-error.filter.js +1 -4
  5. package/dist/common/filters/global-error.filter.js.map +1 -1
  6. package/dist/common/filters/global-filters.d.ts +3 -0
  7. package/dist/common/filters/global-filters.js +22 -0
  8. package/dist/common/filters/global-filters.js.map +1 -0
  9. package/dist/common/filters/unprocessable-entity-exception.filter.d.ts +1 -0
  10. package/dist/common/filters/unprocessable-entity-exception.filter.js +15 -3
  11. package/dist/common/filters/unprocessable-entity-exception.filter.js.map +1 -1
  12. package/dist/main.js +2 -7
  13. package/dist/main.js.map +1 -1
  14. package/dist/modules/platform/services/platform.service.d.ts +13 -4
  15. package/dist/modules/platform/services/platform.service.js +57 -35
  16. package/dist/modules/platform/services/platform.service.js.map +1 -1
  17. package/dist/modules/remote-access/dto/update-config.dto.js +5 -0
  18. package/dist/modules/remote-access/dto/update-config.dto.js.map +1 -1
  19. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js +5 -2
  20. package/dist/modules/remote-access/validators/is-remote-access-url.validator.js.map +1 -1
  21. package/dist/modules/system/services/privileged-worker.service.d.ts +10 -0
  22. package/dist/modules/system/services/privileged-worker.service.js +137 -11
  23. package/dist/modules/system/services/privileged-worker.service.js.map +1 -1
  24. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js +6 -9
  25. package/dist/plugins/devices-shelly-ng/devices-shelly-ng.constants.js.map +1 -1
  26. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.d.ts +1 -0
  27. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js +26 -10
  28. package/dist/plugins/remote-access-tailscale/controllers/setup.controller.js.map +1 -1
  29. package/dist/plugins/remote-access-tailscale/controllers/status.controller.d.ts +6 -1
  30. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js +28 -3
  31. package/dist/plugins/remote-access-tailscale/controllers/status.controller.js.map +1 -1
  32. package/dist/plugins/remote-access-tailscale/models/status.model.d.ts +19 -0
  33. package/dist/plugins/remote-access-tailscale/models/status.model.js +158 -1
  34. package/dist/plugins/remote-access-tailscale/models/status.model.js.map +1 -1
  35. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.d.ts +2 -0
  36. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js +3 -1
  37. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.constants.js.map +1 -1
  38. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.d.ts +13 -0
  39. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js +27 -0
  40. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.js.map +1 -0
  41. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.d.ts +2 -2
  42. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js +2 -0
  43. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.openapi.js.map +1 -1
  44. package/dist/plugins/remote-access-tailscale/remote-access-tailscale.plugin.js +1 -1
  45. package/dist/plugins/remote-access-tailscale/scripts/tailscale-setup.sh +61 -0
  46. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.d.ts +9 -0
  47. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js +12 -0
  48. package/dist/plugins/remote-access-tailscale/services/tailscale-cli.service.js.map +1 -1
  49. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.d.ts +1 -0
  50. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js +27 -2
  51. package/dist/plugins/remote-access-tailscale/services/tailscale-login.service.js.map +1 -1
  52. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.d.ts +30 -1
  53. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js +300 -30
  54. package/dist/plugins/remote-access-tailscale/services/tailscale-node-managed.service.js.map +1 -1
  55. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.d.ts +8 -3
  56. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js +39 -12
  57. package/dist/plugins/remote-access-tailscale/services/tailscale-serve.service.js.map +1 -1
  58. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.d.ts +14 -5
  59. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js +51 -16
  60. package/dist/plugins/remote-access-tailscale/services/tailscale-setup.service.js.map +1 -1
  61. package/dist/tsconfig.build.tsbuildinfo +1 -1
  62. package/package.json +2 -2
@@ -17,6 +17,7 @@ const common_1 = require("@nestjs/common");
17
17
  const swagger_1 = require("@nestjs/swagger");
18
18
  const logger_1 = require("../../../common/logger");
19
19
  const transform_utils_1 = require("../../../common/utils/transform.utils");
20
+ const platform_service_1 = require("../../../modules/platform/services/platform.service");
20
21
  const provider_model_1 = require("../../../modules/remote-access/models/provider.model");
21
22
  const api_documentation_decorator_1 = require("../../../modules/swagger/decorators/api-documentation.decorator");
22
23
  const roles_guard_1 = require("../../../modules/users/guards/roles.guard");
@@ -26,18 +27,22 @@ const remote_access_tailscale_constants_1 = require("../remote-access-tailscale.
26
27
  const tailscale_login_service_1 = require("../services/tailscale-login.service");
27
28
  const tailscale_node_managed_service_1 = require("../services/tailscale-node-managed.service");
28
29
  const tailscale_provider_service_1 = require("../services/tailscale-provider.service");
30
+ const tailscale_setup_service_1 = require("../services/tailscale-setup.service");
29
31
  let StatusController = class StatusController {
30
- constructor(providerService, nodeManagedService, loginService) {
32
+ constructor(providerService, nodeManagedService, loginService, setupService, platformService) {
31
33
  this.providerService = providerService;
32
34
  this.nodeManagedService = nodeManagedService;
33
35
  this.loginService = loginService;
36
+ this.setupService = setupService;
37
+ this.platformService = platformService;
34
38
  this.logger = (0, logger_1.createExtensionLogger)(remote_access_tailscale_constants_1.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME, 'StatusController');
35
39
  }
36
40
  async getStatus(res) {
37
41
  this.logger.debug('Fetching Tailscale node status');
38
- const [status, requirements] = await Promise.all([
42
+ const [status, requirements, privilegedWorkerSupport] = await Promise.all([
39
43
  this.providerService.getStatus(),
40
44
  this.nodeManagedService.evaluateRequirements(),
45
+ this.platformService.getPrivilegedWorkerSupport(),
41
46
  ]);
42
47
  const data = new status_model_1.RemoteAccessTailscalePluginStatusModel();
43
48
  data.type = status.type;
@@ -49,6 +54,11 @@ let StatusController = class StatusController {
49
54
  data.advisories = (0, transform_utils_1.toInstance)(provider_model_1.RemoteAccessAdvisoryModel, status.advisories);
50
55
  data.updatedAt = status.updatedAt;
51
56
  data.requirements = (0, transform_utils_1.toInstance)(status_model_1.RemoteAccessTailscalePluginRequirementModel, requirements);
57
+ data.setup = this.buildSetupJobModel();
58
+ const privilegedSetup = new status_model_1.RemoteAccessTailscalePluginPrivilegedSetupModel();
59
+ privilegedSetup.available = privilegedWorkerSupport.supported;
60
+ privilegedSetup.reason = privilegedWorkerSupport.reason;
61
+ data.privilegedSetup = privilegedSetup;
52
62
  if (data.state === 'pending-auth') {
53
63
  const pending = this.loginService.getPendingInteractiveAuth();
54
64
  if (pending) {
@@ -61,6 +71,19 @@ let StatusController = class StatusController {
61
71
  response.data = data;
62
72
  return response;
63
73
  }
74
+ buildSetupJobModel() {
75
+ const lastJob = this.setupService.getLastJob();
76
+ if (!lastJob) {
77
+ return null;
78
+ }
79
+ const model = new status_model_1.RemoteAccessTailscalePluginSetupJobModel();
80
+ model.jobId = lastJob.id;
81
+ model.state = lastJob.status.state;
82
+ model.step = lastJob.status.step ?? null;
83
+ model.message = lastJob.status.message ?? null;
84
+ model.updatedAt = lastJob.status.updatedAt;
85
+ return model;
86
+ }
64
87
  };
65
88
  exports.StatusController = StatusController;
66
89
  __decorate([
@@ -83,6 +106,8 @@ exports.StatusController = StatusController = __decorate([
83
106
  (0, roles_guard_1.Roles)(users_constants_1.UserRole.ADMIN, users_constants_1.UserRole.OWNER),
84
107
  __metadata("design:paramtypes", [tailscale_provider_service_1.TailscaleProviderService,
85
108
  tailscale_node_managed_service_1.TailscaleNodeManagedService,
86
- tailscale_login_service_1.TailscaleLoginService])
109
+ tailscale_login_service_1.TailscaleLoginService,
110
+ tailscale_setup_service_1.TailscaleSetupService,
111
+ platform_service_1.PlatformService])
87
112
  ], StatusController);
88
113
  //# sourceMappingURL=status.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.controller.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/controllers/status.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.controller.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/controllers/status.controller.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,28 @@
1
1
  import { BaseSuccessResponseModel } from '../../../modules/api/models/api-response.model';
2
2
  import { RemoteAccessAdvisoryModel, RemoteAccessEndpointModel } from '../../../modules/remote-access/models/provider.model';
3
3
  import { RemoteAccessProviderState } from '../../../modules/remote-access/platforms/remote-access-provider.platform';
4
+ import { PrivilegedJobStatus } from '../../../modules/system/services/privileged-worker.service';
4
5
  import { TailscaleRequirementCode } from '../services/tailscale-node-managed.service';
6
+ export declare class RemoteAccessTailscalePluginRequirementRemedyModel {
7
+ commands: string[];
8
+ note: string | null;
9
+ }
5
10
  export declare class RemoteAccessTailscalePluginRequirementModel {
6
11
  code: TailscaleRequirementCode;
7
12
  satisfied: boolean;
8
13
  message: string;
14
+ remedy: RemoteAccessTailscalePluginRequirementRemedyModel | null;
15
+ }
16
+ export declare class RemoteAccessTailscalePluginSetupJobModel {
17
+ jobId: string;
18
+ state: PrivilegedJobStatus['state'];
19
+ step: string | null;
20
+ message: string | null;
21
+ updatedAt: string;
22
+ }
23
+ export declare class RemoteAccessTailscalePluginPrivilegedSetupModel {
24
+ available: boolean;
25
+ reason: string | null;
9
26
  }
10
27
  export declare class RemoteAccessTailscalePluginStatusModel {
11
28
  type: string;
@@ -19,6 +36,8 @@ export declare class RemoteAccessTailscalePluginStatusModel {
19
36
  requirements: RemoteAccessTailscalePluginRequirementModel[];
20
37
  authUrl?: string;
21
38
  qr?: string;
39
+ setup: RemoteAccessTailscalePluginSetupJobModel | null;
40
+ privilegedSetup: RemoteAccessTailscalePluginPrivilegedSetupModel;
22
41
  }
23
42
  export declare class RemoteAccessTailscalePluginStatusResponseModel extends BaseSuccessResponseModel<RemoteAccessTailscalePluginStatusModel> {
24
43
  data: RemoteAccessTailscalePluginStatusModel;
@@ -9,7 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RemoteAccessTailscalePluginStatusResponseModel = exports.RemoteAccessTailscalePluginStatusModel = exports.RemoteAccessTailscalePluginRequirementModel = void 0;
12
+ exports.RemoteAccessTailscalePluginStatusResponseModel = exports.RemoteAccessTailscalePluginStatusModel = exports.RemoteAccessTailscalePluginPrivilegedSetupModel = exports.RemoteAccessTailscalePluginSetupJobModel = exports.RemoteAccessTailscalePluginRequirementModel = exports.RemoteAccessTailscalePluginRequirementRemedyModel = void 0;
13
13
  const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const swagger_1 = require("@nestjs/swagger");
@@ -34,6 +34,37 @@ const TAILSCALE_REQUIREMENT_CODES = [
34
34
  'operator-granted',
35
35
  'version-supported',
36
36
  ];
37
+ const TAILSCALE_SETUP_JOB_STATES = ['running', 'complete', 'failed', 'timeout'];
38
+ let RemoteAccessTailscalePluginRequirementRemedyModel = class RemoteAccessTailscalePluginRequirementRemedyModel {
39
+ };
40
+ exports.RemoteAccessTailscalePluginRequirementRemedyModel = RemoteAccessTailscalePluginRequirementRemedyModel;
41
+ __decorate([
42
+ (0, swagger_1.ApiProperty)({
43
+ description: 'Exact console commands that satisfy this requirement on the detected system',
44
+ type: 'array',
45
+ items: { type: 'string' },
46
+ example: ['sudo systemctl enable --now tailscaled'],
47
+ }),
48
+ (0, class_transformer_1.Expose)(),
49
+ (0, class_validator_1.IsArray)(),
50
+ (0, class_validator_1.IsString)({ each: true }),
51
+ __metadata("design:type", Array)
52
+ ], RemoteAccessTailscalePluginRequirementRemedyModel.prototype, "commands", void 0);
53
+ __decorate([
54
+ (0, swagger_1.ApiPropertyOptional)({
55
+ description: 'Vendor or documentation link, present instead of commands when no exact command applies',
56
+ type: 'string',
57
+ nullable: true,
58
+ example: null,
59
+ }),
60
+ (0, class_transformer_1.Expose)(),
61
+ (0, class_validator_1.IsOptional)(),
62
+ (0, class_validator_1.IsString)(),
63
+ __metadata("design:type", String)
64
+ ], RemoteAccessTailscalePluginRequirementRemedyModel.prototype, "note", void 0);
65
+ exports.RemoteAccessTailscalePluginRequirementRemedyModel = RemoteAccessTailscalePluginRequirementRemedyModel = __decorate([
66
+ (0, swagger_1.ApiSchema)({ name: 'RemoteAccessTailscalePluginDataRequirementRemedy' })
67
+ ], RemoteAccessTailscalePluginRequirementRemedyModel);
37
68
  let RemoteAccessTailscalePluginRequirementModel = class RemoteAccessTailscalePluginRequirementModel {
38
69
  };
39
70
  exports.RemoteAccessTailscalePluginRequirementModel = RemoteAccessTailscalePluginRequirementModel;
@@ -67,9 +98,112 @@ __decorate([
67
98
  (0, class_validator_1.IsString)(),
68
99
  __metadata("design:type", String)
69
100
  ], RemoteAccessTailscalePluginRequirementModel.prototype, "message", void 0);
101
+ __decorate([
102
+ (0, swagger_1.ApiPropertyOptional)({
103
+ description: 'Exact console commands that satisfy this requirement; null once it is satisfied',
104
+ type: () => RemoteAccessTailscalePluginRequirementRemedyModel,
105
+ nullable: true,
106
+ }),
107
+ (0, class_transformer_1.Expose)(),
108
+ (0, class_validator_1.IsOptional)(),
109
+ (0, class_validator_1.ValidateNested)(),
110
+ (0, class_transformer_1.Type)(() => RemoteAccessTailscalePluginRequirementRemedyModel),
111
+ __metadata("design:type", RemoteAccessTailscalePluginRequirementRemedyModel)
112
+ ], RemoteAccessTailscalePluginRequirementModel.prototype, "remedy", void 0);
70
113
  exports.RemoteAccessTailscalePluginRequirementModel = RemoteAccessTailscalePluginRequirementModel = __decorate([
71
114
  (0, swagger_1.ApiSchema)({ name: 'RemoteAccessTailscalePluginDataRequirement' })
72
115
  ], RemoteAccessTailscalePluginRequirementModel);
116
+ let RemoteAccessTailscalePluginSetupJobModel = class RemoteAccessTailscalePluginSetupJobModel {
117
+ };
118
+ exports.RemoteAccessTailscalePluginSetupJobModel = RemoteAccessTailscalePluginSetupJobModel;
119
+ __decorate([
120
+ (0, swagger_1.ApiProperty)({
121
+ name: 'job_id',
122
+ description: 'Identifier of the privileged setup job this status reflects',
123
+ type: 'string',
124
+ example: '3fa1c2f0-9c3e-4c3b-8f0a-8f0a8f0a8f0a',
125
+ }),
126
+ (0, class_transformer_1.Expose)({ name: 'job_id' }),
127
+ (0, class_validator_1.IsString)(),
128
+ __metadata("design:type", String)
129
+ ], RemoteAccessTailscalePluginSetupJobModel.prototype, "jobId", void 0);
130
+ __decorate([
131
+ (0, swagger_1.ApiProperty)({
132
+ description: 'Current lifecycle state of the setup job',
133
+ enum: TAILSCALE_SETUP_JOB_STATES,
134
+ example: 'running',
135
+ }),
136
+ (0, class_transformer_1.Expose)(),
137
+ (0, class_validator_1.IsEnum)(TAILSCALE_SETUP_JOB_STATES),
138
+ __metadata("design:type", Object)
139
+ ], RemoteAccessTailscalePluginSetupJobModel.prototype, "state", void 0);
140
+ __decorate([
141
+ (0, swagger_1.ApiProperty)({
142
+ description: 'Free-form step label reported by the setup script, null when none was reported yet',
143
+ type: 'string',
144
+ nullable: true,
145
+ example: 'install-package',
146
+ }),
147
+ (0, class_transformer_1.Expose)(),
148
+ (0, class_validator_1.IsOptional)(),
149
+ (0, class_validator_1.IsString)(),
150
+ __metadata("design:type", String)
151
+ ], RemoteAccessTailscalePluginSetupJobModel.prototype, "step", void 0);
152
+ __decorate([
153
+ (0, swagger_1.ApiProperty)({
154
+ description: 'Free-form human-readable message reported by the setup script or the worker itself',
155
+ type: 'string',
156
+ nullable: true,
157
+ example: null,
158
+ }),
159
+ (0, class_transformer_1.Expose)(),
160
+ (0, class_validator_1.IsOptional)(),
161
+ (0, class_validator_1.IsString)(),
162
+ __metadata("design:type", String)
163
+ ], RemoteAccessTailscalePluginSetupJobModel.prototype, "message", void 0);
164
+ __decorate([
165
+ (0, swagger_1.ApiProperty)({
166
+ name: 'updated_at',
167
+ description: 'ISO 8601 timestamp of the last status tick for this job',
168
+ type: 'string',
169
+ format: 'date-time',
170
+ example: '2026-09-07T12:00:00Z',
171
+ }),
172
+ (0, class_transformer_1.Expose)({ name: 'updated_at' }),
173
+ (0, class_validator_1.IsString)(),
174
+ __metadata("design:type", String)
175
+ ], RemoteAccessTailscalePluginSetupJobModel.prototype, "updatedAt", void 0);
176
+ exports.RemoteAccessTailscalePluginSetupJobModel = RemoteAccessTailscalePluginSetupJobModel = __decorate([
177
+ (0, swagger_1.ApiSchema)({ name: 'RemoteAccessTailscalePluginDataSetupJob' })
178
+ ], RemoteAccessTailscalePluginSetupJobModel);
179
+ let RemoteAccessTailscalePluginPrivilegedSetupModel = class RemoteAccessTailscalePluginPrivilegedSetupModel {
180
+ };
181
+ exports.RemoteAccessTailscalePluginPrivilegedSetupModel = RemoteAccessTailscalePluginPrivilegedSetupModel;
182
+ __decorate([
183
+ (0, swagger_1.ApiProperty)({
184
+ description: 'Whether a privileged setup job can run on this installation right now',
185
+ type: 'boolean',
186
+ example: true,
187
+ }),
188
+ (0, class_transformer_1.Expose)(),
189
+ (0, class_validator_1.IsBoolean)(),
190
+ __metadata("design:type", Boolean)
191
+ ], RemoteAccessTailscalePluginPrivilegedSetupModel.prototype, "available", void 0);
192
+ __decorate([
193
+ (0, swagger_1.ApiProperty)({
194
+ description: 'Why privileged setup is unavailable, null when it is available',
195
+ type: 'string',
196
+ nullable: true,
197
+ example: null,
198
+ }),
199
+ (0, class_transformer_1.Expose)(),
200
+ (0, class_validator_1.IsOptional)(),
201
+ (0, class_validator_1.IsString)(),
202
+ __metadata("design:type", String)
203
+ ], RemoteAccessTailscalePluginPrivilegedSetupModel.prototype, "reason", void 0);
204
+ exports.RemoteAccessTailscalePluginPrivilegedSetupModel = RemoteAccessTailscalePluginPrivilegedSetupModel = __decorate([
205
+ (0, swagger_1.ApiSchema)({ name: 'RemoteAccessTailscalePluginDataPrivilegedSetup' })
206
+ ], RemoteAccessTailscalePluginPrivilegedSetupModel);
73
207
  let RemoteAccessTailscalePluginStatusModel = class RemoteAccessTailscalePluginStatusModel {
74
208
  };
75
209
  exports.RemoteAccessTailscalePluginStatusModel = RemoteAccessTailscalePluginStatusModel;
@@ -199,6 +333,29 @@ __decorate([
199
333
  (0, class_validator_1.IsString)(),
200
334
  __metadata("design:type", String)
201
335
  ], RemoteAccessTailscalePluginStatusModel.prototype, "qr", void 0);
336
+ __decorate([
337
+ (0, swagger_1.ApiPropertyOptional)({
338
+ description: 'Last known privileged setup job, null when none has run since this process started',
339
+ nullable: true,
340
+ type: () => RemoteAccessTailscalePluginSetupJobModel,
341
+ }),
342
+ (0, class_transformer_1.Expose)(),
343
+ (0, class_validator_1.IsOptional)(),
344
+ (0, class_validator_1.ValidateNested)(),
345
+ (0, class_transformer_1.Type)(() => RemoteAccessTailscalePluginSetupJobModel),
346
+ __metadata("design:type", RemoteAccessTailscalePluginSetupJobModel)
347
+ ], RemoteAccessTailscalePluginStatusModel.prototype, "setup", void 0);
348
+ __decorate([
349
+ (0, swagger_1.ApiProperty)({
350
+ name: 'privileged_setup',
351
+ description: 'Whether a privileged setup job can run on this installation right now',
352
+ type: () => RemoteAccessTailscalePluginPrivilegedSetupModel,
353
+ }),
354
+ (0, class_transformer_1.Expose)({ name: 'privileged_setup' }),
355
+ (0, class_validator_1.ValidateNested)(),
356
+ (0, class_transformer_1.Type)(() => RemoteAccessTailscalePluginPrivilegedSetupModel),
357
+ __metadata("design:type", RemoteAccessTailscalePluginPrivilegedSetupModel)
358
+ ], RemoteAccessTailscalePluginStatusModel.prototype, "privilegedSetup", void 0);
202
359
  exports.RemoteAccessTailscalePluginStatusModel = RemoteAccessTailscalePluginStatusModel = __decorate([
203
360
  (0, swagger_1.ApiSchema)({ name: 'RemoteAccessTailscalePluginDataStatus' })
204
361
  ], RemoteAccessTailscalePluginStatusModel);
@@ -1 +1 @@
1
- {"version":3,"file":"status.model.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/models/status.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.model.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/models/status.model.ts"],"names":[],"mappings":"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"}
@@ -18,3 +18,5 @@ export declare const TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS = 120000;
18
18
  export declare const TAILSCALE_LOGIN_INTERACTIVE_TIMEOUT_MS: number;
19
19
  export declare const TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = 30000;
20
20
  export declare const TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS: number;
21
+ export declare const TAILSCALE_RECONNECT_BASE_DELAY_MS = 30000;
22
+ export declare const TAILSCALE_RECONNECT_MAX_DELAY_MS: number;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS = exports.TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = exports.TAILSCALE_LOGIN_INTERACTIVE_TIMEOUT_MS = exports.TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS = exports.TAILSCALE_DATA_SUBDIR = exports.TAILSCALE_SETUP_STATUS_FILENAME = exports.TAILSCALE_SETUP_WORKER_UNIT = exports.REMOTE_ACCESS_TAILSCALE_ALLOW_DEV_ENV = exports.TAILSCALE_POLL_INTERVAL_STABLE_MS = exports.TAILSCALE_POLL_INTERVAL_TRANSITIONING_MS = exports.TAILSCALE_DEFAULT_LOGIN_SERVER = exports.TAILSCALE_SYSTEMCTL_PROBE_TIMEOUT_MS = exports.TAILSCALE_CLI_MAX_BUFFER_BYTES = exports.TAILSCALE_CLI_DEFAULT_TIMEOUT_MS = exports.TAILSCALE_BINARY = exports.TAILSCALE_MIN_VERSION = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_DESCRIPTION = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_NAME = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_PREFIX = void 0;
3
+ exports.TAILSCALE_RECONNECT_MAX_DELAY_MS = exports.TAILSCALE_RECONNECT_BASE_DELAY_MS = exports.TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS = exports.TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = exports.TAILSCALE_LOGIN_INTERACTIVE_TIMEOUT_MS = exports.TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS = exports.TAILSCALE_DATA_SUBDIR = exports.TAILSCALE_SETUP_STATUS_FILENAME = exports.TAILSCALE_SETUP_WORKER_UNIT = exports.REMOTE_ACCESS_TAILSCALE_ALLOW_DEV_ENV = exports.TAILSCALE_POLL_INTERVAL_STABLE_MS = exports.TAILSCALE_POLL_INTERVAL_TRANSITIONING_MS = exports.TAILSCALE_DEFAULT_LOGIN_SERVER = exports.TAILSCALE_SYSTEMCTL_PROBE_TIMEOUT_MS = exports.TAILSCALE_CLI_MAX_BUFFER_BYTES = exports.TAILSCALE_CLI_DEFAULT_TIMEOUT_MS = exports.TAILSCALE_BINARY = exports.TAILSCALE_MIN_VERSION = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_DESCRIPTION = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_NAME = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME = exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_PREFIX = void 0;
4
4
  exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_PREFIX = 'remote-access-tailscale';
5
5
  exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_NAME = 'remote-access-tailscale-plugin';
6
6
  exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_API_TAG_NAME = 'Remote access Tailscale plugin';
@@ -21,4 +21,6 @@ exports.TAILSCALE_LOGIN_AUTH_KEY_TIMEOUT_MS = 120_000;
21
21
  exports.TAILSCALE_LOGIN_INTERACTIVE_TIMEOUT_MS = 10 * 60 * 1000;
22
22
  exports.TAILSCALE_LOGIN_FIRST_BLOCK_TIMEOUT_MS = 30_000;
23
23
  exports.TAILSCALE_KEY_EXPIRY_ADVISORY_WINDOW_MS = 14 * 24 * 60 * 60 * 1000;
24
+ exports.TAILSCALE_RECONNECT_BASE_DELAY_MS = 30_000;
25
+ exports.TAILSCALE_RECONNECT_MAX_DELAY_MS = 5 * 60 * 1000;
24
26
  //# sourceMappingURL=remote-access-tailscale.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-access-tailscale.constants.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qCAAqC,GAAG,yBAAyB,CAAC;AAElE,QAAA,mCAAmC,GAAG,gCAAgC,CAAC;AAEvE,QAAA,2CAA2C,GAAG,gCAAgC,CAAC;AAE/E,QAAA,kDAAkD,GAC9D,mHAAmH,CAAC;AASxG,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AAGjC,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAG/B,QAAA,gCAAgC,GAAG,MAAM,CAAC;AAS1C,QAAA,8BAA8B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAGlD,QAAA,oCAAoC,GAAG,KAAK,CAAC;AAE7C,QAAA,8BAA8B,GAAG,oCAAoC,CAAC;AAGtE,QAAA,wCAAwC,GAAG,KAAK,CAAC;AAGjD,QAAA,iCAAiC,GAAG,MAAM,CAAC;AAQ3C,QAAA,qCAAqC,GAAG,4BAA4B,CAAC;AAGrE,QAAA,2BAA2B,GAAG,2BAA2B,CAAC;AAG1D,QAAA,+BAA+B,GAAG,6BAA6B,CAAC;AAOhE,QAAA,qBAAqB,GAAG,eAAe,CAAC;AAGxC,QAAA,mCAAmC,GAAG,OAAO,CAAC;AAG9C,QAAA,sCAAsC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAYxD,QAAA,sCAAsC,GAAG,MAAM,CAAC;AAGhD,QAAA,uCAAuC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"remote-access-tailscale.constants.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qCAAqC,GAAG,yBAAyB,CAAC;AAElE,QAAA,mCAAmC,GAAG,gCAAgC,CAAC;AAEvE,QAAA,2CAA2C,GAAG,gCAAgC,CAAC;AAE/E,QAAA,kDAAkD,GAC9D,mHAAmH,CAAC;AASxG,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AAGjC,QAAA,gBAAgB,GAAG,WAAW,CAAC;AAG/B,QAAA,gCAAgC,GAAG,MAAM,CAAC;AAS1C,QAAA,8BAA8B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAGlD,QAAA,oCAAoC,GAAG,KAAK,CAAC;AAE7C,QAAA,8BAA8B,GAAG,oCAAoC,CAAC;AAGtE,QAAA,wCAAwC,GAAG,KAAK,CAAC;AAGjD,QAAA,iCAAiC,GAAG,MAAM,CAAC;AAQ3C,QAAA,qCAAqC,GAAG,4BAA4B,CAAC;AAGrE,QAAA,2BAA2B,GAAG,2BAA2B,CAAC;AAG1D,QAAA,+BAA+B,GAAG,6BAA6B,CAAC;AAOhE,QAAA,qBAAqB,GAAG,eAAe,CAAC;AAGxC,QAAA,mCAAmC,GAAG,OAAO,CAAC;AAG9C,QAAA,sCAAsC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAYxD,QAAA,sCAAsC,GAAG,MAAM,CAAC;AAGhD,QAAA,uCAAuC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAUnE,QAAA,iCAAiC,GAAG,MAAM,CAAC;AAG3C,QAAA,gCAAgC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { TailscaleRequirement } from './services/tailscale-node-managed.service';
2
+ export declare class TailscaleRequirementUnsatisfiedException extends Error {
3
+ readonly requirement: TailscaleRequirement;
4
+ constructor(requirement: TailscaleRequirement);
5
+ }
6
+ export type TailscaleSetupUnavailableCode = 'privileged-worker-unavailable' | 'platform-unsupported';
7
+ export declare class TailscaleSetupUnavailableException extends Error {
8
+ readonly code: TailscaleSetupUnavailableCode;
9
+ constructor(message: string, code?: TailscaleSetupUnavailableCode);
10
+ }
11
+ export declare class TailscaleNodeStopFailedException extends Error {
12
+ constructor(message: string);
13
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TailscaleNodeStopFailedException = exports.TailscaleSetupUnavailableException = exports.TailscaleRequirementUnsatisfiedException = void 0;
4
+ class TailscaleRequirementUnsatisfiedException extends Error {
5
+ constructor(requirement) {
6
+ super(requirement.message);
7
+ this.requirement = requirement;
8
+ this.name = 'TailscaleRequirementUnsatisfiedException';
9
+ }
10
+ }
11
+ exports.TailscaleRequirementUnsatisfiedException = TailscaleRequirementUnsatisfiedException;
12
+ class TailscaleSetupUnavailableException extends Error {
13
+ constructor(message, code = 'platform-unsupported') {
14
+ super(message);
15
+ this.code = code;
16
+ this.name = 'TailscaleSetupUnavailableException';
17
+ }
18
+ }
19
+ exports.TailscaleSetupUnavailableException = TailscaleSetupUnavailableException;
20
+ class TailscaleNodeStopFailedException extends Error {
21
+ constructor(message) {
22
+ super(message);
23
+ this.name = 'TailscaleNodeStopFailedException';
24
+ }
25
+ }
26
+ exports.TailscaleNodeStopFailedException = TailscaleNodeStopFailedException;
27
+ //# sourceMappingURL=remote-access-tailscale.exceptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-access-tailscale.exceptions.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.exceptions.ts"],"names":[],"mappings":";;;AAWA,MAAa,wCAAyC,SAAQ,KAAK;IAClE,YAAqB,WAAiC;QACrD,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QADP,gBAAW,GAAX,WAAW,CAAsB;QAErD,IAAI,CAAC,IAAI,GAAG,0CAA0C,CAAC;IACxD,CAAC;CACD;AALD,4FAKC;AA4BD,MAAa,kCAAmC,SAAQ,KAAK;IAC5D,YACC,OAAe,EACC,OAAsC,sBAAsB;QAE5E,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAwD;QAG5E,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;IAClD,CAAC;CACD;AARD,gFAQC;AAYD,MAAa,gCAAiC,SAAQ,KAAK;IAC1D,YAAY,OAAe;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kCAAkC,CAAC;IAChD,CAAC;CACD;AALD,4EAKC"}
@@ -2,5 +2,5 @@ import { RemoteAccessTailscalePluginLoginDto } from './dto/login.dto';
2
2
  import { UpdateRemoteAccessTailscalePluginConfigDto } from './dto/update-config.dto';
3
3
  import { RemoteAccessTailscalePluginConfigModel } from './models/config.model';
4
4
  import { RemoteAccessTailscalePluginInstallModel, RemoteAccessTailscalePluginInstallResponseModel, RemoteAccessTailscalePluginLoginModel, RemoteAccessTailscalePluginLoginResponseModel } from './models/login.model';
5
- import { RemoteAccessTailscalePluginRequirementModel } from './models/status.model';
6
- export declare const REMOTE_ACCESS_TAILSCALE_PLUGIN_SWAGGER_EXTRA_MODELS: (typeof RemoteAccessTailscalePluginLoginDto | typeof RemoteAccessTailscalePluginLoginModel | typeof RemoteAccessTailscalePluginLoginResponseModel | typeof RemoteAccessTailscalePluginInstallModel | typeof RemoteAccessTailscalePluginInstallResponseModel | typeof RemoteAccessTailscalePluginConfigModel | typeof RemoteAccessTailscalePluginRequirementModel | typeof UpdateRemoteAccessTailscalePluginConfigDto)[];
5
+ import { RemoteAccessTailscalePluginPrivilegedSetupModel, RemoteAccessTailscalePluginRequirementModel, RemoteAccessTailscalePluginSetupJobModel } from './models/status.model';
6
+ export declare const REMOTE_ACCESS_TAILSCALE_PLUGIN_SWAGGER_EXTRA_MODELS: (typeof RemoteAccessTailscalePluginLoginDto | typeof RemoteAccessTailscalePluginLoginModel | typeof RemoteAccessTailscalePluginLoginResponseModel | typeof RemoteAccessTailscalePluginInstallModel | typeof RemoteAccessTailscalePluginInstallResponseModel | typeof RemoteAccessTailscalePluginConfigModel | typeof RemoteAccessTailscalePluginRequirementModel | typeof RemoteAccessTailscalePluginSetupJobModel | typeof RemoteAccessTailscalePluginPrivilegedSetupModel | typeof UpdateRemoteAccessTailscalePluginConfigDto)[];
@@ -17,5 +17,7 @@ exports.REMOTE_ACCESS_TAILSCALE_PLUGIN_SWAGGER_EXTRA_MODELS = [
17
17
  status_model_1.RemoteAccessTailscalePluginRequirementModel,
18
18
  login_model_1.RemoteAccessTailscalePluginInstallModel,
19
19
  login_model_1.RemoteAccessTailscalePluginLoginModel,
20
+ status_model_1.RemoteAccessTailscalePluginSetupJobModel,
21
+ status_model_1.RemoteAccessTailscalePluginPrivilegedSetupModel,
20
22
  ];
21
23
  //# sourceMappingURL=remote-access-tailscale.openapi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-access-tailscale.openapi.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.openapi.ts"],"names":[],"mappings":";;;AAQA,+CAAsE;AACtE,+DAAqF;AACrF,wDAA+E;AAC/E,sDAK8B;AAC9B,wDAI+B;AAElB,QAAA,mDAAmD,GAAG;IAElE,qDAAsC;IACtC,8DAA0C;IAE1C,+CAAmC;IAEnC,6DAA8C;IAC9C,6DAA+C;IAC/C,2DAA6C;IAE7C,qDAAsC;IACtC,0DAA2C;IAC3C,qDAAuC;IACvC,mDAAqC;CACrC,CAAC"}
1
+ {"version":3,"file":"remote-access-tailscale.openapi.js","sourceRoot":"","sources":["../../../src/plugins/remote-access-tailscale/remote-access-tailscale.openapi.ts"],"names":[],"mappings":";;;AAQA,+CAAsE;AACtE,+DAAqF;AACrF,wDAA+E;AAC/E,sDAK8B;AAC9B,wDAM+B;AAElB,QAAA,mDAAmD,GAAG;IAElE,qDAAsC;IACtC,8DAA0C;IAE1C,+CAAmC;IAEnC,6DAA8C;IAC9C,6DAA+C;IAC/C,2DAA6C;IAE7C,qDAAsC;IACtC,0DAA2C;IAC3C,qDAAuC;IACvC,mDAAqC;IACrC,uDAAwC;IACxC,8DAA+C;CAC/C,CAAC"}
@@ -76,7 +76,7 @@ Connects this installation to a Tailscale tailnet, a private WireGuard-based mes
76
76
  ## Requirements
77
77
 
78
78
  - \`raspberry\` or \`generic\` platform with systemd and the existing sudoers allowlist (Docker and the Home Assistant add-on are not supported — see the docs for alternatives)
79
- - The \`tailscale\` package installed and \`tailscaled\` active, with the \`smart-panel\` service user granted as the Tailscale operator
79
+ - The \`tailscale\` package installed and \`tailscaled\` active, with the Smart Panel service user (\`smart-panel\` unless changed during installation) granted as the Tailscale operator — without this grant, every action (sign-in, sign-out, Serve/Funnel) is refused. **Set up** applies it automatically; if it's ever lost (e.g. after reinstalling \`tailscaled\`, or the node was signed in by hand as root before **Set up** ever ran), recover it with a single command: \`sudo tailscale set --operator=<service-user>\` (substituting your installation's actual service user)
80
80
 
81
81
  ## Configuration
82
82
 
@@ -13,6 +13,17 @@
13
13
  # and always finishes at "complete" with exit 0, regardless of the host OS —
14
14
  # it previews the real branching logic without requiring root, apt, systemd
15
15
  # or a Debian-family host, so it can run from a Jest spec on any platform.
16
+ #
17
+ # --print-plan [--step=install|daemon|operator] is a separate, read-only mode
18
+ # for TailscaleNodeManagedService's D12 remedy builder: it prints one command
19
+ # per line for the detected ID/VERSION_CODENAME from /etc/os-release and
20
+ # executes nothing at all — no status file, no trap, not even SMART_PANEL_USER
21
+ # defaulted to root's own id (the caller always passes it explicitly). This is
22
+ # what keeps the admin-facing "run this yourself" remedy list from ever
23
+ # drifting out of sync with what the privileged install step above actually
24
+ # runs. An unsupported (non-Debian-family) distribution prints nothing for
25
+ # --step=install — the caller's own signal to fall back to a vendor link
26
+ # instead of a command list.
16
27
  set -e
17
28
  # Without this, `curl ... | tee ...` reports tee's exit status, not curl's —
18
29
  # a failed download would be silently treated as success by the `|| { ... }`
@@ -23,12 +34,62 @@ STATUS_FILE="${STATUS_FILE:-/var/lib/smart-panel/remote-access/tailscale-setup-s
23
34
  SMART_PANEL_USER="${SMART_PANEL_USER:-$(id -un)}"
24
35
 
25
36
  DRY_RUN=0
37
+ PRINT_PLAN=0
38
+ PRINT_PLAN_STEP="install"
26
39
  for arg in "$@"; do
27
40
  case "$arg" in
28
41
  --dry-run) DRY_RUN=1 ;;
42
+ --print-plan) PRINT_PLAN=1 ;;
43
+ --step=*) PRINT_PLAN_STEP="${arg#--step=}" ;;
29
44
  esac
30
45
  done
31
46
 
47
+ # Read-only, side-effect-free: print the plan and exit before this script
48
+ # ever touches STATUS_FILE or registers the cleanup trap below.
49
+ if [ "$PRINT_PLAN" -eq 1 ]; then
50
+ OS_ID=""
51
+ VERSION_CODENAME=""
52
+
53
+ if [ -f /etc/os-release ]; then
54
+ # shellcheck source=/dev/null
55
+ . /etc/os-release
56
+ OS_ID="${ID:-}"
57
+ VERSION_CODENAME="${VERSION_CODENAME:-}"
58
+ fi
59
+
60
+ case "$PRINT_PLAN_STEP" in
61
+ daemon)
62
+ echo "systemctl enable --now tailscaled"
63
+ ;;
64
+ operator)
65
+ echo "tailscale set --operator=${SMART_PANEL_USER}"
66
+ ;;
67
+ install)
68
+ case "$OS_ID" in
69
+ raspbian | debian | ubuntu)
70
+ # `sudo` sits on the `tee` side, not the whole pipeline - prefixing the
71
+ # entire line would only elevate `curl` and leave `tee` unable to write
72
+ # these root-owned paths. The caller (TailscaleNodeManagedService) only
73
+ # blind-prefixes `sudo` onto lines that do not already contain a pipe.
74
+ echo "curl -fsSL https://pkgs.tailscale.com/stable/${OS_ID}/${VERSION_CODENAME}.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null"
75
+ echo "curl -fsSL https://pkgs.tailscale.com/stable/${OS_ID}/${VERSION_CODENAME}.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list >/dev/null"
76
+ echo "apt-get update -qq"
77
+ echo "apt-get install -y -qq --no-install-recommends tailscale"
78
+ ;;
79
+ *)
80
+ # Unsupported distribution: intentionally prints nothing on
81
+ # stdout — the caller's signal to fall back to a vendor link
82
+ # instead of a command list. A note on stderr only, for a human
83
+ # running this script directly.
84
+ echo "unsupported distribution (ID=${OS_ID:-unknown}); install manually: https://tailscale.com/download/linux" >&2
85
+ ;;
86
+ esac
87
+ ;;
88
+ esac
89
+
90
+ exit 0
91
+ fi
92
+
32
93
  # Writes the canonical `{ state, step, message }` status PrivilegedWorkerService
33
94
  # expects, via a temp file + rename so a concurrent read never sees a
34
95
  # half-written file. printf %s (never direct interpolation into the format
@@ -37,6 +37,14 @@ export interface TailscaleVersionInfo {
37
37
  version: string;
38
38
  raw: Record<string, unknown>;
39
39
  }
40
+ export interface TailscalePrefs {
41
+ OperatorUser?: string;
42
+ ControlURL?: string;
43
+ Hostname?: string;
44
+ LoggedOut?: boolean;
45
+ WantRunning?: boolean;
46
+ [key: string]: unknown;
47
+ }
40
48
  export interface TailscaleServeStatus {
41
49
  TCP?: Record<string, {
42
50
  HTTPS?: boolean;
@@ -58,6 +66,7 @@ export declare class TailscaleCliService {
58
66
  private readonly logger;
59
67
  getVersion(): Promise<TailscaleVersionInfo>;
60
68
  getStatus(): Promise<TailscaleStatus>;
69
+ getPrefs(): Promise<TailscalePrefs>;
61
70
  up(args: readonly string[]): Promise<void>;
62
71
  set(args: readonly string[]): Promise<void>;
63
72
  down(): Promise<void>;
@@ -86,6 +86,18 @@ let TailscaleCliService = class TailscaleCliService {
86
86
  }
87
87
  return parsed;
88
88
  }
89
+ async getPrefs() {
90
+ const { stdout, stderr, exitCode } = await this.exec(['debug', 'prefs']);
91
+ if (exitCode !== 0) {
92
+ throw this.classify(stdout, stderr, `tailscale debug prefs exited with code ${exitCode}`);
93
+ }
94
+ try {
95
+ return JSON.parse(stdout);
96
+ }
97
+ catch (error) {
98
+ throw new TailscaleCliError('unknown', 'Failed to parse `tailscale debug prefs` output.', error);
99
+ }
100
+ }
89
101
  async up(args) {
90
102
  await this.runManagementCommand(['up', ...args]);
91
103
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tailscale-cli.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-cli.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tailscale-cli.service.js","sourceRoot":"","sources":["../../../../src/plugins/remote-access-tailscale/services/tailscale-cli.service.ts"],"names":[],"mappings":"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"}