Skip to content

Commit 70be4bd

Browse files
authored
v1.11.0 (#9)
* feat: add crowdin translations * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: update readme * feat: add aur docs * feat: add aur docs * feat: update to use blacksmith to build * feat: update docs * feat: update docs * feat: update docs * feat: update api docs * feat: update api docs * feat: update api docs
1 parent 103d8ad commit 70be4bd

39 files changed

+3597
-1089
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
jobs:
99
deploy:
10-
runs-on: ubuntu-latest
10+
runs-on: blacksmith-4vcpu-ubuntu-2404
1111

1212
steps:
1313
- name: Checkout repo

docs/api-reference.md

Lines changed: 0 additions & 21 deletions
This file was deleted.
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
id: check-user-data-unlock-status
3+
title: "Check user data unlock status"
4+
description: "Checks if user data is currently unlocked."
5+
sidebar_label: "Check user data unlock status"
6+
hide_title: true
7+
hide_table_of_contents: true
8+
api: eJyVk09v2zAMxb+KwLOWeOu6Ab5167o/wIBhabFD4AMjM7EQW/Ikqmhg+LsPlI0iXYIhO9mwHn96JvkGqCmaYHu23kEJHxsy+6jsVqVIQdXIqGxUJoVAjtuDSq71Zk/1AjQw7iKUa3iIFCJUGgLF3rtIEcoB3hSFPF7ybwUYGTlFFYhTcIIaNVyfU9+hbalW7JURX5OdqXoB46ihI258DSXsiEFDj9xACUvxHpeifjWpQUOk8Cg2y/UAKbRQQsPcl8tl6w22jY9cXhVF8Rr0Xya+o3X55g1GUuhqhYkbcmwNikRNZBj1P8FXJ+DV6ovi5By1qkOHO+rI8YW0t2dpW9vSzAoXgq5PQbkut9lGtibmf+68s+yDdbsLwe9OwLcYm43HUF9IeH9KkNUL57pVyYBNCpYPecIbwkDhJsk+rKvj45VpqJs29Fg0AB96mq3IumQZlLMI9Pxy50OHDCV8+3WfV9C6rc/lllvR31Po7JO6+fEVNMjGTdaLRbEoTn5oFn9AsydXS5H6SVsK5AxJKnofuUMnfIfZTg7oUTinPKrnNX/BH8B4x+T4v5M99YLpiZd9i9aJmTyqYQ7ZGnLI5MajmFUaZHxyPAySl4fQjqN8/p0oyGgqDY8YLG6kWevqOMOfP0lH/wDfNpEY
9+
sidebar_class_name: "get api-method"
10+
info_path: api/termix-api
11+
custom_edit_url: null
12+
---
13+
14+
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
15+
import ParamsDetails from "@theme/ParamsDetails";
16+
import RequestSchema from "@theme/RequestSchema";
17+
import StatusCodes from "@theme/StatusCodes";
18+
import OperationTabs from "@theme/OperationTabs";
19+
import TabItem from "@theme/TabItem";
20+
import Heading from "@theme/Heading";
21+
22+
<Heading
23+
as={"h1"}
24+
className={"openapi__heading"}
25+
children={"Check user data unlock status"}
26+
>
27+
</Heading>
28+
29+
<MethodEndpoint
30+
method={"get"}
31+
path={"/users/data-status"}
32+
context={"endpoint"}
33+
>
34+
35+
</MethodEndpoint>
36+
37+
38+
39+
Checks if user data is currently unlocked.
40+
41+
<ParamsDetails
42+
parameters={undefined}
43+
>
44+
45+
</ParamsDetails>
46+
47+
<RequestSchema
48+
title={"Body"}
49+
body={undefined}
50+
>
51+
52+
</RequestSchema>
53+
54+
<StatusCodes
55+
id={undefined}
56+
label={undefined}
57+
responses={{"200":{"description":"Data status returned."},"500":{"description":"Failed to check data status."}}}
58+
>
59+
60+
</StatusCodes>
61+
62+
63+
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
id: complete-warpgate-authentication
3+
title: "Complete Warpgate authentication"
4+
description: "Submits empty response to complete Warpgate authentication after user completes browser auth."
5+
sidebar_label: "Complete Warpgate authentication"
6+
hide_title: true
7+
hide_table_of_contents: true
8+
api: eJy1VU1v2zAM/SsCz27irt0G+NauG9YBw4qlQw9BDozNxGptyaXoJpmR/z5Qdj/TdbnMlzgS+UQ9vkd3UFDI2TZivYMMJu28thIM1Y1sDFNovAtkxJvc101FQuYKuVmikMFWSnJic9RkgwshNm0gfogNZs5+pSsaO4IEBJcBsimc+fyGGGYJMN22FOTUFxvIuvjXMhWQCbeUQO6dkBPdwqaphsPG10HL7SDkJdWob7JpCDLw82vKBZInQFMIFIL17rzQAxv2DbFYChHgYesRIwhbt4TkJTd9qDk/Mwv2tbHOisXK5N45ynsORJQ52MZHi+gJjEe9S1P9eQ76NzbvKSxMaPOcQli0VbUZwTaB4/RwF+fkefoCbUWF8Wxap8ie7W8qhvTjN8oY+DC0bpS9Eeg1apLSF5BB44Ny26CUkMG4iF0ch1COBxIOVgMQJBCI74i13R20XEEGpUiTjceVz7EqfZDsKE3Twx2iv6N1pkDBOQYy6IqX5PTIsE3eBD7a7eDkq5HWOapMjQ6XVJOTPdGOX0Vb2IoGLN4T6P0rwtI8EwTFBrF5iHeuvbPiVYl7An/YAT7DUM49crEnwsddhNjh19iaaYPzlq1sYofnhEysMoRsOnu6PVGP9hZ4GvRgNy1F5RLDIBuCIBlevniuUSCDb1eXUY3q/Z+PU+PzGtUqL8x8b+JtAtYtfDzOiobBJXFt1+bk4hwSUIX2V01H6SjdIWAIPsX8hlyhSeYnLYjJ5aTg6oga4yxyGMv/9I9B+fKI7nHG/f/x2zMutJZxU6F1eoUoiG4w9RR6U2tDQglxAD839iwBFYyGdp069BdX260u37bEKoZZAnfIFudK93S2TaAkLIijTm5oE0mKVz641II0vGq1sJ0Rrzp6mD4XPyaXKovhU1H7QnMYVzrucQUZQAI+0hrVFtc6qNAtW1xqbI+pzx+oOHGA
9+
sidebar_class_name: "post api-method"
10+
info_path: api/termix-api
11+
custom_edit_url: null
12+
---
13+
14+
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
15+
import ParamsDetails from "@theme/ParamsDetails";
16+
import RequestSchema from "@theme/RequestSchema";
17+
import StatusCodes from "@theme/StatusCodes";
18+
import OperationTabs from "@theme/OperationTabs";
19+
import TabItem from "@theme/TabItem";
20+
import Heading from "@theme/Heading";
21+
22+
<Heading
23+
as={"h1"}
24+
className={"openapi__heading"}
25+
children={"Complete Warpgate authentication"}
26+
>
27+
</Heading>
28+
29+
<MethodEndpoint
30+
method={"post"}
31+
path={"/docker/ssh/connect-warpgate"}
32+
context={"endpoint"}
33+
>
34+
35+
</MethodEndpoint>
36+
37+
38+
39+
Submits empty response to complete Warpgate authentication after user completes browser auth.
40+
41+
<Heading
42+
id={"request"}
43+
as={"h2"}
44+
className={"openapi-tabs__heading"}
45+
children={"Request"}
46+
>
47+
</Heading>
48+
49+
<ParamsDetails
50+
parameters={undefined}
51+
>
52+
53+
</ParamsDetails>
54+
55+
<RequestSchema
56+
title={"Body"}
57+
body={{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["sessionId"],"properties":{"sessionId":{"type":"string","description":"Session ID from initial connection attempt"}}}}}}}
58+
>
59+
60+
</RequestSchema>
61+
62+
<StatusCodes
63+
id={undefined}
64+
label={undefined}
65+
responses={{"200":{"description":"Warpgate authentication completed successfully."},"401":{"description":"Authentication failed or unauthorized."},"404":{"description":"Warpgate session expired."}}}
66+
>
67+
68+
</StatusCodes>
69+
70+
71+
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
id: connect-to-ssh-for-file-management
3+
title: "Connect to SSH for file management"
4+
description: "Establishes an SSH/SFTP connection for file manager operations. Supports password, key-based, and keyboard-interactive authentication, as well as jump hosts and SOCKS5 proxies."
5+
sidebar_label: "Connect to SSH for file management"
6+
hide_title: true
7+
hide_table_of_contents: true
8+
api: eJzVWMFu2zgQ/RWCp11AidVtswvolqYNks0GMWoHPRhGQEsji7FEKhzKiWH434shZUuOlEYoetlcHFOcx9HMm5lHb3kCGBtZWqkVj/hXtGKRS8wAmVBsMrkaTS6nYxZrpSCmTSzVhqUyB1YIJZZgmC7BCHqEp2xSlaU2FlkpEJ+1SQK2gs3JQiAkARMqoa8LLUxyIpUFI2Ir18BEZTNQVsYOJ2AC2TPkOX0+VkXJMo0Wnfnk7uJmcsZKo18k4CkPuBVL5NGMX5JPt94nPg+4gacK0H7WyYZHW/dVGkh4ZE0FAY+1sqAsPRJlmddHjx6R4rDlGGdQCPrPbkrgEdeLR4gtD1pAM46AKLW6TnjAZckDTi/PA14hGCUKID9KQwGyEtDhHiwaaLRGqiUPXuXiXsmnClhtwWRCEUolGL4LOEXkCERVxQJMB+RKo2XXX1hqdMESYQWlggBk+b4Hk8kVQzBrMOx6zESSGEAkY/ea757dMncGu1ZgBp192E1H1oQaZrnfzf4guh6+Ec/+JDTE7AY2A7GMXAsLxFwPd2B0g7eCzXiwg+MWILlWZqZOCuFNnW0XA1RVEOcOgXCn8oArrRzRjg85PyopVoDNdEJnxAYck0Q+hD8Xh93EIqspJ10yUaLGRq9lAsnwONwjmJOyNmuSVIe4v0vQaak2MdzUO66bDa0TF1rnIFTnyEsyHdKD6BxqPVQ/2AIWxohNB/bffZOiRpnKZeUbInUFCwX2tZHjtvBWOe92Ox/eiY5XeDbgDe8R2k1y49jujOlVBjC+ZeteqQEYD6v6NsC+7j3A/fDqb4O020DtyfBmcOTN3qwBovWLTEj1bo7dLqbTVyPIpYiSZABLrdDn868wpI9uM2kNUjjM2oRhFceAmFZ5vgmYNqyeMsimd9Px6Lsw5ZJaxjFJafwNnmNawV3Ko9l7VEQrbIW9HehFFGXulry7FMcCEMWyJ6U751v9sv/pZbeKKGzvebOPw4PVtuyhP2Xy7ZG6c3BF2cP73+zec52hX3GxMnnvOkJcGWk3vZPq9/g/JNnEuYeD6nFMFzW7fsGlua+WT30FcisRpVruyU8zwYgCLBikmpBqLXKZkCp1szPVphD2lDu4D124VyNwj+oMzgYUaCpk7rY7mrv5GfGSWiLJEZvxiI8QsxGp4YdaDbuFGoNTCkn+oCs7l2aeWVtGo1GuY5FTe40+hmH4odNtbqnZ7EesU77HpV8LK04p/gnwx15FYyulIK8FfAHKDkT71It2dBkYBnTWBfI6kfgo0crYq/1CK2k1kWsg8N8d4C8CMzfsByL800XQ8QpMX7TmTY26DC9AGDBEOx7N5u3HE2rDvuTamw7lQa4QXdw26h1uEw/qfy4d00lofJ86OlJ7/9ZccL7ui/XogtEU815ehF73Nw+8kA/bwrz18DBlm7W9cG5WjqRvs9xI2bZiPRaf4VvKsYF5W+v5a1xLo80aGRVS7Fuqye9ty6DWG7W0TdhVKp2NfUHpaImZqvJ8TtcslWqXZ2ldM52CKeQLOx9f84BTa/AcC0/D07DDvHrzZxGvQCVkxL5BCgZU7O9EGm0hXCeunb3wnYeEuivN47s6kff1IdtGQfwvb/+eYhZe7KjMKfbNQPU9ekacJSa1urQnMj/MK7o+Oa0bzfh2S/7em3y3o+WnCgxV9zzga2GkWFAaZ5TaDEQCxvFu5UriwgfyxNGetueVG32vZRl1IG9xHsdQ2p/unbdmz/huMqWeUP+kUeiEbIx4pp8lxDOPOA+4don16oTWtjwXalk5jcY9Jv39AAXKSBA=
9+
sidebar_class_name: "post api-method"
10+
info_path: api/termix-api
11+
custom_edit_url: null
12+
---
13+
14+
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
15+
import ParamsDetails from "@theme/ParamsDetails";
16+
import RequestSchema from "@theme/RequestSchema";
17+
import StatusCodes from "@theme/StatusCodes";
18+
import OperationTabs from "@theme/OperationTabs";
19+
import TabItem from "@theme/TabItem";
20+
import Heading from "@theme/Heading";
21+
22+
<Heading
23+
as={"h1"}
24+
className={"openapi__heading"}
25+
children={"Connect to SSH for file management"}
26+
>
27+
</Heading>
28+
29+
<MethodEndpoint
30+
method={"post"}
31+
path={"/ssh/file_manager/ssh/connect"}
32+
context={"endpoint"}
33+
>
34+
35+
</MethodEndpoint>
36+
37+
38+
39+
Establishes an SSH/SFTP connection for file manager operations. Supports password, key-based, and keyboard-interactive authentication, as well as jump hosts and SOCKS5 proxies.
40+
41+
<Heading
42+
id={"request"}
43+
as={"h2"}
44+
className={"openapi-tabs__heading"}
45+
children={"Request"}
46+
>
47+
</Heading>
48+
49+
<ParamsDetails
50+
parameters={undefined}
51+
>
52+
53+
</ParamsDetails>
54+
55+
<RequestSchema
56+
title={"Body"}
57+
body={{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["sessionId","ip","port","username"],"properties":{"sessionId":{"type":"string","description":"Unique session identifier"},"hostId":{"type":"number","description":"Host ID from database"},"ip":{"type":"string","description":"SSH server IP address"},"port":{"type":"number","description":"SSH server port"},"username":{"type":"string","description":"SSH username"},"password":{"type":"string","description":"SSH password (for password auth)"},"sshKey":{"type":"string","description":"SSH private key (for key-based auth)"},"keyPassword":{"type":"string","description":"Private key passphrase"},"authType":{"type":"string","enum":["password","key","none"],"description":"Authentication method"},"credentialId":{"type":"number","description":"Credential ID to use from database"},"userProvidedPassword":{"type":"string","description":"User-provided password for keyboard-interactive auth"},"forceKeyboardInteractive":{"type":"boolean","description":"Force keyboard-interactive authentication"},"jumpHosts":{"type":"array","description":"Jump host configuration","items":{"type":"object","properties":{"hostId":{"type":"number"}}}},"useSocks5":{"type":"boolean","description":"Use SOCKS5 proxy"},"socks5Host":{"type":"string","description":"SOCKS5 proxy host"},"socks5Port":{"type":"number","description":"SOCKS5 proxy port"},"socks5Username":{"type":"string","description":"SOCKS5 proxy username"},"socks5Password":{"type":"string","description":"SOCKS5 proxy password"},"socks5ProxyChain":{"type":"array","description":"Chain of SOCKS5 proxies"}}}}}}}
58+
>
59+
60+
</RequestSchema>
61+
62+
<StatusCodes
63+
id={undefined}
64+
label={undefined}
65+
responses={{"200":{"description":"SSH connection established successfully, or requires TOTP/Warpgate authentication.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","example":"success"},"message":{"type":"string"},"connectionLogs":{"type":"array"}}},{"type":"object","properties":{"requires_totp":{"type":"boolean"},"sessionId":{"type":"string"},"prompt":{"type":"string"},"connectionLogs":{"type":"array"}}},{"type":"object","properties":{"requires_warpgate":{"type":"boolean"},"sessionId":{"type":"string"},"url":{"type":"string"},"securityKey":{"type":"string"},"connectionLogs":{"type":"array"}}},{"type":"object","properties":{"status":{"type":"string","example":"auth_required"},"reason":{"type":"string"},"connectionLogs":{"type":"array"}}}]}}}},"400":{"description":"Missing required parameters or invalid SSH key format."},"401":{"description":"Authentication required."},"500":{"description":"SSH connection failed."}}}
66+
>
67+
68+
</StatusCodes>
69+
70+
71+
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
id: create-a-temporary-ssh-connection-without-saving-to-database
3+
title: "Create a temporary SSH connection without saving to database"
4+
description: "Returns a temporary host configuration for immediate use"
5+
sidebar_label: "Create a temporary SSH connection without saving to database"
6+
hide_title: true
7+
hide_table_of_contents: true
8+
api: eJylVt+P4jYQ/leseWql3MF191opb3d7PR2VqqKFVR8QD0M8EB+JnR077FLE/34aJ0DYsHtIzQsk/vx5fn7jHWjyGZsqGGchhXsKNVuvUAUqK8fIW5U7H1Tm7NKsakYBqqVjZcqStMFAqvYECQRceUhnMJl8g3kCTI81+fDZ6S2ku/hqmDSkgWtKIHM2kA2yhFVVmCwSD757MWMHPsupRPkXthVBCm7xnbIASYdoBqaCBCrH8r32xBZLsQTrkE9l2zyBil1FHAx5ITNVh9IHNnYFyYsQTCbflCfeEKvRWDmO/kfmfXvYicLW5YL4LYq4Yd8x76rzj+h9x5sLO8nWpQSiQu+fHGtIYE1bSCBj0mSDwUKCcH7ApzrkstaEXJUUcqejcweWn9o4bpHql0M6lFmqg6XKeHXg+lWIxaar/K7YbKSi1rR9nXpN2wPr+GqLhV1Yq6PlLi5hceB6LcaXeSJq3w30SP+8MO6OaDX68rqHJ9JonNsQs9F02v3Qr6aFcwWh7R354ElV7DZGkz7WlTLWB0Kt3LJzWKfs4iPN5itnfdM8vw2H8nNOP31LJjImDKSVr7OMvF/WRbEVh24vMY3sBgujVSscSmPABvyhD36wEi/H5j/SDeimD/rqeGG0JtsgbvuITj6sC2rpahvpPl4ycNJ0NDE7BolO2zkpVM6LBFUYckhh4H0+eKxNtn6XOWsb2WrkQARyBzUXkEIeQpUOBoXLsJDYpTfD4fBDL39/o7ExFgv0pNDqWCmd/m2YYZ+8SXxzsZJDbS0VqkSLKyrJhivZbi+yLU1BLRdfSfSxT9RE2QcMxgeT+ehz6awJTjrySuLfe8Rf0OcLh6yvZPijz+CyNfGlaM0lwVnNJmxjhheETCxCC+ls3l2eyGBr+qkLOraxmCLlEmHS1hEESfvnq+MSA6Tw17/TWIMyMO9Po/bPZyyrgg6z7qRizeAadgfRafE0YrqT5DQOTsio5Gev48uo6QsVPdfJ4duiJleEfQLGLl0MjQniEkyJS/OsPo1HkIB0U5OW4fvh+2EvWS34M2Zrslo2qXtaEpPN2knuQ4nxstGG4y6q1dnVR6q67WFptScTclcH5XEjlRjcsTFfHr87XXD+152qiWKg5zCoCjRRyWLN7lq1mYH3OSRwrjfzBOQEWd7txL4HLvZ7+fxYE0uNzhPYIBtcSGRn830COaEmjuXbZPmu8eBdTKXAi1qM6V3XpLyPUjj+ZzKVam2vfaXTsofxSa5u+AQpQALN6I1NEL/toEC7qnEl2IZTnh/nWbCw
9+
sidebar_class_name: "post api-method"
10+
info_path: api/termix-api
11+
custom_edit_url: null
12+
---
13+
14+
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
15+
import ParamsDetails from "@theme/ParamsDetails";
16+
import RequestSchema from "@theme/RequestSchema";
17+
import StatusCodes from "@theme/StatusCodes";
18+
import OperationTabs from "@theme/OperationTabs";
19+
import TabItem from "@theme/TabItem";
20+
import Heading from "@theme/Heading";
21+
22+
<Heading
23+
as={"h1"}
24+
className={"openapi__heading"}
25+
children={"Create a temporary SSH connection without saving to database"}
26+
>
27+
</Heading>
28+
29+
<MethodEndpoint
30+
method={"post"}
31+
path={"/ssh/quick-connect"}
32+
context={"endpoint"}
33+
>
34+
35+
</MethodEndpoint>
36+
37+
38+
39+
Returns a temporary host configuration for immediate use
40+
41+
<Heading
42+
id={"request"}
43+
as={"h2"}
44+
className={"openapi-tabs__heading"}
45+
children={"Request"}
46+
>
47+
</Heading>
48+
49+
<ParamsDetails
50+
parameters={undefined}
51+
>
52+
53+
</ParamsDetails>
54+
55+
<RequestSchema
56+
title={"Body"}
57+
body={{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ip","port","username","authType"],"properties":{"ip":{"type":"string","description":"SSH server IP or hostname"},"port":{"type":"number","description":"SSH server port"},"username":{"type":"string","description":"SSH username"},"authType":{"type":"string","enum":["password","key","credential"],"description":"Authentication method"},"password":{"type":"string","description":"Password (required if authType is password)"},"key":{"type":"string","description":"SSH private key (required if authType is key)"},"keyPassword":{"type":"string","description":"SSH key password (optional)"},"keyType":{"type":"string","description":"SSH key type"},"credentialId":{"type":"number","description":"Credential ID (required if authType is credential)"},"overrideCredentialUsername":{"type":"boolean","description":"Use provided username instead of credential username"}}}}}}}
58+
>
59+
60+
</RequestSchema>
61+
62+
<StatusCodes
63+
id={undefined}
64+
label={undefined}
65+
responses={{"200":{"description":"Temporary host configuration created successfully"},"400":{"description":"Invalid request data"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Credential not found"},"500":{"description":"Server error"}}}
66+
>
67+
68+
</StatusCodes>
69+
70+
71+
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
id: delete-user-admin-only
3+
title: "Delete user (admin only)"
4+
description: "Allows an admin to delete another user and all related data."
5+
sidebar_label: "Delete user (admin only)"
6+
hide_title: true
7+
hide_table_of_contents: true
8+
api: eJylVFFP2zAQ/ivWPW1SaLsBm5Q3GEXbtE3TKNpD1YdrfG0Mjh3sC9BF/e/TOQEKLVOl5aFN7M+fv7vv7lrQFItgajbeQQ4n1vq7qNAp1JVxir3SZIlJofNcUlBNpKDQaYXWqkAWmbTSyDiADBiXEfIpXEYKEWYZBLppKPKp1yvI2/RpAmnIOTSUQeEdk2PZwrq2pkDRMbyKIqaFWJRUobzxqibIwc+vqGDIoA6+psCGouyKJocVbSAjB+OWsE6P6Ii1d7GDvx+N5O955CK5j1Wr2BQFxbhorF0NYJ3B0WtH5FplonqITPmgCnTO80PiVr4Jkeyi5znc5vnhWWHDpQ/mzy4Gi5E7P3qOo1fky5mFb5xOuONdms/RWNIbvkruBiA5qohLryGHbkeyjFxCDkPBxGG3fCAfkEGkcCsm59MWmmAhh5K5zodD6wu0pY+cH45Go3eQvVDwHY1LBTPHSF0lNVyS49591THDOvsn8eEW8cXFZ8WNc2RVhQ6XVJHjPdmOdrItjKWeK+xJdLxNlM6pyMgmsiliirnyzrCXGt2T+MMW8RnGcu4x6D0ZPm4z+OKawq5szcTgogmGV8nhOWGgcNJIPUxnm9sX0qNdX22CHhtRpEi5JBjkPQiy/uXchwoZcvj6e5KqUHr/19PUGN9jVVt63uWP3Z2BcQufbjMsKJhQqMy9Ovn5BTKQAu0iHQ1Gg9FW/D34FItrcloOqV+0oECuICGvfeQK0yjqLz57ahr1phuR3tnV25fU7dNo+++Z2uWR6Z6HtUXjRFmyue0bdJpSE5OGpxadZSDWy3bbSq9dBrtey/JNQ0FsnWVwi8HgXDI3na0zKAk1heT4Na0gh09dFAcTESFw24iYrWEtFfE4P87G38aTsVjcj/3KazkV8A6y9JsDZOBTrlLlpLUWLLplg0vBdqzy/AXEhUjb
9+
sidebar_class_name: "delete api-method"
10+
info_path: api/termix-api
11+
custom_edit_url: null
12+
---
13+
14+
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
15+
import ParamsDetails from "@theme/ParamsDetails";
16+
import RequestSchema from "@theme/RequestSchema";
17+
import StatusCodes from "@theme/StatusCodes";
18+
import OperationTabs from "@theme/OperationTabs";
19+
import TabItem from "@theme/TabItem";
20+
import Heading from "@theme/Heading";
21+
22+
<Heading
23+
as={"h1"}
24+
className={"openapi__heading"}
25+
children={"Delete user (admin only)"}
26+
>
27+
</Heading>
28+
29+
<MethodEndpoint
30+
method={"delete"}
31+
path={"/users/delete-user"}
32+
context={"endpoint"}
33+
>
34+
35+
</MethodEndpoint>
36+
37+
38+
39+
Allows an admin to delete another user and all related data.
40+
41+
<Heading
42+
id={"request"}
43+
as={"h2"}
44+
className={"openapi-tabs__heading"}
45+
children={"Request"}
46+
>
47+
</Heading>
48+
49+
<ParamsDetails
50+
parameters={undefined}
51+
>
52+
53+
</ParamsDetails>
54+
55+
<RequestSchema
56+
title={"Body"}
57+
body={{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string"}}}}}}}
58+
>
59+
60+
</RequestSchema>
61+
62+
<StatusCodes
63+
id={undefined}
64+
label={undefined}
65+
responses={{"200":{"description":"User deleted successfully."},"400":{"description":"Username is required or cannot delete yourself."},"403":{"description":"Not authorized or cannot delete last admin."},"404":{"description":"User not found."},"500":{"description":"Failed to delete user."}}}
66+
>
67+
68+
</StatusCodes>
69+
70+
71+

0 commit comments

Comments
 (0)