Skip to content

Instantly share code, notes, and snippets.

@chrismyang
Created September 8, 2019 10:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chrismyang/b85a1546e0313978b2815f4db45a01b0 to your computer and use it in GitHub Desktop.
Save chrismyang/b85a1546e0313978b2815f4db45a01b0 to your computer and use it in GitHub Desktop.
/workbench
/server
Server {
name: Option[String]
}
GET /server
List all Servers user has access to
ServerOverview {
id: String,
ownerId: String,
name: String,
status: Enum [Starting, Running, Stopping, Stopped, Deleted]
lastAccessed: DateTime
}
POST /server
Create new Server
NewServer {
baseImage: String,
computeResources: Object {
numCores: Double
ramSize: Double
disk: Int
numGpus: Int
}
workspaceId: String [Jupyter|RStudio|...]
}
GET /server/[server_id]/
Get details of Server
ServerDetails {
id: String,
ownerId: String,
name: String,
status: Enum [Starting, Running, Stopping, Stopped, Deleted]
lastAccessed: DateTime,
resourceUsageOverview: ResourceUsageOverview
}
ResourceUsageOverview {
cpuUsage: Double,
totalCpuAvailable: Double,
memoryUsage: Double,
totalMemoryAvailable: Double,
diskUsage: Double,
totalDiskAvailable: Double,
totalGpuAvailable: Integer
}
GET /server/[server_id]/resources
Get details of the server's resource utilization
ResourceUsageDetails {
cpuUsageHistory: Timeseries[Double],
memoryUsageHistory: Timeseries[Double],
diskUsageHistory: Timeseries[Double],
availableResourcePresets: Array[ResourcePreset]
}
ResourcePreset {
name: String,
totalCpu: Double,
totalMemory: Double,
totalDisk: Double,
totalGpu: Integer
}
POST /server/[server_id]/resources
Resize an existing Server (i.e., change its available CPU/Memory/Disk/GPU)
ServerResourceConfig {
}
GET /server/[server_id]/files/[subpath]
List all files in tree in subpath
FileListing {
path: String,
fileMeta: Array[FileDetails]
}
FileDetails {
name: String,
sizeInBytes: Long,
lastModified: DateTime,
created: DateTime
}
GET /server/[server_id]/file/[path]
Get file details for the given path
FileDetail {
path: String,
sizeInBytes: Long,
lastModified: DateTime,
content: String
}
POST /server/[server_id]/repo/new
Start a new Git repository
NewRepo {
repoName: String,
pathToCloneTo: String
}
POST /server/[server_id]/repo/clone
Clone an existing repo onto the Server file system
CloneRepo {
repoUri: String,
pathToCloneTo: String
}
GET /server/[server_id]/repo/
List all attached Git REpositories in this server
Array[RepoOverview]
RepoOverview {
repoId: String,
localPath: String,
repoName: String,
currentBranch: String,
headCommit: String,
isClean: Boolean
}
GET /server/[server_id]/repo/[repo_id]
Get details of Repo
RepoDetails {
changes: Array[FileChange],
repoId: String,
currentBranch: String,
allBranches: Array[String],
recentCommitHistory: Array[CommitOverview]
}
FileChange {
path: String,
changeType: Enum [MOdified, Added, Deleted]
}
CommitOverview {
commitId: String,
author: String,
message: String,
timestamp: DateTime
}
GET /server/[server_id]/datasource
Get overview of Data Sources attached to this Server
Array[DataSource]
DataSource {
id: String
name: String,
type: String
}
GET /server/[server_id]/datasource/[datasource_id]
Get details of the given Data Source
DataSourceDetails {
id: String,
name: String,
type: String,
configuration: Object {
username: String,
password: String,
host: String,
port: Integer,
database: String
},
codeSnippets: Array[CodeSnippet]
}
CodeSnippet {
isCustom: Boolean // if false then assume is Domino-provided
title: String,
content: String,
languages: Array[String]
}
GET /datasource/
Get all Data Sources available to this user
Array[DataSourceOverview]
DataSourceOverview {
id: String,
dataStoreType: String,
name: String,
createdOn: DateTime
}
GET /datasource/[datasource_id]
Get details of a Data Source
DataSourceDetails {
id: String,
dataStoreType: String,
dataStoreName: String,
creatorUsername: String,
description: String,
connection: String,
lastUpdated: DateTime,
created: DateTime
}
/cluster
/datasource
/packages
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment