Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
381cac0
chore(deps): allow established packages past trust window
urjitc Jul 16, 2026
6053fbc
refactor(workspaces): centralize tool access metadata
urjitc Jul 16, 2026
b8f07e5
feat(auth): add OAuth provider foundation
urjitc Jul 16, 2026
2677a1e
feat(mcp): expose workspace operations through code mode
urjitc Jul 16, 2026
1bdb195
fix(ci): isolate staging Worker deployments
urjitc Jul 16, 2026
bf9e0c2
fix(auth): persist OAuth signing keys
urjitc Jul 16, 2026
a25f6b3
fix(mcp): allow browser OAuth preflights
urjitc Jul 16, 2026
8b4239c
fix(mcp): verify tokens with local signing keys
urjitc Jul 16, 2026
bf387e2
fix(workspaces): isolate batch mutation ids
urjitc Jul 16, 2026
8bccd02
fix(workspaces): recognize conflicts across RPC
urjitc Jul 16, 2026
c69c4df
chore(auth): silence verified metadata warning
urjitc Jul 16, 2026
078491b
fix(workspaces): match serialized conflict errors
urjitc Jul 16, 2026
7c432bd
refactor(mcp): trust workspace permissions for deletes
urjitc Jul 16, 2026
38380eb
refactor(workspaces): return typed mutation conflicts
urjitc Jul 16, 2026
c8055ff
refactor(mcp): isolate auth and protocol configuration
urjitc Jul 16, 2026
14a4e5f
refactor(ai): remove unsafe provider option casts
urjitc Jul 16, 2026
37e1e7b
fix(workspaces): preserve operational failure semantics
urjitc Jul 16, 2026
ae29d84
refactor(react): simplify hook and render logic
urjitc Jul 16, 2026
99e2e7f
fix(security): pin sanitizer and MCP audience
urjitc Jul 16, 2026
d64bb45
fix(mcp): harden OAuth protocol recovery
urjitc Jul 17, 2026
210ed66
fix(workspaces): make item creation metadata atomic
urjitc Jul 17, 2026
e48c33d
fix(workspaces): keep deletion state and event atomic
urjitc Jul 17, 2026
fb9c050
feat(mcp): polish OAuth consent and metadata
urjitc Jul 17, 2026
e088e4f
fix(command): stabilize item registration
urjitc Jul 17, 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
101 changes: 101 additions & 0 deletions drizzle/0002_lyrical_lorna_dane.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
CREATE TABLE `oauth_access_token` (
`id` text PRIMARY KEY NOT NULL,
`token` text NOT NULL,
`client_id` text NOT NULL,
`session_id` text,
`user_id` text,
`reference_id` text,
`refresh_id` text,
`expires_at` integer NOT NULL,
`created_at` integer NOT NULL,
`scopes` text NOT NULL,
FOREIGN KEY (`client_id`) REFERENCES `oauth_client`(`client_id`) ON UPDATE no action ON DELETE cascade,
FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON UPDATE no action ON DELETE set null,
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade,
FOREIGN KEY (`refresh_id`) REFERENCES `oauth_refresh_token`(`id`) ON UPDATE no action ON DELETE cascade
);
--> statement-breakpoint
CREATE UNIQUE INDEX `oauth_access_token_token_unique` ON `oauth_access_token` (`token`);--> statement-breakpoint
CREATE INDEX `oauth_access_token_client_id_idx` ON `oauth_access_token` (`client_id`);--> statement-breakpoint
CREATE INDEX `oauth_access_token_session_id_idx` ON `oauth_access_token` (`session_id`);--> statement-breakpoint
CREATE INDEX `oauth_access_token_user_id_idx` ON `oauth_access_token` (`user_id`);--> statement-breakpoint
CREATE INDEX `oauth_access_token_refresh_id_idx` ON `oauth_access_token` (`refresh_id`);--> statement-breakpoint
CREATE TABLE `oauth_client` (
`id` text PRIMARY KEY NOT NULL,
`client_id` text NOT NULL,
`client_secret` text,
`disabled` integer DEFAULT false,
`skip_consent` integer,
`enable_end_session` integer,
`subject_type` text,
`scopes` text,
`user_id` text,
`created_at` integer,
`updated_at` integer,
`name` text,
`uri` text,
`icon` text,
`contacts` text,
`tos` text,
`policy` text,
`software_id` text,
`software_version` text,
`software_statement` text,
`redirect_uris` text NOT NULL,
`post_logout_redirect_uris` text,
`token_endpoint_auth_method` text,
`grant_types` text,
`response_types` text,
`public` integer,
`type` text,
`require_pkce` integer,
`reference_id` text,
`metadata` text,
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
);
--> statement-breakpoint
CREATE UNIQUE INDEX `oauth_client_client_id_unique` ON `oauth_client` (`client_id`);--> statement-breakpoint
CREATE INDEX `oauth_client_user_id_idx` ON `oauth_client` (`user_id`);--> statement-breakpoint
CREATE TABLE `oauth_consent` (
`id` text PRIMARY KEY NOT NULL,
`client_id` text NOT NULL,
`user_id` text,
`reference_id` text,
`scopes` text NOT NULL,
`created_at` integer NOT NULL,
`updated_at` integer NOT NULL,
FOREIGN KEY (`client_id`) REFERENCES `oauth_client`(`client_id`) ON UPDATE no action ON DELETE cascade,
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
);
--> statement-breakpoint
CREATE INDEX `oauth_consent_client_id_idx` ON `oauth_consent` (`client_id`);--> statement-breakpoint
CREATE INDEX `oauth_consent_user_id_idx` ON `oauth_consent` (`user_id`);--> statement-breakpoint
CREATE TABLE `oauth_refresh_token` (
`id` text PRIMARY KEY NOT NULL,
`token` text NOT NULL,
`client_id` text NOT NULL,
`session_id` text,
`user_id` text NOT NULL,
`reference_id` text,
`expires_at` integer NOT NULL,
`created_at` integer NOT NULL,
`revoked` integer,
`auth_time` integer,
`scopes` text NOT NULL,
FOREIGN KEY (`client_id`) REFERENCES `oauth_client`(`client_id`) ON UPDATE no action ON DELETE cascade,
FOREIGN KEY (`session_id`) REFERENCES `session`(`id`) ON UPDATE no action ON DELETE set null,
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade
);
--> statement-breakpoint
CREATE UNIQUE INDEX `oauth_refresh_token_token_unique` ON `oauth_refresh_token` (`token`);--> statement-breakpoint
CREATE INDEX `oauth_refresh_token_client_id_idx` ON `oauth_refresh_token` (`client_id`);--> statement-breakpoint
CREATE INDEX `oauth_refresh_token_session_id_idx` ON `oauth_refresh_token` (`session_id`);--> statement-breakpoint
CREATE INDEX `oauth_refresh_token_user_id_idx` ON `oauth_refresh_token` (`user_id`);--> statement-breakpoint
CREATE TABLE `rate_limit` (
`id` text PRIMARY KEY NOT NULL,
`key` text NOT NULL,
`count` integer NOT NULL,
`last_request` integer NOT NULL
);
--> statement-breakpoint
CREATE UNIQUE INDEX `rate_limit_key_unique` ON `rate_limit` (`key`);
7 changes: 7 additions & 0 deletions drizzle/0003_aberrant_nitro.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
CREATE TABLE `jwks` (
`id` text PRIMARY KEY NOT NULL,
`public_key` text NOT NULL,
`private_key` text NOT NULL,
`created_at` integer NOT NULL,
`expires_at` integer
);
Loading
Loading