github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/dashboard/frontend/src/types.ts (about) 1 export interface ResourceUsageConfig { 2 CPU?: string, 3 Memory?: string, 4 Disk?: string, 5 GPU: string, 6 } 7 8 export interface ResourceUsageData { 9 CPU?: number, 10 Memory?: number, 11 Disk?: number, 12 GPU?: number, 13 } 14 15 export interface ResourceUsageProfile { 16 Job?: ResourceUsageData, 17 SystemUsing?: ResourceUsageData, 18 SystemTotal?: ResourceUsageData, 19 } 20 21 export interface RunCommandResult { 22 stdout: string, 23 stdouttruncated: boolean, 24 stderr: string, 25 stderrtruncated: boolean, 26 exitCode: number, 27 runnerError: string, 28 } 29 30 export interface StorageSpec { 31 StorageSource: string, 32 Name?: string, 33 CID?: string, 34 URL?: string, 35 path?: string, 36 Metadata?: { [key: string]: string}, 37 } 38 39 export interface PublishedResult { 40 NodeID?: string, 41 ShardIndex?: number, 42 Data?: StorageSpec, 43 } 44 45 export interface JobMetadata { 46 ID: string, 47 CreatedAt: string, 48 ClientID?: string, 49 } 50 51 export interface JobRequester { 52 RequesterNodeID: string, 53 RequesterPublicKey?: string, 54 } 55 56 export interface JobStatus { 57 JobState: JobState, 58 JobEvents: JobEvent[], 59 LocalJobEvents: JobLocalEvent[], 60 Requester: JobRequester, 61 } 62 63 export interface Job { 64 APIVersion: string, 65 Metadata: JobMetadata, 66 Spec: Spec, 67 Status: JobStatus, 68 } 69 70 export interface JobWithInfo { 71 Job: Job, 72 JobState: JobState, 73 JobEvents: JobEvent[], 74 JobLocalEvents: JobLocalEvent[], 75 } 76 77 export interface JobShard { 78 Job?: Job, 79 Index?: number, 80 } 81 82 export interface JobExecutionPlan { 83 ShardsTotal?: number, 84 } 85 86 export interface JobShardingConfig { 87 GlobPattern?: string, 88 BatchSize?: number, 89 GlobPatternBasePath?: string, 90 } 91 92 export interface JobState { 93 Nodes: { [key: string]: JobNodeState}, 94 } 95 96 export interface JobNodeState { 97 Shards: { [key: number]: JobShardState}, 98 } 99 100 export interface JobShardState { 101 NodeId: string, 102 ShardIndex: number, 103 State: string, 104 Status: string, 105 VerificationProposal?: string, 106 VerificationResult?: VerificationResult, 107 PublishedResults: StorageSpec, 108 RunOutput?: RunCommandResult, 109 } 110 111 export interface Deal { 112 Concurrency?: number, 113 Confidence?: number, 114 MinBids?: number, 115 } 116 117 export interface Spec { 118 Engine: string, 119 Verifier: string, 120 Publisher: string, 121 Docker: JobSpecDocker, 122 Language: JobSpecLanguage, 123 Wasm: JobSpecWasm, 124 Resources: ResourceUsageConfig, 125 inputs: StorageSpec[], 126 Contexts: StorageSpec[], 127 outputs: StorageSpec[], 128 Annotations: string[], 129 Sharding: JobShardingConfig, 130 DoNotTrack: boolean, 131 Deal: Deal, 132 ExecutionPlan: JobExecutionPlan, 133 } 134 135 export interface JobSpecDocker { 136 Image?: string, 137 Entrypoint?: string[], 138 EnvironmentVariables?: string[], 139 WorkingDirectory?: string, 140 } 141 142 export interface JobSpecLanguage { 143 Language?: string, 144 LanguageVersion?: string, 145 DeterministicExecution?: boolean, 146 JobContext?: StorageSpec, 147 Command?: string, 148 ProgramPath?: string, 149 RequirementsPath?: string, 150 } 151 152 export interface JobSpecWasm { 153 EntryPoint?: string, 154 Parameters?: string[], 155 } 156 157 export interface JobLocalEvent { 158 EventName?: string, 159 JobID?: string, 160 ShardIndex?: number, 161 TargetNodeID?: string, 162 } 163 164 export interface JobEvent { 165 APIVersion?: string, 166 JobID: string, 167 ShardIndex: number, 168 ClientID: string, 169 SourceNodeID: string, 170 TargetNodeID: string, 171 EventName: string, 172 Spec?: Spec, 173 JobExecutionPlan?: JobExecutionPlan, 174 Deal?: Deal, 175 Status?: string, 176 VerificationProposal?: string, 177 VerificationResult?: VerificationResult, 178 PublishedResult?: StorageSpec, 179 EventTime: string, 180 SenderPublicKey?: string, 181 RunOutput?: RunCommandResult, 182 } 183 184 export interface VerificationResult { 185 Complete?: boolean, 186 Result?: boolean, 187 } 188 189 export interface JobCreatePayload { 190 ClientID?: string, 191 Job?: Job, 192 Context?: string, 193 } 194 195 export interface JobInfo { 196 job: Job, 197 events: JobEvent[], 198 results: PublishedResult[], 199 state: JobState, 200 moderation: JobModerationSummary, 201 } 202 203 export interface ResourceUsageData { 204 CPU?: number, 205 Memory?: number, 206 Disk?: number, 207 GPU?: number, 208 } 209 210 export interface PeerInfo { 211 ID: string, 212 Addrs: string[], 213 } 214 215 export interface ComputeNodeInfo { 216 ExecutionEngines: string[], 217 MaxCapacity: ResourceUsageData, 218 AvailableCapacity: ResourceUsageData, 219 MaxJobRequirements: ResourceUsageData, 220 RunningExecutions: number, 221 EnqueuedExecutions: number, 222 } 223 224 export interface NodeInfo { 225 PeerInfo: PeerInfo, 226 NodeType: string, 227 ComputeNodeInfo: ComputeNodeInfo, 228 } 229 230 export interface Counter { 231 count: number, 232 } 233 234 export interface AnnotationSummary { 235 annotation: string, 236 count: number, 237 } 238 239 export interface JobMonthSummary { 240 month: string, 241 count: number, 242 } 243 244 export interface JobExecutorSummary { 245 executor: string, 246 count: number, 247 } 248 249 export interface DashboardSummary { 250 annotations: AnnotationSummary[], 251 jobMonths: JobMonthSummary[], 252 jobExecutors: JobExecutorSummary[], 253 totalJobs: Counter, 254 totalEvents: Counter, 255 totalUsers: Counter, 256 totalExecutors: Counter, 257 } 258 259 export interface TokenResponse { 260 token: string, 261 } 262 263 export interface User { 264 id: number, 265 username: string, 266 } 267 268 export interface JobModeration { 269 id: number, 270 job_id: string, 271 user_account_id: number, 272 created: string, 273 status: string, 274 notes: string, 275 } 276 277 export interface JobModerationSummary { 278 moderation: JobModeration, 279 user: User, 280 }