chore: offline hosts

This commit is contained in:
Mo
2023-03-18 11:26:05 -05:00
parent 2c3dbf9e32
commit b7757983df
3 changed files with 7 additions and 6 deletions

View File

@@ -7,6 +7,7 @@ export const TRUSTED_FEATURE_HOSTS = [
'extensions.standardnotes.com', 'extensions.standardnotes.com',
'extensions.standardnotes.org', 'extensions.standardnotes.org',
'features.standardnotes.com', 'features.standardnotes.com',
'localhost',
] ]
export enum ExtensionsServerURL { export enum ExtensionsServerURL {

View File

@@ -648,10 +648,10 @@ export class SNApiService
throw Error('Cannot download offline repo without url and offlineKEy') throw Error('Cannot download offline repo without url and offlineKEy')
} }
const { host } = new URL(featuresUrl) const { hostname } = new URL(featuresUrl)
if (!TRUSTED_FEATURE_HOSTS.includes(host)) { if (!TRUSTED_FEATURE_HOSTS.includes(hostname)) {
return new ClientDisplayableError('This offline features host is not in the trusted allowlist.') return new ClientDisplayableError(`The offline features host ${hostname} is not in the trusted allowlist.`)
} }
const response = await this.request<GetOfflineFeaturesResponse>({ const response = await this.request<GetOfflineFeaturesResponse>({

View File

@@ -282,7 +282,7 @@ export class SNFeaturesService
void this.syncService.sync() void this.syncService.sync()
return this.downloadOfflineFeatures(offlineRepo) return this.downloadOfflineFeatures(offlineRepo)
} catch (err) { } catch (err) {
return new ClientDisplayableError(API_MESSAGE_FAILED_OFFLINE_ACTIVATION) return new ClientDisplayableError(`${API_MESSAGE_FAILED_OFFLINE_ACTIVATION}, ${err}`)
} }
} }
@@ -392,12 +392,12 @@ export class SNFeaturesService
} }
const offlineRepo = this.getOfflineRepo() const offlineRepo = this.getOfflineRepo()
if (!offlineRepo) { if (!offlineRepo || !offlineRepo.content.offlineFeaturesUrl) {
return false return false
} }
const hasFirstPartyOfflineSubscription = offlineRepo.content.offlineFeaturesUrl === PROD_OFFLINE_FEATURES_URL const hasFirstPartyOfflineSubscription = offlineRepo.content.offlineFeaturesUrl === PROD_OFFLINE_FEATURES_URL
return hasFirstPartyOfflineSubscription return hasFirstPartyOfflineSubscription || new URL(offlineRepo.content.offlineFeaturesUrl).hostname === 'localhost'
} }
async updateOnlineRolesAndFetchFeatures(userUuid: UuidString, roles: string[]): Promise<void> { async updateOnlineRolesAndFetchFeatures(userUuid: UuidString, roles: string[]): Promise<void> {