-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
428 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
name: OpenAPI Schema Validation | ||
|
||
on: | ||
push: | ||
paths: | ||
- "openapi/**" | ||
pull_request: | ||
paths: | ||
- "openapi/**" | ||
|
||
jobs: | ||
validate: | ||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
matrix: | ||
node-version: [18.x] | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v3 | ||
|
||
- name: Check file extensions | ||
run: | | ||
shopt -s globstar | ||
for file in openapi/*.yaml; do | ||
if [[ ! "$file" =~ \.yaml$ ]]; then | ||
echo "Error: $file does not have the .yml extension" | ||
exit 1 | ||
fi | ||
done | ||
- name: Validate OpenAPI files | ||
run: | | ||
yarn add swagger-cli | ||
for file in openapi/*.yaml | ||
do | ||
echo "Validating $file" | ||
yarn swagger-cli validate $file --no-color || exit 1 | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
openapi: 3.1.0 | ||
info: | ||
version: 1.0.0 | ||
title: Deep Learning Playground Backend API | ||
contact: | ||
email: dlp@datasciencegt.org | ||
url: https://github.com/DSGT-DLP/Deep-Learning-Playground | ||
license: | ||
name: MIT | ||
url: https://github.com/DSGT-DLP/Deep-Learning-Playground/blob/nextjs/LICENSE | ||
description: > | ||
Deep Learning Playground Backend API specifications | ||
tags: | ||
- name: dataset | ||
description: Everything about dataset | ||
- name: s3 | ||
description: Everything about s3 | ||
- name: test | ||
description: Test API endpoints | ||
- name: trainspace | ||
description: Everything about trainspace | ||
servers: | ||
- url: http://localhost:8000 | ||
paths: | ||
/api/dataset/defaultDataset: | ||
$ref: paths/dataset/defaultDataset.yaml | ||
/api/dataset/getColumnsFromDatasetFile: | ||
$ref: paths/dataset/getColumnsFromDatasetFile.yaml | ||
/api/s3/getExecutionsFilesPresignedUrls: | ||
$ref: paths/s3/getExecutionsFilesPresignedUrls.yaml | ||
/api/s3/getSignedUploadUrl: | ||
$ref: paths/s3/getSignedUploadUrl.yaml | ||
/api/s3/getUserDatasetFilesData: | ||
$ref: paths/s3/getUserDatasetFilesData.yaml | ||
/api/test: | ||
$ref: paths/test/none.yaml | ||
/api/trainspace/create-trainspace: | ||
$ref: paths/trainspace/create-trainspace.yaml | ||
/api/trainspace/getTrainspaceData: | ||
$ref: paths/trainspace/getTrainspaceData.yaml | ||
# components: | ||
# securitySchemes: | ||
# main_auth: | ||
# type: oauth2 | ||
# flows: | ||
# implicit: | ||
# authorizationUrl: http://example.com/api/oauth/dialog | ||
# scopes: | ||
# read:users: read users info | ||
# write:users: modify or remove users | ||
# api_key: | ||
# type: apiKey | ||
# in: header | ||
# name: api_key | ||
# basic_auth: | ||
# type: http | ||
# scheme: basic |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
post: | ||
summary: Default dataset | ||
description: Endpoint to get user selected default dataset for training | ||
tags: | ||
- dataset | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
required: | ||
- using_default_dataset | ||
properties: | ||
using_default_dataset: | ||
type: string | ||
description: dataset selected for training | ||
example: | ||
using_default_dataset: "IRIS" | ||
required: true | ||
responses: | ||
"200": | ||
description: Dataset selected successfully | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
columns: | ||
type: array | ||
example: [col1, col2, col3] | ||
"400": | ||
description: Dataset wasn't selected properly. This is usually something wrong with your code | ||
"401": | ||
description: User is not authenticated | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
error: | ||
type: string | ||
example: "User is not authenticated" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
post: | ||
summary: Get columns from dataset file | ||
description: "API Endpoint to retrieve columns from a user uploaded dataset file (eg: column names for a CSV file)" | ||
tags: | ||
- dataset | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
required: | ||
- uid | ||
- data_source | ||
- name | ||
properties: | ||
uid: | ||
type: string | ||
description: User Id | ||
data_source: | ||
type: string | ||
description: "What type of training was the user running (eg: TABULAR, PRETRAINED, OBJECT_DETECTION, IMAGE, etc)" | ||
name: | ||
type: string | ||
description: Name of dataset file | ||
example: | ||
uid: "1234" | ||
data_source: "TABULAR" | ||
name: "data.csv" | ||
required: true | ||
responses: | ||
"200": | ||
description: Columns Fetched Successfully | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
columns: | ||
type: array | ||
example: [col1, col2, col3] | ||
"400": | ||
description: Dataset columns weren't selected properly. This is usually something wrong with your code | ||
"401": | ||
description: User is not authenticated | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
error: | ||
type: string | ||
example: "User is not authenticated" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
post: | ||
summary: Get S3 Presigned URLs for result files | ||
description: API Endpoint to use S3 Presigned URLs to retrieve result files from S3 given an execution id | ||
tags: | ||
- s3 | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
required: | ||
- exec_id | ||
properties: | ||
exec_id: | ||
type: string | ||
description: The execution id | ||
example: | ||
exec_id: "1234" | ||
required: true | ||
responses: | ||
"200": | ||
description: Result files for your execution fetched successfully | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
message: | ||
type: string | ||
example: "Result file fetch successful" | ||
"400": | ||
description: Result file fetch didn't go through successfully. This is usually something wrong with your code | ||
"401": | ||
description: User is not authenticated | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
error: | ||
type: string | ||
example: "User is not authenticated" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
post: | ||
summary: Get Signed Upload URL | ||
description: Endpoint to upload files to S3 | ||
tags: | ||
- s3 | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
required: | ||
- version | ||
- filename | ||
- file | ||
properties: | ||
version: | ||
type: integer | ||
description: The file version | ||
filename: | ||
type: string | ||
description: The name of the file | ||
file: | ||
type: object | ||
description: the file | ||
example: | ||
version: 2 | ||
filename: "file" | ||
file: { "col1": [val1, val2], "col2": [val3, val4] } | ||
required: true | ||
responses: | ||
"200": | ||
description: Data uploaded successfully | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
message: | ||
type: string | ||
example: "Upload successful" | ||
"400": | ||
description: Upload didn't go through successfully. This is usually something wrong with your code | ||
"401": | ||
description: User is not authenticated | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
error: | ||
type: string | ||
example: "User is not authenticated" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
post: | ||
summary: Get User Dataset Files | ||
description: API Endpoint to retrieve all user dataset files uploaded in S3 | ||
tags: | ||
- s3 | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
required: | ||
- uid | ||
- data_source | ||
properties: | ||
uid: | ||
type: string | ||
description: User ID | ||
data_source: | ||
type: string | ||
description: "What type of training was the user running (eg: TABULAR, PRETRAINED, OBJECT_DETECTION, IMAGE, etc)" | ||
responses: | ||
"200": | ||
description: User Dataset files for user fetched successfully | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
message: | ||
type: string | ||
example: "User Dataset file fetch successful" | ||
"400": | ||
description: User Dataset files for user wasn't fetched successfully. This is usually something wrong with your code | ||
"401": | ||
description: User is not authenticated | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
error: | ||
type: string | ||
example: "User is not authenticated" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
get: | ||
summary: Test Backend alive | ||
description: A simple endpoint to test if our backend is alive | ||
tags: | ||
- test | ||
responses: | ||
200: | ||
description: Test Backend alive | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
Status: | ||
type: string | ||
example: "Backend is alive" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
post: | ||
summary: Create Trainspace | ||
description: API Endpoint to create a "trainspace". Trainspace is a new concept/data structure we introduce to track user's training requests. Concept similar to execution_id. | ||
tags: | ||
- trainspace | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
required: | ||
- uid | ||
properties: | ||
uid: | ||
type: string | ||
description: User ID | ||
example: | ||
uid: "1234" | ||
required: true | ||
responses: | ||
"200": | ||
description: Trainspace created successfully | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
message: | ||
type: string | ||
example: "Trainspace Creation successful" | ||
"400": | ||
description: Trainspace Creation didn't go through successfully. This is usually something wrong with your code | ||
"401": | ||
description: User is not authenticated | ||
content: | ||
application/json: | ||
schema: | ||
type: object | ||
properties: | ||
error: | ||
type: string | ||
example: "User is not authenticated" |
Oops, something went wrong.