feat: add baseos image builds
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import * as plugins from '../plugins.js';
|
||||
|
||||
export type TBaseOsImageArchitecture = 'amd64' | 'arm64' | 'rpi';
|
||||
export type TBaseOsImageBuildStatus = 'queued' | 'building' | 'ready' | 'failed' | 'cancelled';
|
||||
|
||||
export interface IBaseOsImageArtifact {
|
||||
bucketName: string;
|
||||
key: string;
|
||||
filename: string;
|
||||
contentType: string;
|
||||
size: number;
|
||||
sha256: string;
|
||||
createdAt: number;
|
||||
}
|
||||
|
||||
export interface IBaseOsImageBuildPublic {
|
||||
id: string;
|
||||
data: {
|
||||
status: TBaseOsImageBuildStatus;
|
||||
architecture: TBaseOsImageArchitecture;
|
||||
cloudlyUrl: string;
|
||||
sourceImageUrl?: string;
|
||||
ubuntuVersion?: string;
|
||||
hostname?: string;
|
||||
wifiSsid?: string;
|
||||
sshPublicKey?: string;
|
||||
artifact?: IBaseOsImageArtifact;
|
||||
errorText?: string;
|
||||
logs: string[];
|
||||
createdAt: number;
|
||||
updatedAt: number;
|
||||
startedAt?: number;
|
||||
completedAt?: number;
|
||||
expiresAt?: number;
|
||||
};
|
||||
}
|
||||
|
||||
@plugins.smartdata.managed()
|
||||
export class BaseOsImageBuild extends plugins.smartdata.SmartDataDbDoc<
|
||||
BaseOsImageBuild,
|
||||
IBaseOsImageBuildPublic
|
||||
> {
|
||||
constructor(optionsArg?: IBaseOsImageBuildPublic & {
|
||||
provisioningTokenHash?: string;
|
||||
provisioningTokenConsumedAt?: number;
|
||||
downloadTokenHash?: string;
|
||||
downloadTokenExpiresAt?: number;
|
||||
}) {
|
||||
super();
|
||||
if (optionsArg) {
|
||||
Object.assign(this, optionsArg);
|
||||
}
|
||||
}
|
||||
|
||||
@plugins.smartdata.unI()
|
||||
public id!: string;
|
||||
|
||||
@plugins.smartdata.svDb()
|
||||
public provisioningTokenHash!: string;
|
||||
|
||||
@plugins.smartdata.svDb()
|
||||
public provisioningTokenConsumedAt?: number;
|
||||
|
||||
@plugins.smartdata.svDb()
|
||||
public downloadTokenHash?: string;
|
||||
|
||||
@plugins.smartdata.svDb()
|
||||
public downloadTokenExpiresAt?: number;
|
||||
|
||||
@plugins.smartdata.svDb()
|
||||
public data!: IBaseOsImageBuildPublic['data'];
|
||||
|
||||
public toPublicBuild(): IBaseOsImageBuildPublic {
|
||||
return {
|
||||
id: this.id,
|
||||
data: this.data,
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user