Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
42170f5
feat: renamed databases page to connections
OverDsh Feb 3, 2026
db3b741
feat: create the RobloxCredentialsService
OverDsh Feb 3, 2026
ec31b19
feat: create api routes for RobloxCredentialService
OverDsh Feb 4, 2026
48299fd
refactor: renamed errors.ts to api-utils.ts
OverDsh Feb 4, 2026
5ee0e88
refactor: create fetcher util to use in controllers
OverDsh Feb 4, 2026
1fde0be
feat: create frontend hooks for RobloxCredentialService
OverDsh Feb 4, 2026
5bc40c2
fix: include roblox credentials table in drizzle schema
OverDsh Feb 4, 2026
66dbf02
fix: return mutations in useRobloxCredentialMutations
OverDsh Feb 4, 2026
8f8bf90
fix: remove type from RobloxCredentialInfoSchema
OverDsh Feb 4, 2026
50e65e8
enhancement: remove unused imports
OverDsh Feb 4, 2026
38b437a
feat: implement roblox credentials data table in the connections page
OverDsh Feb 4, 2026
1471545
enhancement: close form dialog after running callback
OverDsh Feb 4, 2026
28e71e9
enhancement: set submit button text to "Link" in RobloxCredentialDialog
OverDsh Feb 4, 2026
4f204db
fix: return success: true after rotating roblox credential key
OverDsh Feb 4, 2026
0632c83
feat: implement rename and roatate roblox credential
OverDsh Feb 4, 2026
2131f91
enhancement: require roblox credential key to be at least 1 character
OverDsh Feb 4, 2026
74f453f
enhancement: add a 5 min stale time to hooks using react query
OverDsh Feb 4, 2026
8dbdca1
chore: updated radix ui
OverDsh Feb 15, 2026
5f964a2
feat: install badge and popover components
OverDsh Feb 15, 2026
24a8fe9
feat: add refresh credential method, and various QOL improvements
OverDsh Feb 15, 2026
d6ecc2e
feat: implement credential status on the frontend
OverDsh Feb 15, 2026
6b086cf
fix: fix request object being cleared by the linter because treated as
OverDsh Feb 15, 2026
fa02d2b
enhancement: change time format to be consistent and add View Profile
OverDsh Feb 15, 2026
9edd48d
fix: add icon to error badge
OverDsh Feb 15, 2026
c992973
enhancement: changed popover style
OverDsh Feb 16, 2026
faf30f8
fix: list roblox credential checked permission for rename roblox
OverDsh Feb 16, 2026
db70949
feat: dynamically show databases/roblox credentials data table based on
OverDsh Feb 16, 2026
06e1499
fix: fix wrong key lookup for expiration date in the introspection table
OverDsh Mar 5, 2026
66a7819
refactor: move roblox credential status error message to
OverDsh Mar 7, 2026
730b357
feat: add database introspection, refresh, and rotate credentials to …
OverDsh Mar 18, 2026
ec1ad1f
feat: add refresh and rotate API routes for databases
OverDsh Mar 18, 2026
ee6ae59
feat: add refresh status and rotate credentials actions to database c…
OverDsh Mar 18, 2026
582e11c
enhancement: added icons to teams list's dropdown
OverDsh Mar 20, 2026
4b15ce9
feat: add structured logger utility and SSRF URL validator
OverDsh Mar 20, 2026
b513846
fix: fix IDOR vulnerabilities in _useCredential and _useDatabase
OverDsh Mar 20, 2026
297ff8e
fix: add SSRF protection, structured logging, and surface silent catch
OverDsh Mar 20, 2026
d88d0b3
feat: generate migration for roblox_credentials table
OverDsh Mar 27, 2026
cd753c1
fix: add VERCEL_URL to better auth trusted origins
OverDsh Mar 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions drizzle/0002_daffy_wolf_cub.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
CREATE TABLE `roblox_credentials` (
`id` text PRIMARY KEY NOT NULL,
`team_id` text NOT NULL,
`name` text NOT NULL,
`status` text DEFAULT 'healthy' NOT NULL,
`error_message` text,
`key_ciphertext` text NOT NULL,
`key_iv` text NOT NULL,
`key_tag` text NOT NULL,
`key_owner_roblox_id` integer NOT NULL,
`expiration_date` integer,
`last_used` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
`last_refreshed_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
`created_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL,
`created_by` text,
FOREIGN KEY (`team_id`) REFERENCES `team`(`id`) ON UPDATE no action ON DELETE cascade,
FOREIGN KEY (`created_by`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE set null
);
--> statement-breakpoint
ALTER TABLE `database` ADD `status` text DEFAULT 'healthy' NOT NULL;--> statement-breakpoint
ALTER TABLE `database` ADD `error_message` text;--> statement-breakpoint
ALTER TABLE `database` ADD `last_used` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL;--> statement-breakpoint
ALTER TABLE `database` ADD `last_refreshed_at` integer DEFAULT (cast(unixepoch('subsecond') * 1000 as integer)) NOT NULL;
Loading
Loading