cloud: expose server id header

This commit is contained in:
Koushik Dutta
2024-09-20 15:52:12 -07:00
parent b658202d8a
commit ceec1174e3
4 changed files with 11 additions and 4 deletions

View File

@@ -169,6 +169,7 @@ export async function loginScryptedClient(options: ScryptedLoginOptions) {
scryptedCloud: response.headers.get('x-scrypted-cloud') === 'true',
directAddress: response.headers.get('x-scrypted-direct-address'),
cloudAddress: response.headers.get('x-scrypted-cloud-address'),
serverId: response.headers.get('x-scrypted-server-id'),
};
}
@@ -213,6 +214,7 @@ export async function checkScryptedClientLogin(options?: ScryptedConnectionOptio
scryptedCloud: response.headers.get('x-scrypted-cloud') === 'true',
directAddress: response.headers.get('x-scrypted-direct-address'),
cloudAddress: response.headers.get('x-scrypted-cloud-address'),
serverId: response.headers.get('x-scrypted-server-id'),
};
}
@@ -227,6 +229,7 @@ export interface ScryptedClientLoginResult {
directAddress: string;
cloudAddress: string;
hostname: string;
serverId: string;
}
export class ScryptedClientLoginError extends Error {
@@ -274,6 +277,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro
let cloudAddress: string;
let hostname: string;
let token: string;
let serverId: string;
console.log('@scrypted/client', packageJson.version);
@@ -299,6 +303,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro
queryToken = loginResult.queryToken;
token = loginResult.token;
hostname = loginResult.hostname;
serverId = loginResult.serverId;
console.log('login result', Date.now() - start, loginResult);
}
else {
@@ -372,6 +377,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro
queryToken = loginCheck.queryToken;
token = loginCheck.token;
hostname = loginCheck.hostname;
serverId = loginCheck.serverId;
console.log('login checked', Date.now() - start, loginCheck);
}
@@ -874,6 +880,7 @@ export async function connectScryptedClient(options: ScryptedClientOptions): Pro
authorization,
cloudAddress,
hostname,
serverId,
},
connectRPCObject,
fork: undefined,

View File

@@ -1,12 +1,12 @@
{
"name": "@scrypted/cloud",
"version": "0.2.45",
"version": "0.2.46",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@scrypted/cloud",
"version": "0.2.45",
"version": "0.2.46",
"dependencies": {
"@eneris/push-receiver": "^4.2.0",
"@scrypted/common": "file:../../common",

View File

@@ -53,5 +53,5 @@
"@types/node": "^22.5.2",
"ts-node": "^10.9.2"
},
"version": "0.2.45"
"version": "0.2.46"
}

View File

@@ -917,7 +917,7 @@ class ScryptedCloud extends ScryptedDeviceBase implements OauthClient, Settings,
if (!domain && this.storageSettings.values.forwardingMode === 'Custom Domain' && this.storageSettings.values.hostname)
domain = `https://${this.storageSettings.values.hostname}`;
res.headers['X-Scrypted-Cloud-Address'] = domain;
res.headers['Access-Control-Expose-Headers'] = 'X-Scrypted-Cloud, X-Scrypted-Direct-Address, X-Scrypted-Cloud-Address';
res.headers['Access-Control-Expose-Headers'] = 'X-Scrypted-Cloud, X-Scrypted-Direct-Address, X-Scrypted-Cloud-Address, X-Scrypted-Server-Id';
});
let backoff = 0;