mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 10:21:52 +00:00
0.3.2 final cleanup (#1782)
* bump version with stubbed release notes * increase BE timeout * 032 release notes * hide developer menu for now * remove unused sub/import * remoce reconnect from disks res in setup wiz * remove quirks * flatten drives response Co-authored-by: Matt Hill <matthewonthemoon@gmail.com>
This commit is contained in:
4
frontend/package-lock.json
generated
4
frontend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "embassy-os",
|
||||
"version": "0.3.1.1",
|
||||
"version": "0.3.2",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "embassy-os",
|
||||
"version": "0.3.1.1",
|
||||
"version": "0.3.2",
|
||||
"dependencies": {
|
||||
"@angular/animations": "^14.1.0",
|
||||
"@angular/common": "^14.1.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "embassy-os",
|
||||
"version": "0.3.1.1",
|
||||
"version": "0.3.2",
|
||||
"author": "Start9 Labs, Inc",
|
||||
"homepage": "https://start9.com/",
|
||||
"scripts": {
|
||||
|
||||
@@ -49,7 +49,7 @@ export class EmbassyPage {
|
||||
async getDrives() {
|
||||
this.loading = true
|
||||
try {
|
||||
const { disks, reconnect } = await this.apiService.getDrives()
|
||||
const disks = await this.apiService.getDrives()
|
||||
this.storageDrives = disks.filter(
|
||||
d =>
|
||||
!d.partitions
|
||||
@@ -59,15 +59,6 @@ export class EmbassyPage {
|
||||
?.logicalname,
|
||||
),
|
||||
)
|
||||
if (!this.storageDrives.length && reconnect.length) {
|
||||
const list = `<ul>${reconnect.map(recon => `<li>${recon}</li>`)}</ul>`
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Warning',
|
||||
message: `One or more devices you connected had to be reconfigured to support the current hardware platform. Please unplug and replug the following device(s), then refresh the page:<br> ${list}`,
|
||||
buttons: ['OK'],
|
||||
})
|
||||
await alert.present()
|
||||
}
|
||||
} catch (e: any) {
|
||||
this.errorToastService.present(e)
|
||||
} finally {
|
||||
|
||||
@@ -39,7 +39,7 @@ export class HomePage {
|
||||
async ngOnInit() {
|
||||
try {
|
||||
this.encrypted.secret = await this.unencrypted.getSecret()
|
||||
const { disks } = await this.unencrypted.getDrives()
|
||||
const disks = await this.unencrypted.getDrives()
|
||||
this.guid = disks.find(d => !!d.guid)?.guid
|
||||
} catch (e: any) {
|
||||
this.error = true
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Component, Input } from '@angular/core'
|
||||
import { AlertController, ModalController, NavController } from '@ionic/angular'
|
||||
import { ModalController, NavController } from '@ionic/angular'
|
||||
import { CifsModal } from 'src/app/modals/cifs-modal/cifs-modal.page'
|
||||
import { ApiService, DiskBackupTarget } from 'src/app/services/api/api.service'
|
||||
import { ErrorToastService } from '@start9labs/shared'
|
||||
@@ -20,7 +20,6 @@ export class RecoverPage {
|
||||
private readonly navCtrl: NavController,
|
||||
private readonly modalCtrl: ModalController,
|
||||
private readonly modalController: ModalController,
|
||||
private readonly alertCtrl: AlertController,
|
||||
private readonly errToastService: ErrorToastService,
|
||||
private readonly stateService: StateService,
|
||||
) {}
|
||||
@@ -41,7 +40,7 @@ export class RecoverPage {
|
||||
async getDrives() {
|
||||
this.mappedDrives = []
|
||||
try {
|
||||
const { disks, reconnect } = await this.apiService.getDrives()
|
||||
const disks = await this.apiService.getDrives()
|
||||
disks
|
||||
.filter(d => d.partitions.length)
|
||||
.forEach(d => {
|
||||
@@ -62,21 +61,6 @@ export class RecoverPage {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
if (!this.mappedDrives.length && reconnect.length) {
|
||||
const list = `<ul>${reconnect.map(recon => `<li>${recon}</li>`)}</ul>`
|
||||
const alert = await this.alertCtrl.create({
|
||||
header: 'Warning',
|
||||
message: `One or more devices you connected had to be reconfigured to support the current hardware platform. Please unplug and replug the following device(s), then refresh the page:<br> ${list}`,
|
||||
buttons: [
|
||||
{
|
||||
role: 'cancel',
|
||||
text: 'OK',
|
||||
},
|
||||
],
|
||||
})
|
||||
await alert.present()
|
||||
}
|
||||
} catch (e: any) {
|
||||
this.errToastService.present(e)
|
||||
} finally {
|
||||
|
||||
@@ -42,10 +42,7 @@ export type EmbassyOSRecoveryInfo = {
|
||||
'wrapped-key': string | null
|
||||
}
|
||||
|
||||
export type DiskListResponse = {
|
||||
disks: DiskInfo[]
|
||||
reconnect: string[]
|
||||
}
|
||||
export type DiskListResponse = DiskInfo[]
|
||||
|
||||
export type DiskBackupTarget = {
|
||||
vendor: string | null
|
||||
|
||||
@@ -41,7 +41,7 @@ export class LiveApiService implements ApiService {
|
||||
/**
|
||||
* We want to update the secret, which means that we will call in clearnet the
|
||||
* getSecret, and all the information is never in the clear, and only public
|
||||
* information is sent across the network. We don't want to expose that we do
|
||||
* information is sent across the network. We don't want to expose that we do
|
||||
* this wil all public/private key, which means that there is no information loss
|
||||
* through the network.
|
||||
*/
|
||||
|
||||
@@ -37,32 +37,29 @@ export class MockApiService implements ApiService {
|
||||
|
||||
async getDrives() {
|
||||
await pauseFor(1000)
|
||||
return {
|
||||
disks: [
|
||||
{
|
||||
logicalname: 'abcd',
|
||||
vendor: 'Samsung',
|
||||
model: 'T5',
|
||||
partitions: [
|
||||
{
|
||||
logicalname: 'pabcd',
|
||||
label: null,
|
||||
capacity: 73264762332,
|
||||
used: null,
|
||||
'embassy-os': {
|
||||
version: '0.2.17',
|
||||
full: true,
|
||||
'password-hash': null,
|
||||
'wrapped-key': null,
|
||||
},
|
||||
return [
|
||||
{
|
||||
logicalname: 'abcd',
|
||||
vendor: 'Samsung',
|
||||
model: 'T5',
|
||||
partitions: [
|
||||
{
|
||||
logicalname: 'pabcd',
|
||||
label: null,
|
||||
capacity: 73264762332,
|
||||
used: null,
|
||||
'embassy-os': {
|
||||
version: '0.2.17',
|
||||
full: true,
|
||||
'password-hash': null,
|
||||
'wrapped-key': null,
|
||||
},
|
||||
],
|
||||
capacity: 123456789123,
|
||||
guid: 'uuid-uuid-uuid-uuid',
|
||||
},
|
||||
],
|
||||
reconnect: [],
|
||||
}
|
||||
},
|
||||
],
|
||||
capacity: 123456789123,
|
||||
guid: 'uuid-uuid-uuid-uuid',
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
async set02XDrive() {
|
||||
|
||||
@@ -3,9 +3,8 @@
|
||||
</a>
|
||||
<div class="divider"></div>
|
||||
<ion-item-group class="menu">
|
||||
<ion-menu-toggle *ngFor="let page of pages; let i = index" auto-hide="false">
|
||||
<ion-menu-toggle *ngFor="let page of pages" auto-hide="false">
|
||||
<ion-item
|
||||
*ngIf="page.url !== '/developer' || (showDevTools$ | async)"
|
||||
button
|
||||
class="link"
|
||||
color="transparent"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'
|
||||
import { LocalStorageService } from '../../services/local-storage.service'
|
||||
import { EOSService } from '../../services/eos.service'
|
||||
import { PatchDB } from 'patch-db-client'
|
||||
import { Observable } from 'rxjs'
|
||||
@@ -37,11 +36,6 @@ export class MenuComponent {
|
||||
url: '/notifications',
|
||||
icon: 'notifications-outline',
|
||||
},
|
||||
{
|
||||
title: 'Developer Tools',
|
||||
url: '/developer',
|
||||
icon: 'hammer-outline',
|
||||
},
|
||||
]
|
||||
|
||||
readonly notificationCount$ = this.patch.watch$(
|
||||
@@ -53,8 +47,6 @@ export class MenuComponent {
|
||||
|
||||
readonly showEOSUpdate$ = this.eosService.showUpdate$
|
||||
|
||||
readonly showDevTools$ = this.localStorageService.showDevTools$
|
||||
|
||||
readonly updateCount$: Observable<number> = this.marketplaceService
|
||||
.getUpdates()
|
||||
.pipe(map(pkgs => pkgs.length))
|
||||
@@ -63,7 +55,6 @@ export class MenuComponent {
|
||||
|
||||
constructor(
|
||||
private readonly patch: PatchDB<DataModel>,
|
||||
private readonly localStorageService: LocalStorageService,
|
||||
private readonly eosService: EOSService,
|
||||
@Inject(AbstractMarketplaceService)
|
||||
private readonly marketplaceService: MarketplaceService,
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
<ion-content class="ion-padding">
|
||||
<h2>This release</h2>
|
||||
<h4>0.3.1~1</h4>
|
||||
<h4>0.3.2</h4>
|
||||
<p class="note-padding">
|
||||
View the complete
|
||||
<a
|
||||
href="https://github.com/Start9Labs/embassy-os/releases/tag/v0.3.1.1"
|
||||
href="https://github.com/Start9Labs/embassy-os/releases/tag/v0.3.2"
|
||||
target="_blank"
|
||||
noreferrer
|
||||
>release notes</a
|
||||
@@ -24,38 +24,12 @@
|
||||
</p>
|
||||
<h6>Highlights</h6>
|
||||
<ul class="spaced-list">
|
||||
<li>Multiple bug fixes.</li>
|
||||
</ul>
|
||||
|
||||
<br />
|
||||
<h2>Previous releases in this series</h2>
|
||||
<h4>0.3.1</h4>
|
||||
<p class="note-padding">
|
||||
View the complete
|
||||
<a
|
||||
href="https://github.com/Start9Labs/embassy-os/releases/tag/v0.3.1"
|
||||
target="_blank"
|
||||
noreferrer
|
||||
>release notes</a
|
||||
>
|
||||
for more details.
|
||||
</p>
|
||||
<h6>Highlights</h6>
|
||||
<ul class="spaced-list">
|
||||
<li>
|
||||
Drag and drop installs. Install a service simply by dragging it into the
|
||||
browser
|
||||
</li>
|
||||
<li>
|
||||
Password reset flow. Requires physical access to the device for security
|
||||
purposes
|
||||
</li>
|
||||
<li>Selective backups. Only back up the services you choose</li>
|
||||
<li>New button to restart a service</li>
|
||||
<li>New button to log out all sessions</li>
|
||||
<li>New button to copy/paste service and OS logs</li>
|
||||
<li>Significant speedup for service configuration and property viewing</li>
|
||||
<li>Multiple bugfixes and performance improvements</li>
|
||||
<li>Autoscrolling for logs</li>
|
||||
<li>Improved connectivity between browser and Embassy</li>
|
||||
<li>Switch to Postgres for EOS database for better performance</li>
|
||||
<li>Multiple bug fixes and under-the-hood improvements</li>
|
||||
<li>Various UI/UX enhancements</li>
|
||||
<li>Removal of product keys</li>
|
||||
</ul>
|
||||
<div class="ion-text-center ion-padding">
|
||||
<ion-button
|
||||
|
||||
@@ -538,7 +538,7 @@ export class ServerShowPage {
|
||||
this.clicks++
|
||||
if (this.clicks >= 5) {
|
||||
this.clicks = 0
|
||||
const newVal = await this.localStorageService.toggleShowDiskRepair()
|
||||
await this.localStorageService.toggleShowDiskRepair()
|
||||
}
|
||||
setTimeout(() => {
|
||||
this.clicks = Math.max(this.clicks - 1, 0)
|
||||
|
||||
@@ -338,7 +338,6 @@ export module Mock {
|
||||
},
|
||||
},
|
||||
},
|
||||
permissions: {},
|
||||
dependencies: {},
|
||||
}
|
||||
|
||||
@@ -472,7 +471,6 @@ export module Mock {
|
||||
'input-spec': null,
|
||||
},
|
||||
},
|
||||
permissions: {},
|
||||
dependencies: {
|
||||
bitcoind: {
|
||||
version: '=0.21.0',
|
||||
@@ -587,7 +585,6 @@ export module Mock {
|
||||
},
|
||||
migrations: null,
|
||||
actions: {},
|
||||
permissions: {},
|
||||
dependencies: {
|
||||
bitcoind: {
|
||||
version: '>=0.20.0',
|
||||
|
||||
@@ -27,7 +27,7 @@ export const mockPatchData: DataModel = {
|
||||
},
|
||||
'server-info': {
|
||||
id: 'abcdefgh',
|
||||
version: '0.3.1.1',
|
||||
version: '0.3.2',
|
||||
'last-backup': new Date(new Date().valueOf() - 604800001).toISOString(),
|
||||
'lan-address': 'https://embassy-abcdefgh.local',
|
||||
'tor-address': 'http://myveryownspecialtoraddress.onion',
|
||||
@@ -381,7 +381,6 @@ export const mockPatchData: DataModel = {
|
||||
},
|
||||
},
|
||||
},
|
||||
permissions: {},
|
||||
dependencies: {},
|
||||
},
|
||||
installed: {
|
||||
@@ -578,7 +577,6 @@ export const mockPatchData: DataModel = {
|
||||
'input-spec': null,
|
||||
},
|
||||
},
|
||||
permissions: {},
|
||||
dependencies: {
|
||||
bitcoind: {
|
||||
version: '=0.21.0',
|
||||
|
||||
@@ -147,7 +147,6 @@ export interface Manifest extends MarketplaceManifest<DependencyConfig | null> {
|
||||
backup: BackupActions
|
||||
migrations: Migrations | null
|
||||
actions: Record<string, Action>
|
||||
permissions: any // @TODO 0.3.1
|
||||
}
|
||||
|
||||
export interface DependencyConfig {
|
||||
|
||||
Reference in New Issue
Block a user