crewly 1.4.49 → 1.4.51
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/backend/backend/src/constants.d.ts +8 -6
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +8 -6
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js +13 -2
- package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +8 -4
- package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +2 -5
- package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +43 -2
- package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js +176 -3
- package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-initializer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-initializer.js +41 -6
- package/dist/backend/backend/src/services/cloud/cloud-initializer.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts +17 -0
- package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.service.js +64 -16
- package/dist/backend/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +9 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
- package/dist/cli/backend/src/constants.d.ts +8 -6
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +8 -6
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/cli/src/commands/service.d.ts +2 -0
- package/dist/cli/cli/src/commands/service.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/service.js +138 -3
- package/dist/cli/cli/src/commands/service.js.map +1 -1
- package/frontend/dist/assets/{index-28fcc469.js → index-ae0a93cb.js} +2 -2
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -20,6 +20,8 @@ export interface PersistedCloudConfig {
|
|
|
20
20
|
token: string;
|
|
21
21
|
tier: string;
|
|
22
22
|
connectedAt: string;
|
|
23
|
+
/** Refresh token for auto-renewing expired access tokens */
|
|
24
|
+
refreshToken?: string;
|
|
23
25
|
}
|
|
24
26
|
/** Summary of a premium template returned by the cloud listing endpoint. */
|
|
25
27
|
export interface CloudTemplateSummary {
|
|
@@ -100,12 +102,18 @@ export declare class CloudClientService {
|
|
|
100
102
|
private cloudUrl;
|
|
101
103
|
/** Bearer token obtained during connect() */
|
|
102
104
|
private token;
|
|
105
|
+
/** Refresh token for auto-renewing expired access tokens */
|
|
106
|
+
private refreshToken;
|
|
103
107
|
/** Current connection status */
|
|
104
108
|
private connectionStatus;
|
|
105
109
|
/** Subscription tier reported by cloud */
|
|
106
110
|
private tier;
|
|
107
111
|
/** Timestamp of the most recent successful cloud API call */
|
|
108
112
|
private lastSyncAt;
|
|
113
|
+
/** Timer for proactive token refresh (fires 5 min before expiry) */
|
|
114
|
+
private refreshTimer;
|
|
115
|
+
/** Guard to prevent concurrent refresh attempts */
|
|
116
|
+
private refreshInProgress;
|
|
109
117
|
private constructor();
|
|
110
118
|
/**
|
|
111
119
|
* Get the singleton instance.
|
|
@@ -135,7 +143,7 @@ export declare class CloudClientService {
|
|
|
135
143
|
* await client.connect('https://api.crewlyai.com', 'sk-abc123');
|
|
136
144
|
* ```
|
|
137
145
|
*/
|
|
138
|
-
connect(cloudUrl: string, token: string): Promise<{
|
|
146
|
+
connect(cloudUrl: string, token: string, refreshToken?: string): Promise<{
|
|
139
147
|
success: boolean;
|
|
140
148
|
tier: CloudTier;
|
|
141
149
|
}>;
|
|
@@ -149,8 +157,9 @@ export declare class CloudClientService {
|
|
|
149
157
|
* @param cloudUrl - Base URL of the CrewlyAI Cloud API
|
|
150
158
|
* @param token - JWT access token (already verified locally)
|
|
151
159
|
* @param tier - Subscription tier extracted from the JWT payload
|
|
160
|
+
* @param refreshToken - Optional refresh token for auto-renewal
|
|
152
161
|
*/
|
|
153
|
-
connectLocal(cloudUrl: string, token: string, tier: CloudTier): void;
|
|
162
|
+
connectLocal(cloudUrl: string, token: string, tier: CloudTier, refreshToken?: string): void;
|
|
154
163
|
/**
|
|
155
164
|
* Disconnect from CrewlyAI Cloud.
|
|
156
165
|
*
|
|
@@ -245,6 +254,38 @@ export declare class CloudClientService {
|
|
|
245
254
|
* @throws Error when not connected or fetch fails
|
|
246
255
|
*/
|
|
247
256
|
fetchCloudDevices(): Promise<CloudRelayDevice[]>;
|
|
257
|
+
/**
|
|
258
|
+
* Set the refresh token for auto-renewal.
|
|
259
|
+
*
|
|
260
|
+
* Called by the connect controller after OAuth login provides a refresh token.
|
|
261
|
+
*
|
|
262
|
+
* @param refreshToken - Refresh token string
|
|
263
|
+
*/
|
|
264
|
+
setRefreshToken(refreshToken: string): void;
|
|
265
|
+
/**
|
|
266
|
+
* Get the current access token (for CloudSyncService token updates).
|
|
267
|
+
*
|
|
268
|
+
* @returns Current access token or null
|
|
269
|
+
*/
|
|
270
|
+
getToken(): string | null;
|
|
271
|
+
/**
|
|
272
|
+
* Attempt to refresh the access token using the stored refresh token.
|
|
273
|
+
*
|
|
274
|
+
* Issues a new access token locally (since both access and refresh tokens
|
|
275
|
+
* are signed with the same HMAC secret on this OSS instance).
|
|
276
|
+
*
|
|
277
|
+
* @returns true if refresh succeeded, false if no refresh token or refresh failed
|
|
278
|
+
*/
|
|
279
|
+
tryRefreshToken(): Promise<boolean>;
|
|
280
|
+
/**
|
|
281
|
+
* Schedule a proactive token refresh 5 minutes before expiry.
|
|
282
|
+
*
|
|
283
|
+
* Parses the JWT `exp` claim and sets a timer. If the token has
|
|
284
|
+
* less than 5 minutes remaining, refreshes immediately.
|
|
285
|
+
*
|
|
286
|
+
* @param token - JWT access token to extract expiry from
|
|
287
|
+
*/
|
|
288
|
+
private scheduleTokenRefresh;
|
|
248
289
|
/**
|
|
249
290
|
* Throw if the client is not in a connected state.
|
|
250
291
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-client.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-client.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,
|
|
1
|
+
{"version":3,"file":"cloud-client.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-client.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import * as os from 'os';
|
|
|
14
14
|
import * as path from 'path';
|
|
15
15
|
import { readFile, writeFile, mkdir, unlink } from 'fs/promises';
|
|
16
16
|
import { LoggerService } from '../core/logger.service.js';
|
|
17
|
-
import { CLOUD_CONSTANTS, } from '../../constants.js';
|
|
17
|
+
import { CLOUD_CONSTANTS, AUTH_CONSTANTS, } from '../../constants.js';
|
|
18
18
|
// ---------------------------------------------------------------------------
|
|
19
19
|
// Service
|
|
20
20
|
// ---------------------------------------------------------------------------
|
|
@@ -32,12 +32,18 @@ export class CloudClientService {
|
|
|
32
32
|
cloudUrl = null;
|
|
33
33
|
/** Bearer token obtained during connect() */
|
|
34
34
|
token = null;
|
|
35
|
+
/** Refresh token for auto-renewing expired access tokens */
|
|
36
|
+
refreshToken = null;
|
|
35
37
|
/** Current connection status */
|
|
36
38
|
connectionStatus = CLOUD_CONSTANTS.CONNECTION_STATUS.DISCONNECTED;
|
|
37
39
|
/** Subscription tier reported by cloud */
|
|
38
40
|
tier = CLOUD_CONSTANTS.TIERS.FREE;
|
|
39
41
|
/** Timestamp of the most recent successful cloud API call */
|
|
40
42
|
lastSyncAt = null;
|
|
43
|
+
/** Timer for proactive token refresh (fires 5 min before expiry) */
|
|
44
|
+
refreshTimer = null;
|
|
45
|
+
/** Guard to prevent concurrent refresh attempts */
|
|
46
|
+
refreshInProgress = false;
|
|
41
47
|
constructor() {
|
|
42
48
|
this.logger = LoggerService.getInstance().createComponentLogger('CloudClientService');
|
|
43
49
|
}
|
|
@@ -79,7 +85,7 @@ export class CloudClientService {
|
|
|
79
85
|
* await client.connect('https://api.crewlyai.com', 'sk-abc123');
|
|
80
86
|
* ```
|
|
81
87
|
*/
|
|
82
|
-
async connect(cloudUrl, token) {
|
|
88
|
+
async connect(cloudUrl, token, refreshToken) {
|
|
83
89
|
this.logger.info('Connecting to CrewlyAI Cloud', { cloudUrl });
|
|
84
90
|
const url = `${cloudUrl}${CLOUD_CONSTANTS.ENDPOINTS.AUTH_TOKEN}`;
|
|
85
91
|
const response = await fetch(url, {
|
|
@@ -102,10 +108,13 @@ export class CloudClientService {
|
|
|
102
108
|
const resolvedTier = data.data?.plan || data.tier;
|
|
103
109
|
this.cloudUrl = cloudUrl;
|
|
104
110
|
this.token = token;
|
|
111
|
+
this.refreshToken = refreshToken || this.refreshToken;
|
|
105
112
|
this.tier = resolvedTier || CLOUD_CONSTANTS.TIERS.FREE;
|
|
106
113
|
this.connectionStatus = CLOUD_CONSTANTS.CONNECTION_STATUS.CONNECTED;
|
|
107
114
|
this.lastSyncAt = new Date().toISOString();
|
|
108
115
|
this.logger.info('Connected to CrewlyAI Cloud', { tier: this.tier });
|
|
116
|
+
// Schedule proactive token refresh
|
|
117
|
+
this.scheduleTokenRefresh(token);
|
|
109
118
|
// Persist credentials for auto-reconnect on restart
|
|
110
119
|
this.persistConfig().catch((err) => {
|
|
111
120
|
this.logger.warn('Failed to persist cloud config (non-fatal)', {
|
|
@@ -124,14 +133,18 @@ export class CloudClientService {
|
|
|
124
133
|
* @param cloudUrl - Base URL of the CrewlyAI Cloud API
|
|
125
134
|
* @param token - JWT access token (already verified locally)
|
|
126
135
|
* @param tier - Subscription tier extracted from the JWT payload
|
|
136
|
+
* @param refreshToken - Optional refresh token for auto-renewal
|
|
127
137
|
*/
|
|
128
|
-
connectLocal(cloudUrl, token, tier) {
|
|
138
|
+
connectLocal(cloudUrl, token, tier, refreshToken) {
|
|
129
139
|
this.cloudUrl = cloudUrl;
|
|
130
140
|
this.token = token;
|
|
141
|
+
this.refreshToken = refreshToken || this.refreshToken;
|
|
131
142
|
this.tier = tier || CLOUD_CONSTANTS.TIERS.FREE;
|
|
132
143
|
this.connectionStatus = CLOUD_CONSTANTS.CONNECTION_STATUS.CONNECTED;
|
|
133
144
|
this.lastSyncAt = new Date().toISOString();
|
|
134
145
|
this.logger.info('Connected to CrewlyAI Cloud (local verification)', { tier: this.tier });
|
|
146
|
+
// Schedule proactive token refresh
|
|
147
|
+
this.scheduleTokenRefresh(token);
|
|
135
148
|
// Persist credentials for auto-reconnect on restart
|
|
136
149
|
this.persistConfig().catch((err) => {
|
|
137
150
|
this.logger.warn('Failed to persist cloud config (non-fatal)', {
|
|
@@ -148,9 +161,14 @@ export class CloudClientService {
|
|
|
148
161
|
this.logger.info('Disconnecting from CrewlyAI Cloud');
|
|
149
162
|
this.cloudUrl = null;
|
|
150
163
|
this.token = null;
|
|
164
|
+
this.refreshToken = null;
|
|
151
165
|
this.connectionStatus = CLOUD_CONSTANTS.CONNECTION_STATUS.DISCONNECTED;
|
|
152
166
|
this.tier = CLOUD_CONSTANTS.TIERS.FREE;
|
|
153
167
|
this.lastSyncAt = null;
|
|
168
|
+
if (this.refreshTimer) {
|
|
169
|
+
clearTimeout(this.refreshTimer);
|
|
170
|
+
this.refreshTimer = null;
|
|
171
|
+
}
|
|
154
172
|
// Remove persisted config
|
|
155
173
|
this.removePersistedConfig().catch((err) => {
|
|
156
174
|
this.logger.warn('Failed to remove persisted cloud config (non-fatal)', {
|
|
@@ -195,6 +213,7 @@ export class CloudClientService {
|
|
|
195
213
|
token: this.token,
|
|
196
214
|
tier: this.tier,
|
|
197
215
|
connectedAt: new Date().toISOString(),
|
|
216
|
+
...(this.refreshToken && { refreshToken: this.refreshToken }),
|
|
198
217
|
};
|
|
199
218
|
const configPath = CloudClientService.getConfigPath();
|
|
200
219
|
await mkdir(path.dirname(configPath), { recursive: true });
|
|
@@ -385,6 +404,152 @@ export class CloudClientService {
|
|
|
385
404
|
return data.devices ?? [];
|
|
386
405
|
}
|
|
387
406
|
// -------------------------------------------------------------------------
|
|
407
|
+
// Token Auto-Refresh
|
|
408
|
+
// -------------------------------------------------------------------------
|
|
409
|
+
/**
|
|
410
|
+
* Set the refresh token for auto-renewal.
|
|
411
|
+
*
|
|
412
|
+
* Called by the connect controller after OAuth login provides a refresh token.
|
|
413
|
+
*
|
|
414
|
+
* @param refreshToken - Refresh token string
|
|
415
|
+
*/
|
|
416
|
+
setRefreshToken(refreshToken) {
|
|
417
|
+
this.refreshToken = refreshToken;
|
|
418
|
+
// Re-persist config with the new refresh token
|
|
419
|
+
this.persistConfig().catch(() => { });
|
|
420
|
+
this.logger.debug('Refresh token stored');
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Get the current access token (for CloudSyncService token updates).
|
|
424
|
+
*
|
|
425
|
+
* @returns Current access token or null
|
|
426
|
+
*/
|
|
427
|
+
getToken() {
|
|
428
|
+
return this.token;
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Attempt to refresh the access token using the stored refresh token.
|
|
432
|
+
*
|
|
433
|
+
* Issues a new access token locally (since both access and refresh tokens
|
|
434
|
+
* are signed with the same HMAC secret on this OSS instance).
|
|
435
|
+
*
|
|
436
|
+
* @returns true if refresh succeeded, false if no refresh token or refresh failed
|
|
437
|
+
*/
|
|
438
|
+
async tryRefreshToken() {
|
|
439
|
+
if (this.refreshInProgress) {
|
|
440
|
+
this.logger.debug('Token refresh already in progress, skipping');
|
|
441
|
+
return false;
|
|
442
|
+
}
|
|
443
|
+
if (!this.refreshToken) {
|
|
444
|
+
this.logger.debug('No refresh token available for auto-refresh');
|
|
445
|
+
return false;
|
|
446
|
+
}
|
|
447
|
+
this.refreshInProgress = true;
|
|
448
|
+
try {
|
|
449
|
+
// Dynamically import to avoid circular dependency
|
|
450
|
+
const { verifyJwt, signJwt } = await import('../../controllers/cloud/cloud-google-auth.controller.js');
|
|
451
|
+
const payload = verifyJwt(this.refreshToken);
|
|
452
|
+
if (!payload || payload.type !== 'refresh') {
|
|
453
|
+
this.logger.warn('Refresh token invalid or expired — cannot auto-refresh');
|
|
454
|
+
this.refreshToken = null;
|
|
455
|
+
return false;
|
|
456
|
+
}
|
|
457
|
+
// Issue a new access token from the refresh token claims
|
|
458
|
+
const now = Math.floor(Date.now() / 1000);
|
|
459
|
+
const newAccessToken = signJwt({
|
|
460
|
+
sub: payload.sub,
|
|
461
|
+
email: payload.email || '',
|
|
462
|
+
name: payload.name || '',
|
|
463
|
+
plan: payload.plan || 'free',
|
|
464
|
+
iat: now,
|
|
465
|
+
exp: now + AUTH_CONSTANTS.JWT.ACCESS_TOKEN_EXPIRY_S,
|
|
466
|
+
iss: AUTH_CONSTANTS.JWT.ISSUER,
|
|
467
|
+
type: 'access',
|
|
468
|
+
});
|
|
469
|
+
// Update service state
|
|
470
|
+
this.token = newAccessToken;
|
|
471
|
+
this.connectionStatus = CLOUD_CONSTANTS.CONNECTION_STATUS.CONNECTED;
|
|
472
|
+
this.lastSyncAt = new Date().toISOString();
|
|
473
|
+
// Schedule next refresh
|
|
474
|
+
this.scheduleTokenRefresh(newAccessToken);
|
|
475
|
+
// Persist new token
|
|
476
|
+
await this.persistConfig();
|
|
477
|
+
// Update CloudSyncService with the new token (if running)
|
|
478
|
+
try {
|
|
479
|
+
const { CloudSyncService } = await import('./cloud-sync.service.js');
|
|
480
|
+
const syncService = CloudSyncService.getInstance();
|
|
481
|
+
if (syncService.isStarted()) {
|
|
482
|
+
syncService.updateToken(newAccessToken);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
catch {
|
|
486
|
+
// CloudSyncService may not be available — non-fatal
|
|
487
|
+
}
|
|
488
|
+
this.logger.info('Access token auto-refreshed successfully', {
|
|
489
|
+
sub: payload.sub,
|
|
490
|
+
expiresIn: AUTH_CONSTANTS.JWT.ACCESS_TOKEN_EXPIRY_S,
|
|
491
|
+
});
|
|
492
|
+
return true;
|
|
493
|
+
}
|
|
494
|
+
catch (error) {
|
|
495
|
+
this.logger.warn('Token auto-refresh failed', {
|
|
496
|
+
error: error instanceof Error ? error.message : String(error),
|
|
497
|
+
});
|
|
498
|
+
return false;
|
|
499
|
+
}
|
|
500
|
+
finally {
|
|
501
|
+
this.refreshInProgress = false;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
/**
|
|
505
|
+
* Schedule a proactive token refresh 5 minutes before expiry.
|
|
506
|
+
*
|
|
507
|
+
* Parses the JWT `exp` claim and sets a timer. If the token has
|
|
508
|
+
* less than 5 minutes remaining, refreshes immediately.
|
|
509
|
+
*
|
|
510
|
+
* @param token - JWT access token to extract expiry from
|
|
511
|
+
*/
|
|
512
|
+
scheduleTokenRefresh(token) {
|
|
513
|
+
if (this.refreshTimer) {
|
|
514
|
+
clearTimeout(this.refreshTimer);
|
|
515
|
+
this.refreshTimer = null;
|
|
516
|
+
}
|
|
517
|
+
if (!this.refreshToken)
|
|
518
|
+
return;
|
|
519
|
+
try {
|
|
520
|
+
// Decode JWT payload to get exp (without verifying — just need the timestamp)
|
|
521
|
+
const parts = token.split('.');
|
|
522
|
+
if (parts.length !== 3)
|
|
523
|
+
return;
|
|
524
|
+
const payload = JSON.parse(Buffer.from(parts[1], 'base64url').toString('utf8'));
|
|
525
|
+
const exp = payload.exp;
|
|
526
|
+
if (!exp)
|
|
527
|
+
return;
|
|
528
|
+
const now = Math.floor(Date.now() / 1000);
|
|
529
|
+
// Refresh 5 minutes (300s) before expiry
|
|
530
|
+
const refreshAt = exp - 300;
|
|
531
|
+
const delayMs = Math.max(0, (refreshAt - now) * 1000);
|
|
532
|
+
if (delayMs <= 0) {
|
|
533
|
+
// Token already near expiry — refresh immediately
|
|
534
|
+
this.logger.info('Access token near expiry, refreshing immediately');
|
|
535
|
+
this.tryRefreshToken().catch(() => { });
|
|
536
|
+
return;
|
|
537
|
+
}
|
|
538
|
+
this.refreshTimer = setTimeout(() => {
|
|
539
|
+
this.logger.info('Proactive token refresh triggered');
|
|
540
|
+
this.tryRefreshToken().catch(() => { });
|
|
541
|
+
}, delayMs);
|
|
542
|
+
// Unref so the timer doesn't keep the process alive
|
|
543
|
+
if (this.refreshTimer.unref)
|
|
544
|
+
this.refreshTimer.unref();
|
|
545
|
+
const minutesUntilRefresh = Math.round(delayMs / 60_000);
|
|
546
|
+
this.logger.debug('Token refresh scheduled', { minutesUntilRefresh });
|
|
547
|
+
}
|
|
548
|
+
catch {
|
|
549
|
+
this.logger.debug('Could not schedule token refresh (non-fatal)');
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
// -------------------------------------------------------------------------
|
|
388
553
|
// Private helpers
|
|
389
554
|
// -------------------------------------------------------------------------
|
|
390
555
|
/**
|
|
@@ -428,6 +593,14 @@ export class CloudClientService {
|
|
|
428
593
|
handleAuthFailure(context, status) {
|
|
429
594
|
this.logger.warn(`Cloud token expired or revoked during ${context}`, { status });
|
|
430
595
|
this.connectionStatus = CLOUD_CONSTANTS.CONNECTION_STATUS.TOKEN_EXPIRED;
|
|
596
|
+
// Attempt auto-refresh in background if refresh token is available
|
|
597
|
+
if (this.refreshToken) {
|
|
598
|
+
this.tryRefreshToken().then((refreshed) => {
|
|
599
|
+
if (refreshed) {
|
|
600
|
+
this.logger.info(`Token auto-refreshed after ${context} auth failure`);
|
|
601
|
+
}
|
|
602
|
+
}).catch(() => { });
|
|
603
|
+
}
|
|
431
604
|
}
|
|
432
605
|
}
|
|
433
606
|
//# sourceMappingURL=cloud-client.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-client.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-client.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloud-client.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-client.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-initializer.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"cloud-initializer.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,eAAe,CAAC,CA+G5E"}
|
|
@@ -41,14 +41,46 @@ export async function initializeCloudIfConfigured() {
|
|
|
41
41
|
logger.info('Restoring cloud connection from persisted config', {
|
|
42
42
|
cloudUrl: config.cloudUrl,
|
|
43
43
|
tier: config.tier,
|
|
44
|
+
hasRefreshToken: !!config.refreshToken,
|
|
44
45
|
});
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
// Check if the stored access token is expired and needs refresh
|
|
47
|
+
let activeToken = config.token;
|
|
48
|
+
let tokenWasRefreshed = false;
|
|
49
|
+
try {
|
|
50
|
+
const { verifyJwt } = await import('../../controllers/cloud/cloud-google-auth.controller.js');
|
|
51
|
+
const payload = verifyJwt(config.token);
|
|
52
|
+
if (!payload) {
|
|
53
|
+
// Access token expired — try to refresh
|
|
54
|
+
if (config.refreshToken) {
|
|
55
|
+
logger.info('Stored access token expired, attempting auto-refresh');
|
|
56
|
+
// Temporarily connect with expired token + refresh token so tryRefreshToken works
|
|
57
|
+
client.connectLocal(config.cloudUrl, config.token, config.tier || CLOUD_CONSTANTS.TIERS.FREE, config.refreshToken);
|
|
58
|
+
const refreshed = await client.tryRefreshToken();
|
|
59
|
+
if (refreshed) {
|
|
60
|
+
activeToken = client.getToken() || config.token;
|
|
61
|
+
tokenWasRefreshed = true;
|
|
62
|
+
logger.info('Access token auto-refreshed on startup');
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
logger.warn('Token auto-refresh failed on startup — connection may be in token_expired state');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
logger.warn('Stored access token expired and no refresh token available — user must re-login');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
logger.debug('Token verification not available during startup (non-fatal)');
|
|
75
|
+
}
|
|
76
|
+
// Connect (or reconnect) with the active token
|
|
77
|
+
if (!tokenWasRefreshed) {
|
|
78
|
+
client.connectLocal(config.cloudUrl, activeToken, config.tier || CLOUD_CONSTANTS.TIERS.FREE, config.refreshToken);
|
|
79
|
+
}
|
|
48
80
|
// Trigger relay auto-connect (same as in cloud.controller.ts connectToCloud)
|
|
49
81
|
try {
|
|
50
82
|
const { autoConnectRelayFromToken } = await import('../../controllers/cloud/cloud.controller.js');
|
|
51
|
-
autoConnectRelayFromToken(
|
|
83
|
+
autoConnectRelayFromToken(activeToken);
|
|
52
84
|
}
|
|
53
85
|
catch {
|
|
54
86
|
logger.debug('Relay auto-connect not available during startup (non-fatal)');
|
|
@@ -58,7 +90,7 @@ export async function initializeCloudIfConfigured() {
|
|
|
58
90
|
const identity = await DeviceIdentityService.getInstance().getOrCreateIdentity();
|
|
59
91
|
CloudSyncService.getInstance().start({
|
|
60
92
|
cloudUrl: config.cloudUrl,
|
|
61
|
-
token:
|
|
93
|
+
token: activeToken,
|
|
62
94
|
deviceId: identity.deviceId,
|
|
63
95
|
deviceName: identity.deviceName,
|
|
64
96
|
});
|
|
@@ -71,7 +103,10 @@ export async function initializeCloudIfConfigured() {
|
|
|
71
103
|
error: syncError instanceof Error ? syncError.message : String(syncError),
|
|
72
104
|
});
|
|
73
105
|
}
|
|
74
|
-
logger.info('Cloud connection restored successfully', {
|
|
106
|
+
logger.info('Cloud connection restored successfully', {
|
|
107
|
+
tier: config.tier,
|
|
108
|
+
tokenRefreshed: tokenWasRefreshed,
|
|
109
|
+
});
|
|
75
110
|
return { attempted: true, success: true };
|
|
76
111
|
}
|
|
77
112
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-initializer.js","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAkB,MAAM,oBAAoB,CAAC;AAErE,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;AAcrF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B;IAChD,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC;IAEhD,oDAAoD;IACpD,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACjE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,wBAAwB;IACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAClD,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC1D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE;YAC/D,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;
|
|
1
|
+
{"version":3,"file":"cloud-initializer.js","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,6 +104,15 @@ export declare class CloudSyncService extends EventEmitter {
|
|
|
104
104
|
* @returns Array of SyncDevice objects (may include offline devices)
|
|
105
105
|
*/
|
|
106
106
|
getDevices(): SyncDevice[];
|
|
107
|
+
/**
|
|
108
|
+
* Update the authentication token used for Cloud API requests.
|
|
109
|
+
*
|
|
110
|
+
* Called by CloudClientService after a successful token refresh
|
|
111
|
+
* so that heartbeat, device poll, and message poll use the new token.
|
|
112
|
+
*
|
|
113
|
+
* @param newToken - New JWT access token
|
|
114
|
+
*/
|
|
115
|
+
updateToken(newToken: string): void;
|
|
107
116
|
/**
|
|
108
117
|
* Get only online devices (excluding this device).
|
|
109
118
|
*
|
|
@@ -135,15 +144,23 @@ export declare class CloudSyncService extends EventEmitter {
|
|
|
135
144
|
/**
|
|
136
145
|
* Poll the Cloud server for the current device list.
|
|
137
146
|
* Updates the cached device list and emits events on changes.
|
|
147
|
+
*
|
|
148
|
+
* The Cloud server returns devices in relay format:
|
|
149
|
+
* `{ sessionId, role, state, pairedWith, registeredAt, lastHeartbeatAt, name }`
|
|
150
|
+
* which we normalize to the SyncDevice shape used by the frontend.
|
|
138
151
|
*/
|
|
139
152
|
pollDevices(): Promise<void>;
|
|
140
153
|
/**
|
|
141
154
|
* Poll the Cloud server for pending messages addressed to this device.
|
|
142
155
|
* Emits 'message' event for each received message, then acknowledges.
|
|
156
|
+
*
|
|
157
|
+
* The Cloud poll endpoint uses `queueId` query param (since JWT has no deviceId claim).
|
|
158
|
+
* Cloud returns messages as: `{ id, fromDeviceId, payload, createdAt }`.
|
|
143
159
|
*/
|
|
144
160
|
pollMessages(): Promise<void>;
|
|
145
161
|
/**
|
|
146
162
|
* Acknowledge processed messages so Cloud can remove them from the queue.
|
|
163
|
+
* Uses `queueId` in body since the JWT has no deviceId claim.
|
|
147
164
|
*
|
|
148
165
|
* @param messageIds - Array of message IDs to acknowledge
|
|
149
166
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-sync.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-sync.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,UAAU,EAIV,WAAW,EACZ,MAAM,uBAAuB,CAAC;AA8C/B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,4BAA4B;IAC5B,OAAO,CAAC,KAAK,CAA6B;IAC1C,mCAAmC;IACnC,OAAO,CAAC,MAAM,CAAgC;IAC9C,wCAAwC;IACxC,OAAO,CAAC,OAAO,CAAoB;IACnC,4BAA4B;IAC5B,OAAO,CAAC,OAAO,CAAa;IAE5B,6BAA6B;IAC7B,OAAO,CAAC,cAAc,CAA+C;IACrE,+BAA+B;IAC/B,OAAO,CAAC,eAAe,CAA+C;IACtE,gCAAgC;IAChC,OAAO,CAAC,gBAAgB,CAA+C;IAEvE,0CAA0C;IAC1C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,4CAA4C;IAC5C,OAAO,CAAC,kBAAkB,CAAK;IAC/B,6CAA6C;IAC7C,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO;IAKP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOtC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAW5B;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IA6CpC;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAiBZ;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,QAAQ,IAAI,cAAc;IAI1B;;;;OAIG;IACH,UAAU,IAAI,UAAU,EAAE;IAI1B;;;;OAIG;IACH,gBAAgB,IAAI,UAAU,EAAE;IAIhC;;;;;;;;;;;;;;;OAeG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"cloud-sync.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/cloud/cloud-sync.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,UAAU,EAIV,WAAW,EACZ,MAAM,uBAAuB,CAAC;AA8C/B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,4BAA4B;IAC5B,OAAO,CAAC,KAAK,CAA6B;IAC1C,mCAAmC;IACnC,OAAO,CAAC,MAAM,CAAgC;IAC9C,wCAAwC;IACxC,OAAO,CAAC,OAAO,CAAoB;IACnC,4BAA4B;IAC5B,OAAO,CAAC,OAAO,CAAa;IAE5B,6BAA6B;IAC7B,OAAO,CAAC,cAAc,CAA+C;IACrE,+BAA+B;IAC/B,OAAO,CAAC,eAAe,CAA+C;IACtE,gCAAgC;IAChC,OAAO,CAAC,gBAAgB,CAA+C;IAEvE,0CAA0C;IAC1C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,4CAA4C;IAC5C,OAAO,CAAC,kBAAkB,CAAK;IAC/B,6CAA6C;IAC7C,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO;IAKP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOtC;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAW5B;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IA6CpC;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAiBZ;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,QAAQ,IAAI,cAAc;IAI1B;;;;OAIG;IACH,UAAU,IAAI,UAAU,EAAE;IAI1B;;;;;;;OAOG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOnC;;;;OAIG;IACH,gBAAgB,IAAI,UAAU,EAAE;IAIhC;;;;;;;;;;;;;;;OAeG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BzF;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CpC;;;;;;;OAOG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA4FlC;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAsDnC;;;;;OAKG;YACW,WAAW;IA2BzB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAoB3B;;;;OAIG;IACH,OAAO,CAAC,WAAW;CAMpB"}
|