feat(update): add Onebox self-upgrade flow

This commit is contained in:
2026-05-24 11:49:43 +00:00
parent 4812621376
commit 05235ec284
10 changed files with 487 additions and 48 deletions
+16
View File
@@ -2,6 +2,7 @@ import * as plugins from '../../plugins.ts';
import type { OpsServer } from '../classes.opsserver.ts';
import * as interfaces from '../../../ts_interfaces/index.ts';
import { requireAdminIdentity } from '../helpers/guards.ts';
import { getErrorMessage } from '../../utils/error.ts';
export class StatusHandler {
public typedrouter = new plugins.typedrequest.TypedRouter();
@@ -22,5 +23,20 @@ export class StatusHandler {
},
),
);
this.typedrouter.addTypedHandler(
new plugins.typedrequest.TypedHandler<interfaces.requests.IReq_StartOneboxUpgrade>(
'startOneboxUpgrade',
async (dataArg) => {
await requireAdminIdentity(this.opsServerRef.adminHandler, dataArg);
try {
const upgrade = await this.opsServerRef.oneboxRef.updateManager.startDetachedUpgrade();
return { upgrade };
} catch (error) {
throw new plugins.typedrequest.TypedResponseError(getErrorMessage(error));
}
},
),
);
}
}