diff --git a/CHANGELOG.md b/CHANGELOG.md
index 37107ae0..e95d3cfd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,7 +10,7 @@ Versia Server `0.8.0` is fully backwards compatible with `0.7.0`.
- Added an administration UI for managing the queue.
- Upgraded Bun to `1.1.36`.
- Implemented support for the [Instance Messaging Extension](https://versia.pub/extensions/instance-messaging)
-- Implement [Shared Inboxes](https://versia.pub/federation#inboxes)
+- Implement [Shared Inboxes](https://versia.pub/federation#inboxes) support.
- Allowed `
` and `` tags in Markdown.
- Added `--password` flag to the user creation CLI.
diff --git a/classes/database/instance.ts b/classes/database/instance.ts
index 03b61a17..8cab33a9 100644
--- a/classes/database/instance.ts
+++ b/classes/database/instance.ts
@@ -359,6 +359,8 @@ export class Instance extends BaseInterface {
logo: metadata.logo,
protocol,
publicKey: metadata.public_key,
+ inbox: metadata.shared_inbox ?? null,
+ extensions: metadata.extensions ?? null,
});
}
@@ -382,6 +384,8 @@ export class Instance extends BaseInterface {
logo: metadata.logo,
protocol,
publicKey: metadata.public_key,
+ inbox: metadata.shared_inbox ?? null,
+ extensions: metadata.extensions ?? null,
});
return this;
diff --git a/drizzle/migrations/0036_cuddly_ironclad.sql b/drizzle/migrations/0036_cuddly_ironclad.sql
new file mode 100644
index 00000000..717aaf6f
--- /dev/null
+++ b/drizzle/migrations/0036_cuddly_ironclad.sql
@@ -0,0 +1,2 @@
+ALTER TABLE "Instances" ADD COLUMN "inbox" text;--> statement-breakpoint
+ALTER TABLE "Instances" ADD COLUMN "extensions" jsonb;
\ No newline at end of file
diff --git a/drizzle/migrations/meta/0036_snapshot.json b/drizzle/migrations/meta/0036_snapshot.json
new file mode 100644
index 00000000..b5ba27bb
--- /dev/null
+++ b/drizzle/migrations/meta/0036_snapshot.json
@@ -0,0 +1,2237 @@
+{
+ "id": "a2a49367-b395-4bef-b19c-f41e427300fa",
+ "prevId": "e24fe9db-cf2c-4ff2-bcf5-fdb10a6a8aea",
+ "version": "7",
+ "dialect": "postgresql",
+ "tables": {
+ "public.Applications": {
+ "name": "Applications",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "website": {
+ "name": "website",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "vapid_key": {
+ "name": "vapid_key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "client_id": {
+ "name": "client_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "secret": {
+ "name": "secret",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "scopes": {
+ "name": "scopes",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {
+ "Applications_client_id_index": {
+ "name": "Applications_client_id_index",
+ "columns": [
+ {
+ "expression": "client_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Attachments": {
+ "name": "Attachments",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "url": {
+ "name": "url",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "remote_url": {
+ "name": "remote_url",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "thumbnail_url": {
+ "name": "thumbnail_url",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "mime_type": {
+ "name": "mime_type",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "blurhash": {
+ "name": "blurhash",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sha256": {
+ "name": "sha256",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "fps": {
+ "name": "fps",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "duration": {
+ "name": "duration",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "width": {
+ "name": "width",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "height": {
+ "name": "height",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "size": {
+ "name": "size",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "noteId": {
+ "name": "noteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Attachments_noteId_Notes_id_fk": {
+ "name": "Attachments_noteId_Notes_id_fk",
+ "tableFrom": "Attachments",
+ "tableTo": "Notes",
+ "columnsFrom": ["noteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Challenges": {
+ "name": "Challenges",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "challenge": {
+ "name": "challenge",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "NOW() + INTERVAL '5 minutes'"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.EmojiToNote": {
+ "name": "EmojiToNote",
+ "schema": "",
+ "columns": {
+ "emojiId": {
+ "name": "emojiId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "noteId": {
+ "name": "noteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {
+ "EmojiToNote_emojiId_noteId_index": {
+ "name": "EmojiToNote_emojiId_noteId_index",
+ "columns": [
+ {
+ "expression": "emojiId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "noteId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "EmojiToNote_noteId_index": {
+ "name": "EmojiToNote_noteId_index",
+ "columns": [
+ {
+ "expression": "noteId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "EmojiToNote_emojiId_Emojis_id_fk": {
+ "name": "EmojiToNote_emojiId_Emojis_id_fk",
+ "tableFrom": "EmojiToNote",
+ "tableTo": "Emojis",
+ "columnsFrom": ["emojiId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "EmojiToNote_noteId_Notes_id_fk": {
+ "name": "EmojiToNote_noteId_Notes_id_fk",
+ "tableFrom": "EmojiToNote",
+ "tableTo": "Notes",
+ "columnsFrom": ["noteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.EmojiToUser": {
+ "name": "EmojiToUser",
+ "schema": "",
+ "columns": {
+ "emojiId": {
+ "name": "emojiId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {
+ "EmojiToUser_emojiId_userId_index": {
+ "name": "EmojiToUser_emojiId_userId_index",
+ "columns": [
+ {
+ "expression": "emojiId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "userId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "EmojiToUser_userId_index": {
+ "name": "EmojiToUser_userId_index",
+ "columns": [
+ {
+ "expression": "userId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "EmojiToUser_emojiId_Emojis_id_fk": {
+ "name": "EmojiToUser_emojiId_Emojis_id_fk",
+ "tableFrom": "EmojiToUser",
+ "tableTo": "Emojis",
+ "columnsFrom": ["emojiId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "EmojiToUser_userId_Users_id_fk": {
+ "name": "EmojiToUser_userId_Users_id_fk",
+ "tableFrom": "EmojiToUser",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Emojis": {
+ "name": "Emojis",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "shortcode": {
+ "name": "shortcode",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "url": {
+ "name": "url",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "visible_in_picker": {
+ "name": "visible_in_picker",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "alt": {
+ "name": "alt",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content_type": {
+ "name": "content_type",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "instanceId": {
+ "name": "instanceId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "ownerId": {
+ "name": "ownerId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "category": {
+ "name": "category",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Emojis_instanceId_Instances_id_fk": {
+ "name": "Emojis_instanceId_Instances_id_fk",
+ "tableFrom": "Emojis",
+ "tableTo": "Instances",
+ "columnsFrom": ["instanceId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Emojis_ownerId_Users_id_fk": {
+ "name": "Emojis_ownerId_Users_id_fk",
+ "tableFrom": "Emojis",
+ "tableTo": "Users",
+ "columnsFrom": ["ownerId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.FilterKeywords": {
+ "name": "FilterKeywords",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "filterId": {
+ "name": "filterId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "keyword": {
+ "name": "keyword",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "whole_word": {
+ "name": "whole_word",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "FilterKeywords_filterId_Filters_id_fk": {
+ "name": "FilterKeywords_filterId_Filters_id_fk",
+ "tableFrom": "FilterKeywords",
+ "tableTo": "Filters",
+ "columnsFrom": ["filterId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Filters": {
+ "name": "Filters",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "context": {
+ "name": "context",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "title": {
+ "name": "title",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "filter_action": {
+ "name": "filter_action",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Filters_userId_Users_id_fk": {
+ "name": "Filters_userId_Users_id_fk",
+ "tableFrom": "Filters",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Flags": {
+ "name": "Flags",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "flag_type": {
+ "name": "flag_type",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'other'"
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "noteId": {
+ "name": "noteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Flags_noteId_Notes_id_fk": {
+ "name": "Flags_noteId_Notes_id_fk",
+ "tableFrom": "Flags",
+ "tableTo": "Notes",
+ "columnsFrom": ["noteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Flags_userId_Users_id_fk": {
+ "name": "Flags_userId_Users_id_fk",
+ "tableFrom": "Flags",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Instances": {
+ "name": "Instances",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "base_url": {
+ "name": "base_url",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "version": {
+ "name": "version",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "logo": {
+ "name": "logo",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "disable_automoderation": {
+ "name": "disable_automoderation",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "protocol": {
+ "name": "protocol",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'versia'"
+ },
+ "inbox": {
+ "name": "inbox",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "public_key": {
+ "name": "public_key",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "extensions": {
+ "name": "extensions",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Likes": {
+ "name": "Likes",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "uri": {
+ "name": "uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "likerId": {
+ "name": "likerId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "likedId": {
+ "name": "likedId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Likes_likerId_Users_id_fk": {
+ "name": "Likes_likerId_Users_id_fk",
+ "tableFrom": "Likes",
+ "tableTo": "Users",
+ "columnsFrom": ["likerId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Likes_likedId_Notes_id_fk": {
+ "name": "Likes_likedId_Notes_id_fk",
+ "tableFrom": "Likes",
+ "tableTo": "Notes",
+ "columnsFrom": ["likedId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "Likes_uri_unique": {
+ "name": "Likes_uri_unique",
+ "nullsNotDistinct": false,
+ "columns": ["uri"]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Markers": {
+ "name": "Markers",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "noteId": {
+ "name": "noteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "notificationId": {
+ "name": "notificationId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "timeline": {
+ "name": "timeline",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Markers_noteId_Notes_id_fk": {
+ "name": "Markers_noteId_Notes_id_fk",
+ "tableFrom": "Markers",
+ "tableTo": "Notes",
+ "columnsFrom": ["noteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Markers_notificationId_Notifications_id_fk": {
+ "name": "Markers_notificationId_Notifications_id_fk",
+ "tableFrom": "Markers",
+ "tableTo": "Notifications",
+ "columnsFrom": ["notificationId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Markers_userId_Users_id_fk": {
+ "name": "Markers_userId_Users_id_fk",
+ "tableFrom": "Markers",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ModNotes": {
+ "name": "ModNotes",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "noteId": {
+ "name": "noteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modId": {
+ "name": "modId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "note": {
+ "name": "note",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ModNotes_noteId_Notes_id_fk": {
+ "name": "ModNotes_noteId_Notes_id_fk",
+ "tableFrom": "ModNotes",
+ "tableTo": "Notes",
+ "columnsFrom": ["noteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "ModNotes_userId_Users_id_fk": {
+ "name": "ModNotes_userId_Users_id_fk",
+ "tableFrom": "ModNotes",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "ModNotes_modId_Users_id_fk": {
+ "name": "ModNotes_modId_Users_id_fk",
+ "tableFrom": "ModNotes",
+ "tableTo": "Users",
+ "columnsFrom": ["modId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.ModTags": {
+ "name": "ModTags",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "noteId": {
+ "name": "noteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "modId": {
+ "name": "modId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "tag": {
+ "name": "tag",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "ModTags_noteId_Notes_id_fk": {
+ "name": "ModTags_noteId_Notes_id_fk",
+ "tableFrom": "ModTags",
+ "tableTo": "Notes",
+ "columnsFrom": ["noteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "ModTags_userId_Users_id_fk": {
+ "name": "ModTags_userId_Users_id_fk",
+ "tableFrom": "ModTags",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "ModTags_modId_Users_id_fk": {
+ "name": "ModTags_modId_Users_id_fk",
+ "tableFrom": "ModTags",
+ "tableTo": "Users",
+ "columnsFrom": ["modId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.NoteToMentions": {
+ "name": "NoteToMentions",
+ "schema": "",
+ "columns": {
+ "noteId": {
+ "name": "noteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {
+ "NoteToMentions_noteId_userId_index": {
+ "name": "NoteToMentions_noteId_userId_index",
+ "columns": [
+ {
+ "expression": "noteId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "userId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "NoteToMentions_userId_index": {
+ "name": "NoteToMentions_userId_index",
+ "columns": [
+ {
+ "expression": "userId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "NoteToMentions_noteId_Notes_id_fk": {
+ "name": "NoteToMentions_noteId_Notes_id_fk",
+ "tableFrom": "NoteToMentions",
+ "tableTo": "Notes",
+ "columnsFrom": ["noteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "NoteToMentions_userId_Users_id_fk": {
+ "name": "NoteToMentions_userId_Users_id_fk",
+ "tableFrom": "NoteToMentions",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Notes": {
+ "name": "Notes",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "uri": {
+ "name": "uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "authorId": {
+ "name": "authorId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "updatedAt": {
+ "name": "updatedAt",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "reblogId": {
+ "name": "reblogId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content": {
+ "name": "content",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "content_type": {
+ "name": "content_type",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'text/plain'"
+ },
+ "visibility": {
+ "name": "visibility",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "replyId": {
+ "name": "replyId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "quoteId": {
+ "name": "quoteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "sensitive": {
+ "name": "sensitive",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "spoiler_text": {
+ "name": "spoiler_text",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "content_source": {
+ "name": "content_source",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Notes_authorId_Users_id_fk": {
+ "name": "Notes_authorId_Users_id_fk",
+ "tableFrom": "Notes",
+ "tableTo": "Users",
+ "columnsFrom": ["authorId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Notes_reblogId_Notes_id_fk": {
+ "name": "Notes_reblogId_Notes_id_fk",
+ "tableFrom": "Notes",
+ "tableTo": "Notes",
+ "columnsFrom": ["reblogId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Notes_replyId_Notes_id_fk": {
+ "name": "Notes_replyId_Notes_id_fk",
+ "tableFrom": "Notes",
+ "tableTo": "Notes",
+ "columnsFrom": ["replyId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Notes_quoteId_Notes_id_fk": {
+ "name": "Notes_quoteId_Notes_id_fk",
+ "tableFrom": "Notes",
+ "tableTo": "Notes",
+ "columnsFrom": ["quoteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Notes_applicationId_Applications_id_fk": {
+ "name": "Notes_applicationId_Applications_id_fk",
+ "tableFrom": "Notes",
+ "tableTo": "Applications",
+ "columnsFrom": ["applicationId"],
+ "columnsTo": ["id"],
+ "onDelete": "set null",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {
+ "Notes_uri_unique": {
+ "name": "Notes_uri_unique",
+ "nullsNotDistinct": false,
+ "columns": ["uri"]
+ }
+ },
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Notifications": {
+ "name": "Notifications",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "type": {
+ "name": "type",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "createdAt": {
+ "name": "createdAt",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "notifiedId": {
+ "name": "notifiedId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "accountId": {
+ "name": "accountId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "noteId": {
+ "name": "noteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "dismissed": {
+ "name": "dismissed",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Notifications_notifiedId_Users_id_fk": {
+ "name": "Notifications_notifiedId_Users_id_fk",
+ "tableFrom": "Notifications",
+ "tableTo": "Users",
+ "columnsFrom": ["notifiedId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Notifications_accountId_Users_id_fk": {
+ "name": "Notifications_accountId_Users_id_fk",
+ "tableFrom": "Notifications",
+ "tableTo": "Users",
+ "columnsFrom": ["accountId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Notifications_noteId_Notes_id_fk": {
+ "name": "Notifications_noteId_Notes_id_fk",
+ "tableFrom": "Notifications",
+ "tableTo": "Notes",
+ "columnsFrom": ["noteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.OpenIdAccounts": {
+ "name": "OpenIdAccounts",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "server_id": {
+ "name": "server_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "issuer_id": {
+ "name": "issuer_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "OpenIdAccounts_userId_Users_id_fk": {
+ "name": "OpenIdAccounts_userId_Users_id_fk",
+ "tableFrom": "OpenIdAccounts",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "set null",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.OpenIdLoginFlows": {
+ "name": "OpenIdLoginFlows",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "code_verifier": {
+ "name": "code_verifier",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "issuer_id": {
+ "name": "issuer_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "OpenIdLoginFlows_applicationId_Applications_id_fk": {
+ "name": "OpenIdLoginFlows_applicationId_Applications_id_fk",
+ "tableFrom": "OpenIdLoginFlows",
+ "tableTo": "Applications",
+ "columnsFrom": ["applicationId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Relationships": {
+ "name": "Relationships",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "ownerId": {
+ "name": "ownerId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "subjectId": {
+ "name": "subjectId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "following": {
+ "name": "following",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "showing_reblogs": {
+ "name": "showing_reblogs",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "notifying": {
+ "name": "notifying",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "blocking": {
+ "name": "blocking",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "muting": {
+ "name": "muting",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "muting_notifications": {
+ "name": "muting_notifications",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "requested": {
+ "name": "requested",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "domain_blocking": {
+ "name": "domain_blocking",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "endorsed": {
+ "name": "endorsed",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "languages": {
+ "name": "languages",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "note": {
+ "name": "note",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Relationships_ownerId_Users_id_fk": {
+ "name": "Relationships_ownerId_Users_id_fk",
+ "tableFrom": "Relationships",
+ "tableTo": "Users",
+ "columnsFrom": ["ownerId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Relationships_subjectId_Users_id_fk": {
+ "name": "Relationships_subjectId_Users_id_fk",
+ "tableFrom": "Relationships",
+ "tableTo": "Users",
+ "columnsFrom": ["subjectId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.RoleToUsers": {
+ "name": "RoleToUsers",
+ "schema": "",
+ "columns": {
+ "roleId": {
+ "name": "roleId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "RoleToUsers_roleId_Roles_id_fk": {
+ "name": "RoleToUsers_roleId_Roles_id_fk",
+ "tableFrom": "RoleToUsers",
+ "tableTo": "Roles",
+ "columnsFrom": ["roleId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "RoleToUsers_userId_Users_id_fk": {
+ "name": "RoleToUsers_userId_Users_id_fk",
+ "tableFrom": "RoleToUsers",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Roles": {
+ "name": "Roles",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "name": {
+ "name": "name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "permissions": {
+ "name": "permissions",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "priority": {
+ "name": "priority",
+ "type": "integer",
+ "primaryKey": false,
+ "notNull": true,
+ "default": 0
+ },
+ "description": {
+ "name": "description",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "visible": {
+ "name": "visible",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "icon": {
+ "name": "icon",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {},
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Tokens": {
+ "name": "Tokens",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "token_type": {
+ "name": "token_type",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "scope": {
+ "name": "scope",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "access_token": {
+ "name": "access_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "code": {
+ "name": "code",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "expires_at": {
+ "name": "expires_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "client_id": {
+ "name": "client_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "redirect_uri": {
+ "name": "redirect_uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "id_token": {
+ "name": "id_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "applicationId": {
+ "name": "applicationId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ }
+ },
+ "indexes": {},
+ "foreignKeys": {
+ "Tokens_userId_Users_id_fk": {
+ "name": "Tokens_userId_Users_id_fk",
+ "tableFrom": "Tokens",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "Tokens_applicationId_Applications_id_fk": {
+ "name": "Tokens_applicationId_Applications_id_fk",
+ "tableFrom": "Tokens",
+ "tableTo": "Applications",
+ "columnsFrom": ["applicationId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.UserToPinnedNotes": {
+ "name": "UserToPinnedNotes",
+ "schema": "",
+ "columns": {
+ "userId": {
+ "name": "userId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "noteId": {
+ "name": "noteId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {
+ "UserToPinnedNotes_userId_noteId_index": {
+ "name": "UserToPinnedNotes_userId_noteId_index",
+ "columns": [
+ {
+ "expression": "userId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ },
+ {
+ "expression": "noteId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "UserToPinnedNotes_noteId_index": {
+ "name": "UserToPinnedNotes_noteId_index",
+ "columns": [
+ {
+ "expression": "noteId",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "UserToPinnedNotes_userId_Users_id_fk": {
+ "name": "UserToPinnedNotes_userId_Users_id_fk",
+ "tableFrom": "UserToPinnedNotes",
+ "tableTo": "Users",
+ "columnsFrom": ["userId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ },
+ "UserToPinnedNotes_noteId_Notes_id_fk": {
+ "name": "UserToPinnedNotes_noteId_Notes_id_fk",
+ "tableFrom": "UserToPinnedNotes",
+ "tableTo": "Notes",
+ "columnsFrom": ["noteId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.Users": {
+ "name": "Users",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "uri": {
+ "name": "uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "username": {
+ "name": "username",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "display_name": {
+ "name": "display_name",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "password": {
+ "name": "password",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "email": {
+ "name": "email",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "note": {
+ "name": "note",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "''"
+ },
+ "is_admin": {
+ "name": "is_admin",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "email_verification_token": {
+ "name": "email_verification_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "password_reset_token": {
+ "name": "password_reset_token",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "fields": {
+ "name": "fields",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "'[]'"
+ },
+ "endpoints": {
+ "name": "endpoints",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "source": {
+ "name": "source",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "avatar": {
+ "name": "avatar",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "header": {
+ "name": "header",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "updated_at": {
+ "name": "updated_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "is_bot": {
+ "name": "is_bot",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "is_locked": {
+ "name": "is_locked",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "is_discoverable": {
+ "name": "is_discoverable",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ },
+ "sanctions": {
+ "name": "sanctions",
+ "type": "text[]",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "public_key": {
+ "name": "public_key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "private_key": {
+ "name": "private_key",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "instanceId": {
+ "name": "instanceId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "disable_automoderation": {
+ "name": "disable_automoderation",
+ "type": "boolean",
+ "primaryKey": false,
+ "notNull": true,
+ "default": false
+ }
+ },
+ "indexes": {
+ "Users_uri_index": {
+ "name": "Users_uri_index",
+ "columns": [
+ {
+ "expression": "uri",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "Users_username_index": {
+ "name": "Users_username_index",
+ "columns": [
+ {
+ "expression": "username",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": false,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "Users_email_index": {
+ "name": "Users_email_index",
+ "columns": [
+ {
+ "expression": "email",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "Users_instanceId_Instances_id_fk": {
+ "name": "Users_instanceId_Instances_id_fk",
+ "tableFrom": "Users",
+ "tableTo": "Instances",
+ "columnsFrom": ["instanceId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ },
+ "public.VersiaObject": {
+ "name": "VersiaObject",
+ "schema": "",
+ "columns": {
+ "id": {
+ "name": "id",
+ "type": "uuid",
+ "primaryKey": true,
+ "notNull": true,
+ "default": "uuid_generate_v7()"
+ },
+ "remote_id": {
+ "name": "remote_id",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "type": {
+ "name": "type",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "uri": {
+ "name": "uri",
+ "type": "text",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "created_at": {
+ "name": "created_at",
+ "type": "timestamp(3)",
+ "primaryKey": false,
+ "notNull": true,
+ "default": "now()"
+ },
+ "authorId": {
+ "name": "authorId",
+ "type": "uuid",
+ "primaryKey": false,
+ "notNull": false
+ },
+ "extra_data": {
+ "name": "extra_data",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true
+ },
+ "extensions": {
+ "name": "extensions",
+ "type": "jsonb",
+ "primaryKey": false,
+ "notNull": true
+ }
+ },
+ "indexes": {
+ "VersiaObject_remote_id_index": {
+ "name": "VersiaObject_remote_id_index",
+ "columns": [
+ {
+ "expression": "remote_id",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ },
+ "VersiaObject_uri_index": {
+ "name": "VersiaObject_uri_index",
+ "columns": [
+ {
+ "expression": "uri",
+ "isExpression": false,
+ "asc": true,
+ "nulls": "last"
+ }
+ ],
+ "isUnique": true,
+ "concurrently": false,
+ "method": "btree",
+ "with": {}
+ }
+ },
+ "foreignKeys": {
+ "VersiaObject_authorId_VersiaObject_id_fk": {
+ "name": "VersiaObject_authorId_VersiaObject_id_fk",
+ "tableFrom": "VersiaObject",
+ "tableTo": "VersiaObject",
+ "columnsFrom": ["authorId"],
+ "columnsTo": ["id"],
+ "onDelete": "cascade",
+ "onUpdate": "cascade"
+ }
+ },
+ "compositePrimaryKeys": {},
+ "uniqueConstraints": {},
+ "policies": {},
+ "checkConstraints": {},
+ "isRLSEnabled": false
+ }
+ },
+ "enums": {},
+ "schemas": {},
+ "sequences": {},
+ "roles": {},
+ "policies": {},
+ "views": {},
+ "_meta": {
+ "columns": {},
+ "schemas": {},
+ "tables": {}
+ }
+}
diff --git a/drizzle/migrations/meta/_journal.json b/drizzle/migrations/meta/_journal.json
index dc263b65..c438f4ac 100644
--- a/drizzle/migrations/meta/_journal.json
+++ b/drizzle/migrations/meta/_journal.json
@@ -253,6 +253,13 @@
"when": 1732398961365,
"tag": "0035_pretty_whiplash",
"breakpoints": true
+ },
+ {
+ "idx": 36,
+ "version": "7",
+ "when": 1732563077877,
+ "tag": "0036_cuddly_ironclad",
+ "breakpoints": true
}
]
}
diff --git a/drizzle/schema.ts b/drizzle/schema.ts
index b949061b..65c53bea 100644
--- a/drizzle/schema.ts
+++ b/drizzle/schema.ts
@@ -351,7 +351,9 @@ export const Instances = pgTable("Instances", {
.notNull()
.$type<"versia" | "activitypub">()
.default("versia"),
+ inbox: text("inbox"),
publicKey: jsonb("public_key").$type(),
+ extensions: jsonb("extensions").$type(),
});
export const OpenIdAccounts = pgTable("OpenIdAccounts", {