feat: add baseos image build contracts

This commit is contained in:
2026-05-07 17:44:31 +00:00
parent ff144e2826
commit dbcb75c460
3 changed files with 105 additions and 0 deletions
+57
View File
@@ -61,6 +61,63 @@ export interface IBaseOsNode {
}; };
} }
export type TBaseOsImageArchitecture = 'amd64' | 'arm64' | 'rpi';
export type TBaseOsImageBuildStatus = 'queued' | 'building' | 'ready' | 'failed' | 'cancelled';
export interface IBaseOsWifiConfig {
ssid: string;
password?: string;
}
export interface IBaseOsImageArtifact {
bucketName: string;
key: string;
filename: string;
contentType: string;
size: number;
sha256: string;
createdAt: number;
}
export interface IBaseOsImageBuild {
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;
};
}
export interface IBaseOsImageBuildRequest {
architecture: TBaseOsImageArchitecture;
cloudlyUrl?: string;
sourceImageUrl?: string;
ubuntuVersion?: string;
hostname?: string;
wifi?: IBaseOsWifiConfig;
sshPublicKey?: string;
artifactRetentionMs?: number;
}
export interface IBaseOsImageDownloadUrl {
url: string;
expiresAt: number;
}
export interface IBaseOsRegisterResult { export interface IBaseOsRegisterResult {
nodeId?: string; nodeId?: string;
nodeToken?: string; nodeToken?: string;
+4
View File
@@ -11,6 +11,10 @@ export interface ICloudlySettings {
// BaseOS enrollment // BaseOS enrollment
baseosJoinToken?: string; baseosJoinToken?: string;
// CoreBuild worker used for image generation
corebuildWorkerUrl?: string;
corebuildWorkerToken?: string;
// AWS Credentials // AWS Credentials
awsAccessKey?: string; awsAccessKey?: string;
+44
View File
@@ -1,5 +1,8 @@
import type { import type {
IBaseOsHeartbeatResult, IBaseOsHeartbeatResult,
IBaseOsImageBuild,
IBaseOsImageBuildRequest,
IBaseOsImageDownloadUrl,
IBaseOsNode, IBaseOsNode,
IBaseOsRegisterResult, IBaseOsRegisterResult,
IBaseOsRuntimeInfo, IBaseOsRuntimeInfo,
@@ -34,3 +37,44 @@ export interface IRequest_Any_Cloudly_GetBaseOsNodes {
nodes: IBaseOsNode[]; nodes: IBaseOsNode[];
}; };
} }
export interface IRequest_Any_Cloudly_CreateBaseOsImageBuild {
method: 'createBaseOsImageBuild';
request: {
identity: IIdentity;
build: IBaseOsImageBuildRequest;
};
response: {
build: IBaseOsImageBuild;
};
}
export interface IRequest_Any_Cloudly_GetBaseOsImageBuilds {
method: 'getBaseOsImageBuilds';
request: {
identity: IIdentity;
};
response: {
builds: IBaseOsImageBuild[];
};
}
export interface IRequest_Any_Cloudly_GetBaseOsImageBuildById {
method: 'getBaseOsImageBuildById';
request: {
identity: IIdentity;
buildId: string;
};
response: {
build: IBaseOsImageBuild;
};
}
export interface IRequest_Any_Cloudly_CreateBaseOsImageDownloadUrl {
method: 'createBaseOsImageDownloadUrl';
request: {
identity: IIdentity;
buildId: string;
};
response: IBaseOsImageDownloadUrl;
}