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  }