-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathopenapi.yaml
More file actions
139 lines (129 loc) · 3.38 KB
/
openapi.yaml
File metadata and controls
139 lines (129 loc) · 3.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
openapi: 3.0.0
info:
title: Linux server administation panel
version: 1.0.0
description: Hand written API docs so my lazy ass won't forget what should I implement
tags:
- name: Setup
description: Initial app setup endpoints
- name: Auth
description: Auth related endpoints
paths:
/setup/initialized:
get:
tags:
- Setup
summary: Checks if the initial admin user has been set up
description: Returns whether the initial admin user has been set up or not
responses:
'200':
description: A JSON object indicating if the initial admin user has been set up
content:
application/json:
schema:
type: object
properties:
initialized:
type: boolean
description: Indicates if the initial admin user has been set up
/auth/session:
get:
tags:
- Auth
summary: Get current session
description: Returns the current user session if it exists
responses:
'200':
description: Current user session
content:
application/json:
schema:
$ref: '#/components/schemas/ISession'
'401':
description: Unauthorized, no valid session
/auth/login:
post:
tags:
- Auth
summary: User login
description: Logs in a user with username and password
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ILoginRequest'
responses:
'200':
description: Successful login, returns user session
content:
application/json:
schema:
$ref: '#/components/schemas/ISession'
'401':
description: Unauthorized, invalid credentials
/auth/logout:
delete:
tags:
- Auth
summary: User logout
description: Logs out the current user
responses:
'200':
description: Successful logout
/auth/initial-user:
post:
tags:
- Auth
- Setup
summary: Create initial admin user
description: Creates the initial admin user account
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ICreateInitialUserRequest'
responses:
'204':
description: Initial admin user created successfully
'400':
description: Bad request, possibly due to invalid data
'409':
description: Conflict, initial user already exists
components:
schemas:
ISession:
type: object
properties:
id:
type: string
user:
$ref: '#/components/schemas/IUser'
IUser:
type: object
properties:
id:
type: string
username:
type: string
isAdmin:
type: boolean
ILoginRequest:
type: object
properties:
username:
type: string
nullable: false
password:
type: string
nullable: false
ICreateInitialUserRequest:
type: object
properties:
username:
type: string
nullable: false
password:
type: string
nullable: false