api-tokens

This commit is contained in:
2025-11-01 21:42:52 +01:00
parent f6ceff5444
commit 00f5d3adea
16 changed files with 999 additions and 556 deletions
+12 -4
View File
@@ -8,6 +8,10 @@ pub mod sql_types {
#[derive(diesel::query_builder::QueryId, Clone, diesel::sql_types::SqlType)]
#[diesel(postgres_type(name = "tenant_status"))]
pub struct TenantStatus;
#[derive(diesel::query_builder::QueryId, Clone, diesel::sql_types::SqlType)]
#[diesel(postgres_type(name = "api_token_capability"))]
pub struct ApiTokenCapability;
}
diesel::table! {
@@ -246,7 +250,10 @@ diesel::table! {
}
diesel::table! {
webdav_tokens (id) {
use diesel::sql_types::*;
use super::sql_types::ApiTokenCapability;
api_tokens (id) {
id -> Uuid,
user_id -> Uuid,
tenant_id -> Uuid,
@@ -257,6 +264,7 @@ diesel::table! {
last_used_at -> Nullable<Timestamptz>,
expires_at -> Nullable<Timestamptz>,
revoked_at -> Nullable<Timestamptz>,
capabilities -> Array<ApiTokenCapability>,
}
}
@@ -285,8 +293,8 @@ diesel::joinable!(user_memberships -> tenants (tenant_id));
diesel::joinable!(user_memberships -> users (user_id));
diesel::joinable!(user_passkeys -> users (user_id));
diesel::joinable!(webauthn_challenges -> users (user_id));
diesel::joinable!(webdav_tokens -> tenants (tenant_id));
diesel::joinable!(webdav_tokens -> users (user_id));
diesel::joinable!(api_tokens -> tenants (tenant_id));
diesel::joinable!(api_tokens -> users (user_id));
diesel::allow_tables_to_appear_in_same_query!(
correspondents,
@@ -306,5 +314,5 @@ diesel::allow_tables_to_appear_in_same_query!(
user_passkeys,
users,
webauthn_challenges,
webdav_tokens,
api_tokens,
);