Upload files to "/"

This commit is contained in:
hunternick87 2025-09-30 15:50:14 +00:00
parent 1fd2a147c2
commit 873be173f2
2 changed files with 3086 additions and 140 deletions

View file

@ -7,6 +7,9 @@ info:
All routes are served from the same origin as the web client. Runtime security
is handled via bearer tokens (`Authorization: Bearer <token>`) or the
`auth_token` HTTP-only cookie set by the OpenID Connect login flow.
license:
name: MIT
url: https://opensource.org/licenses/MIT
servers:
- url: http://localhost:3000
description: Local development server
@ -1098,34 +1101,6 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/admin/database/table/{tableName}/data:
get:
tags: [Admin]
summary: Read table data
operationId: adminGetTableData
parameters:
- name: tableName
in: path
required: true
schema:
type: string
responses:
'200':
description: Rows stored in the table
content:
application/json:
schema:
type: array
items:
type: object
additionalProperties: true
'500':
description: Unable to fetch data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/admin/database/table/{tableName}:
post:
tags: [Admin]
summary: Insert a new row
@ -1156,6 +1131,33 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/admin/database/table/{tableName}/data:
get:
tags: [Admin]
summary: Read table data
operationId: adminGetTableData
parameters:
- name: tableName
in: path
required: true
schema:
type: string
responses:
'200':
description: Rows stored in the table
content:
application/json:
schema:
type: array
items:
type: object
additionalProperties: true
'500':
description: Unable to fetch data
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/admin/database/table/{tableName}/{id}:
put:
tags: [Admin]
@ -1248,11 +1250,9 @@ components:
username:
type: string
display_name:
type: string
nullable: true
type: [string, 'null']
email:
type: string
nullable: true
type: [string, 'null']
role:
type: string
description: Either `user` or `admin`.
@ -1266,9 +1266,8 @@ components:
token:
type: string
expires_at:
type: string
type: [string, 'null']
format: date-time
nullable: true
MediaItem:
type: object
properties:
@ -1280,18 +1279,15 @@ components:
type: string
enum: [movie, series]
sub_type:
type: string
nullable: true
type: [string, 'null']
overview:
type: string
nullable: true
type: [string, 'null']
genres:
type: array
items:
type: string
parental_rating:
type: string
nullable: true
type: [string, 'null']
ratings:
type: object
additionalProperties: true
@ -1301,14 +1297,11 @@ components:
tmdb_id:
type: integer
tvdb_id:
type: integer
nullable: true
type: [integer, 'null']
imdb_id:
type: string
nullable: true
type: [string, 'null']
arr_id:
type: integer
nullable: true
type: [integer, 'null']
hidden:
type: boolean
required:
@ -1331,8 +1324,7 @@ components:
season_number:
type: integer
overview:
type: string
nullable: true
type: [string, 'null']
metadata:
type: object
additionalProperties: true
@ -1363,8 +1355,7 @@ components:
episode_number:
type: integer
overview:
type: string
nullable: true
type: [string, 'null']
metadata:
type: object
additionalProperties: true
@ -1386,22 +1377,18 @@ components:
media_id:
type: string
season_id:
type: string
nullable: true
type: [string, 'null']
type:
type: string
enum: [episode, movie, season]
name:
type: string
season_number:
type: integer
nullable: true
type: [integer, 'null']
episode_number:
type: integer
nullable: true
type: [integer, 'null']
overview:
type: string
nullable: true
type: [string, 'null']
metadata:
type: object
additionalProperties: true
@ -1418,10 +1405,9 @@ components:
- type: object
properties:
episodes:
type: array
type: [array, 'null']
items:
$ref: '#/components/schemas/EpisodeItem'
nullable: true
MediaWithLibrary:
allOf:
- $ref: '#/components/schemas/MediaItem'
@ -1446,13 +1432,12 @@ components:
type: string
enum: [movie, series]
sub_type:
type: string
nullable: true
type: [string, 'null']
seasons:
type: array
items:
type: integer
nullable: true
default: []
status:
type: string
requester_id:
@ -1463,17 +1448,13 @@ components:
title:
type: string
year:
type: integer
nullable: true
type: [integer, 'null']
poster_path:
type: string
nullable: true
type: [string, 'null']
backdrop_path:
type: string
nullable: true
type: [string, 'null']
overview:
type: string
nullable: true
type: [string, 'null']
required:
- id
- tmdb_id
@ -1491,8 +1472,7 @@ components:
type: string
enum: [movie, series]
sub_type:
type: string
nullable: true
type: [string, 'null']
seasons:
type: array
items:
@ -1502,16 +1482,13 @@ components:
type: object
properties:
poster_path:
type: string
nullable: true
type: [string, 'null']
backdrop_path:
type: string
nullable: true
type: [string, 'null']
title:
type: string
overview:
type: string
nullable: true
type: [string, 'null']
required:
- tmdb_id
- type
@ -1521,39 +1498,29 @@ components:
id:
type: integer
title:
type: string
nullable: true
type: [string, 'null']
name:
type: string
nullable: true
type: [string, 'null']
media_type:
type: string
overview:
type: string
nullable: true
type: [string, 'null']
poster_path:
type: string
nullable: true
type: [string, 'null']
backdrop_path:
type: string
nullable: true
type: [string, 'null']
vote_average:
type: number
type: [number, 'null']
format: float
nullable: true
vote_count:
type: integer
nullable: true
type: [integer, 'null']
popularity:
type: number
type: [number, 'null']
format: float
nullable: true
release_date:
type: string
nullable: true
type: [string, 'null']
first_air_date:
type: string
nullable: true
type: [string, 'null']
genre_ids:
type: array
items:
@ -1581,8 +1548,7 @@ components:
type: object
additionalProperties: true
credits:
type: object
nullable: true
type: [object, 'null']
additionalProperties: true
recommendations:
type: array
@ -1595,12 +1561,10 @@ components:
type: object
additionalProperties: true
score:
type: object
nullable: true
type: [object, 'null']
additionalProperties: true
localdata:
type: object
nullable: true
type: [object, 'null']
additionalProperties: true
keywords:
type: array
@ -1614,8 +1578,7 @@ components:
type: object
additionalProperties: true
credits:
type: object
nullable: true
type: [object, 'null']
additionalProperties: true
recommendations:
type: array
@ -1628,12 +1591,10 @@ components:
type: object
additionalProperties: true
score:
type: object
nullable: true
type: [object, 'null']
additionalProperties: true
localdata:
type: object
nullable: true
type: [object, 'null']
additionalProperties: true
keywords:
type: array
@ -1675,13 +1636,11 @@ components:
enabled:
type: boolean
lastRun:
type: string
type: [string, 'null']
format: date-time
nullable: true
nextRun:
type: string
type: [string, 'null']
format: date-time
nullable: true
running:
type: boolean
TaskActionRequest:
@ -1698,11 +1657,9 @@ components:
seriesId:
type: integer
seasonNumber:
type: integer
nullable: true
type: [integer, 'null']
episodeNumber:
type: integer
nullable: true
type: [integer, 'null']
type:
type: string
enum: [season, episode, series, all]
@ -1736,36 +1693,27 @@ components:
type: boolean
example: true
message:
type: string
nullable: true
type: [string, 'null']
result:
type: object
nullable: true
type: [object, 'null']
additionalProperties: true
path:
type: string
nullable: true
type: [string, 'null']
DatabaseStats:
type: object
properties:
userCount:
type: integer
nullable: true
type: [integer, 'null']
mediaCount:
type: integer
nullable: true
type: [integer, 'null']
requestCount:
type: integer
nullable: true
type: [integer, 'null']
activeRequests:
type: integer
nullable: true
type: [integer, 'null']
completedRequests:
type: integer
nullable: true
type: [integer, 'null']
userTokens:
type: integer
nullable: true
type: [integer, 'null']
TableColumn:
type: object
properties:
@ -1774,10 +1722,9 @@ components:
allowNull:
type: boolean
defaultValue:
nullable: true
type: [string, number, boolean, object, 'null']
primaryKey:
type: boolean
autoIncrement:
type: boolean
nullable: true
type: [boolean, 'null']
additionalProperties: true