multi tenancy part 1

This commit is contained in:
2025-10-22 22:52:59 +02:00
parent 8e3f09774a
commit e175d28c2c
35 changed files with 1288 additions and 314 deletions
+52 -2
View File
@@ -8,6 +8,7 @@ diesel::table! {
metadata -> Jsonb,
created_at -> Timestamptz,
updated_at -> Timestamptz,
tenant_id -> Uuid,
}
}
@@ -18,6 +19,7 @@ diesel::table! {
ordinal -> Int4,
s3_key -> Text,
metadata -> Jsonb,
tenant_id -> Uuid,
}
}
@@ -30,6 +32,7 @@ diesel::table! {
metadata -> Jsonb,
created_at -> Timestamptz,
cardinality -> Nullable<Int4>,
tenant_id -> Uuid,
}
}
@@ -41,6 +44,7 @@ diesel::table! {
role -> Varchar,
assigned_at -> Timestamptz,
assigned_by -> Nullable<Uuid>,
tenant_id -> Uuid,
}
}
@@ -50,6 +54,7 @@ diesel::table! {
tag_id -> Uuid,
assigned_at -> Timestamptz,
assigned_by -> Nullable<Uuid>,
tenant_id -> Uuid,
}
}
@@ -66,6 +71,7 @@ diesel::table! {
created_at -> Timestamptz,
operations_summary -> Jsonb,
metadata -> Jsonb,
tenant_id -> Uuid,
}
}
@@ -87,6 +93,7 @@ diesel::table! {
#[max_length = 255]
title -> Varchar,
current_version_id -> Uuid,
tenant_id -> Uuid,
}
}
@@ -98,6 +105,7 @@ diesel::table! {
parent_id -> Nullable<Uuid>,
created_at -> Timestamptz,
updated_at -> Timestamptz,
tenant_id -> Uuid,
}
}
@@ -112,6 +120,7 @@ diesel::table! {
last_error -> Nullable<Text>,
created_at -> Timestamptz,
updated_at -> Timestamptz,
tenant_id -> Uuid,
}
}
@@ -125,6 +134,7 @@ diesel::table! {
revoked_at -> Nullable<Timestamptz>,
created_at -> Timestamptz,
updated_at -> Timestamptz,
tenant_id -> Uuid,
}
}
@@ -136,6 +146,31 @@ diesel::table! {
#[max_length = 7]
color -> Nullable<Varchar>,
created_at -> Timestamptz,
tenant_id -> Uuid,
}
}
diesel::table! {
tenants (tenant_id) {
tenant_id -> Uuid,
slug -> Text,
storage_root -> Nullable<Text>,
quickwit_index -> Nullable<Text>,
status -> Text,
config -> Jsonb,
created_at -> Timestamptz,
updated_at -> Timestamptz,
}
}
diesel::table! {
user_memberships (id) {
id -> Uuid,
user_id -> Uuid,
tenant_id -> Uuid,
role -> Text,
created_at -> Timestamptz,
updated_at -> Timestamptz,
}
}
@@ -146,23 +181,36 @@ diesel::table! {
username -> Varchar,
#[max_length = 255]
password_hash -> Varchar,
#[max_length = 16]
role -> Varchar,
created_at -> Timestamptz,
updated_at -> Timestamptz,
tenant_id -> Uuid,
}
}
diesel::joinable!(correspondents -> tenants (tenant_id));
diesel::joinable!(document_asset_objects -> document_assets (asset_id));
diesel::joinable!(document_asset_objects -> tenants (tenant_id));
diesel::joinable!(document_assets -> document_versions (document_version_id));
diesel::joinable!(document_assets -> tenants (tenant_id));
diesel::joinable!(document_correspondents -> correspondents (correspondent_id));
diesel::joinable!(document_correspondents -> documents (document_id));
diesel::joinable!(document_correspondents -> tenants (tenant_id));
diesel::joinable!(document_correspondents -> users (assigned_by));
diesel::joinable!(document_tags -> documents (document_id));
diesel::joinable!(document_tags -> tags (tag_id));
diesel::joinable!(document_tags -> tenants (tenant_id));
diesel::joinable!(document_tags -> users (assigned_by));
diesel::joinable!(document_versions -> tenants (tenant_id));
diesel::joinable!(documents -> folders (folder_id));
diesel::joinable!(documents -> tenants (tenant_id));
diesel::joinable!(folders -> tenants (tenant_id));
diesel::joinable!(jobs -> tenants (tenant_id));
diesel::joinable!(refresh_tokens -> tenants (tenant_id));
diesel::joinable!(refresh_tokens -> users (user_id));
diesel::joinable!(tags -> tenants (tenant_id));
diesel::joinable!(user_memberships -> tenants (tenant_id));
diesel::joinable!(user_memberships -> users (user_id));
diesel::joinable!(users -> tenants (tenant_id));
diesel::allow_tables_to_appear_in_same_query!(
correspondents,
@@ -176,5 +224,7 @@ diesel::allow_tables_to_appear_in_same_query!(
jobs,
refresh_tokens,
tags,
tenants,
user_memberships,
users,
);