feat: give plugins their own settings and one settings screen

This commit is contained in:
LukeGus committed 2026-09-22 18:31:19 -05:00
1 parent cc15559ea1
commit 49f0286a14
66 files changed
+36497 -451

No files matched your search

@@ -0,0 +1,15 @@
CREATE TABLE `plugin_settings` (
`id` int AUTO_INCREMENT NOT NULL,
`plugin_id` varchar(255) NOT NULL,
`scope` varchar(255) NOT NULL,
`scope_id` varchar(255),
`key` varchar(255) NOT NULL,
`value` text,
`encrypted` boolean NOT NULL DEFAULT false,
`updated_at` varchar(255) NOT NULL DEFAULT (CURRENT_TIMESTAMP),
CONSTRAINT `plugin_settings_id` PRIMARY KEY(`id`),
CONSTRAINT `idx_plugin_settings_scope_key` UNIQUE(`plugin_id`,`scope`,`scope_id`,`key`)
);
--> statement-breakpoint
ALTER TABLE `plugin_settings` ADD CONSTRAINT `plugin_settings_plugin_id_plugins_id_fk` FOREIGN KEY (`plugin_id`) REFERENCES `plugins`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
CREATE INDEX `idx_plugin_settings_plugin_scope` ON `plugin_settings` (`plugin_id`,`scope`);
File diff suppressed because it is too large. Load diff
+7
View File
@@ -204,6 +204,13 @@
"when": 1790114765594,
"tag": "0028_fair_tusk",
"breakpoints": true
},
{
"idx": 29,
"version": "5",
"when": 1790118361160,
"tag": "0029_open_captain_america",
"breakpoints": true
}
]
}
@@ -0,0 +1,14 @@
CREATE TABLE "plugin_settings" (
"id" serial PRIMARY KEY NOT NULL,
"plugin_id" varchar(255) NOT NULL,
"scope" varchar(255) NOT NULL,
"scope_id" varchar(255),
"key" varchar(255) NOT NULL,
"value" text,
"encrypted" boolean DEFAULT false NOT NULL,
"updated_at" varchar(255) DEFAULT CURRENT_TIMESTAMP NOT NULL
);
--> statement-breakpoint
ALTER TABLE "plugin_settings" ADD CONSTRAINT "plugin_settings_plugin_id_plugins_id_fk" FOREIGN KEY ("plugin_id") REFERENCES "public"."plugins"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
CREATE UNIQUE INDEX "idx_plugin_settings_scope_key" ON "plugin_settings" USING btree ("plugin_id","scope","scope_id","key");--> statement-breakpoint
CREATE INDEX "idx_plugin_settings_plugin_scope" ON "plugin_settings" USING btree ("plugin_id","scope");
File diff suppressed because it is too large. Load diff
+7
View File
@@ -211,6 +211,13 @@
"when": 1790114765114,
"tag": "0029_nosy_roulette",
"breakpoints": true
},
{
"idx": 30,
"version": "7",
"when": 1790118360674,
"tag": "0030_cynical_callisto",
"breakpoints": true
}
]
}
+14
View File
@@ -0,0 +1,14 @@
CREATE TABLE `plugin_settings` (
`id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,
`plugin_id` text NOT NULL,
`scope` text NOT NULL,
`scope_id` text,
`key` text NOT NULL,
`value` text,
`encrypted` integer DEFAULT false NOT NULL,
`updated_at` text DEFAULT CURRENT_TIMESTAMP NOT NULL,
FOREIGN KEY (`plugin_id`) REFERENCES `plugins`(`id`) ON UPDATE no action ON DELETE cascade
);
--> statement-breakpoint
CREATE UNIQUE INDEX `idx_plugin_settings_scope_key` ON `plugin_settings` (`plugin_id`,`scope`,`scope_id`,`key`);--> statement-breakpoint
CREATE INDEX `idx_plugin_settings_plugin_scope` ON `plugin_settings` (`plugin_id`,`scope`);
File diff suppressed because it is too large. Load diff
+7
View File
@@ -183,6 +183,13 @@
"when": 1790114764617,
"tag": "0025_overrated_cable",
"breakpoints": true
},
{
"idx": 26,
"version": "6",
"when": 1790118360159,
"tag": "0026_fair_sauron",
"breakpoints": true
}
]
}