feat: allow client-based web tokens

This commit is contained in:
DecDuck
2025-04-08 16:16:40 +10:00
parent 25dc4fd4d7
commit 6a9480f9e4
8 changed files with 59 additions and 7 deletions
+4
View File
@@ -27,6 +27,7 @@ model Invitation {
enum APITokenMode {
User
System
Client
}
model APIToken {
@@ -38,6 +39,9 @@ model APIToken {
userId String?
user User? @relation(fields: [userId], references: [id])
clientId String?
client Client? @relation(fields: [clientId], references: [id], onDelete: Cascade)
acls String[]
@@index([token])
+2 -1
View File
@@ -1,7 +1,7 @@
enum ClientCapabilities {
PeerAPI @map("peerAPI") // other clients can use the HTTP API to P2P with this client
UserStatus @map("userStatus") // this client can report this user's status (playing, online, etc etc)
CloudSaves @map("cloudSaves") // ability to save to save slots
CloudSaves @map("cloudSaves") // ability to save to save slots
}
// References a device
@@ -19,6 +19,7 @@ model Client {
peerAPI ClientPeerAPIConfiguration?
lastAccessedSaves SaveSlot[]
tokens APIToken[]
}
model ClientPeerAPIConfiguration {