@shipfox/api-auth 17.0.0 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +44 -0
  3. package/README.md +24 -9
  4. package/dist/core/administration.d.ts +15 -0
  5. package/dist/core/administration.d.ts.map +1 -1
  6. package/dist/core/administration.js +44 -2
  7. package/dist/core/administration.js.map +1 -1
  8. package/dist/core/auth.d.ts.map +1 -1
  9. package/dist/core/auth.js +5 -3
  10. package/dist/core/auth.js.map +1 -1
  11. package/dist/core/entities/agent-access.d.ts +75 -0
  12. package/dist/core/entities/agent-access.d.ts.map +1 -0
  13. package/dist/core/entities/agent-access.js +3 -0
  14. package/dist/core/entities/agent-access.js.map +1 -0
  15. package/dist/core/errors.d.ts +3 -0
  16. package/dist/core/errors.d.ts.map +1 -1
  17. package/dist/core/errors.js +6 -0
  18. package/dist/core/errors.js.map +1 -1
  19. package/dist/core/runner-session-token.d.ts.map +1 -1
  20. package/dist/core/runner-session-token.js +2 -1
  21. package/dist/core/runner-session-token.js.map +1 -1
  22. package/dist/db/admin-user-moderation.d.ts.map +1 -1
  23. package/dist/db/admin-user-moderation.js +30 -26
  24. package/dist/db/admin-user-moderation.js.map +1 -1
  25. package/dist/db/admin-user-summary.d.ts +22 -0
  26. package/dist/db/admin-user-summary.d.ts.map +1 -1
  27. package/dist/db/admin-user-summary.js +75 -1
  28. package/dist/db/admin-user-summary.js.map +1 -1
  29. package/dist/db/admin-users.d.ts +11 -0
  30. package/dist/db/admin-users.d.ts.map +1 -1
  31. package/dist/db/admin-users.js +4 -1
  32. package/dist/db/admin-users.js.map +1 -1
  33. package/dist/db/agent-access.d.ts +159 -0
  34. package/dist/db/agent-access.d.ts.map +1 -0
  35. package/dist/db/agent-access.js +267 -0
  36. package/dist/db/agent-access.js.map +1 -0
  37. package/dist/db/db.d.ts +2604 -238
  38. package/dist/db/db.d.ts.map +1 -1
  39. package/dist/db/db.js +7 -0
  40. package/dist/db/db.js.map +1 -1
  41. package/dist/db/schema/agent-access.d.ts +1204 -0
  42. package/dist/db/schema/agent-access.d.ts.map +1 -0
  43. package/dist/db/schema/agent-access.js +267 -0
  44. package/dist/db/schema/agent-access.js.map +1 -0
  45. package/dist/db/schema/users.d.ts.map +1 -1
  46. package/dist/db/schema/users.js +8 -3
  47. package/dist/db/schema/users.js.map +1 -1
  48. package/dist/index.d.ts +3 -2
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +2 -2
  51. package/dist/index.js.map +1 -1
  52. package/dist/metrics/instance.d.ts +1 -1
  53. package/dist/metrics/instance.d.ts.map +1 -1
  54. package/dist/metrics/instance.js.map +1 -1
  55. package/dist/presentation/routes/administration.d.ts.map +1 -1
  56. package/dist/presentation/routes/administration.js +123 -20
  57. package/dist/presentation/routes/administration.js.map +1 -1
  58. package/dist/presentation/routes/email-verification/verify-email-resend.d.ts.map +1 -1
  59. package/dist/presentation/routes/email-verification/verify-email-resend.js +6 -1
  60. package/dist/presentation/routes/email-verification/verify-email-resend.js.map +1 -1
  61. package/dist/presentation/routes/rate-limit.d.ts.map +1 -1
  62. package/dist/presentation/routes/rate-limit.js +10 -0
  63. package/dist/presentation/routes/rate-limit.js.map +1 -1
  64. package/dist/presentation/routes/registration/signup.d.ts.map +1 -1
  65. package/dist/presentation/routes/registration/signup.js +59 -50
  66. package/dist/presentation/routes/registration/signup.js.map +1 -1
  67. package/dist/tsconfig.test.tsbuildinfo +1 -1
  68. package/drizzle/0003_brainy_luckman.sql +6 -0
  69. package/drizzle/0004_yummy_runaways.sql +110 -0
  70. package/drizzle/meta/0003_snapshot.json +844 -0
  71. package/drizzle/meta/0004_snapshot.json +1751 -0
  72. package/drizzle/meta/_journal.json +14 -0
  73. package/package.json +7 -7
  74. package/src/core/admin-role.test.ts +70 -0
  75. package/src/core/administration.ts +78 -1
  76. package/src/core/auth.ts +3 -5
  77. package/src/core/entities/agent-access.ts +80 -0
  78. package/src/core/errors.ts +7 -0
  79. package/src/core/runner-session-token.test.ts +2 -0
  80. package/src/core/runner-session-token.ts +1 -0
  81. package/src/db/admin-user-moderation.ts +53 -45
  82. package/src/db/admin-user-summary.test.ts +228 -0
  83. package/src/db/admin-user-summary.ts +143 -1
  84. package/src/db/admin-users.ts +21 -1
  85. package/src/db/agent-access.test.ts +370 -0
  86. package/src/db/agent-access.ts +629 -0
  87. package/src/db/db.ts +14 -0
  88. package/src/db/schema/agent-access.ts +273 -0
  89. package/src/db/schema/users.ts +9 -3
  90. package/src/index.ts +6 -0
  91. package/src/metrics/instance.ts +1 -0
  92. package/src/presentation/routes/administration.test.ts +359 -2
  93. package/src/presentation/routes/administration.ts +142 -20
  94. package/src/presentation/routes/email-verification/verify-email-resend.ts +7 -1
  95. package/src/presentation/routes/rate-limit.ts +4 -0
  96. package/src/presentation/routes/registration/signup.ts +52 -41
  97. package/test/globalSetup.ts +1 -1
  98. package/test/routes.ts +3 -1
  99. package/tsconfig.build.tsbuildinfo +1 -1
@@ -0,0 +1,6 @@
1
+ CREATE INDEX "auth_users_created_at_id_index" ON "auth_users" USING btree ("created_at" desc,"id" desc);--> statement-breakpoint
2
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;--> statement-breakpoint
3
+ ALTER TABLE "auth_users" ALTER COLUMN "created_at" SET DATA TYPE timestamp (3) with time zone;--> statement-breakpoint
4
+ ALTER TABLE "auth_users" ALTER COLUMN "created_at" SET DEFAULT now();--> statement-breakpoint
5
+ CREATE INDEX "auth_users_name_trgm_index" ON "auth_users" USING gin ("name" gin_trgm_ops);--> statement-breakpoint
6
+ CREATE INDEX "auth_users_email_trgm_index" ON "auth_users" USING gin ("email" gin_trgm_ops);
@@ -0,0 +1,110 @@
1
+ CREATE TYPE "public"."auth_agent_client_kind" AS ENUM('registered', 'cimd');--> statement-breakpoint
2
+ CREATE TABLE "auth_agent_authorization_codes" (
3
+ "id" uuid PRIMARY KEY DEFAULT uuidv7() NOT NULL,
4
+ "grant_id" uuid NOT NULL,
5
+ "hashed_code" text NOT NULL,
6
+ "code_challenge" text NOT NULL,
7
+ "redirect_uri" text NOT NULL,
8
+ "resource" text NOT NULL,
9
+ "expires_at" timestamp with time zone NOT NULL,
10
+ "consumed_at" timestamp with time zone,
11
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
12
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
13
+ );
14
+ --> statement-breakpoint
15
+ CREATE TABLE "auth_agent_authorization_requests" (
16
+ "id" uuid PRIMARY KEY DEFAULT uuidv7() NOT NULL,
17
+ "client_id" uuid NOT NULL,
18
+ "redirect_uri" text NOT NULL,
19
+ "resource" text NOT NULL,
20
+ "scopes" text[] NOT NULL,
21
+ "code_challenge" text NOT NULL,
22
+ "state" text,
23
+ "expires_at" timestamp with time zone NOT NULL,
24
+ "consumed_at" timestamp with time zone,
25
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
26
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
27
+ );
28
+ --> statement-breakpoint
29
+ CREATE TABLE "auth_agent_clients" (
30
+ "id" uuid PRIMARY KEY DEFAULT uuidv7() NOT NULL,
31
+ "client_id" text NOT NULL,
32
+ "name" text NOT NULL,
33
+ "redirect_uris" text[] NOT NULL,
34
+ "kind" "auth_agent_client_kind" NOT NULL,
35
+ "last_seen_at" timestamp with time zone,
36
+ "unreferenced_at" timestamp with time zone,
37
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
38
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
39
+ );
40
+ --> statement-breakpoint
41
+ CREATE TABLE "auth_agent_grants" (
42
+ "id" uuid PRIMARY KEY DEFAULT uuidv7() NOT NULL,
43
+ "user_id" uuid NOT NULL,
44
+ "workspace_id" uuid NOT NULL,
45
+ "client_id" uuid NOT NULL,
46
+ "scopes" text[] NOT NULL,
47
+ "last_used_at" timestamp with time zone,
48
+ "revoked_at" timestamp with time zone,
49
+ "terminal_at" timestamp with time zone,
50
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
51
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
52
+ );
53
+ --> statement-breakpoint
54
+ CREATE TABLE "auth_agent_pats" (
55
+ "id" uuid PRIMARY KEY DEFAULT uuidv7() NOT NULL,
56
+ "user_id" uuid NOT NULL,
57
+ "workspace_id" uuid NOT NULL,
58
+ "hashed_token" text NOT NULL,
59
+ "prefix" text NOT NULL,
60
+ "name" text NOT NULL,
61
+ "scopes" text[] NOT NULL,
62
+ "expires_at" timestamp with time zone NOT NULL,
63
+ "last_used_at" timestamp with time zone,
64
+ "revoked_at" timestamp with time zone,
65
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
66
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
67
+ );
68
+ --> statement-breakpoint
69
+ CREATE TABLE "auth_agent_refresh_tokens" (
70
+ "id" uuid PRIMARY KEY DEFAULT uuidv7() NOT NULL,
71
+ "grant_id" uuid NOT NULL,
72
+ "hashed_token" text NOT NULL,
73
+ "expires_at" timestamp with time zone NOT NULL,
74
+ "rotated_at" timestamp with time zone,
75
+ "revoked_at" timestamp with time zone,
76
+ "last_used_at" timestamp with time zone,
77
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
78
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
79
+ );
80
+ --> statement-breakpoint
81
+ ALTER TABLE "auth_agent_authorization_codes" ADD CONSTRAINT "auth_agent_authorization_codes_grant_id_auth_agent_grants_id_fk" FOREIGN KEY ("grant_id") REFERENCES "public"."auth_agent_grants"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
82
+ ALTER TABLE "auth_agent_authorization_requests" ADD CONSTRAINT "auth_agent_authorization_requests_client_id_auth_agent_clients_id_fk" FOREIGN KEY ("client_id") REFERENCES "public"."auth_agent_clients"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
83
+ ALTER TABLE "auth_agent_grants" ADD CONSTRAINT "auth_agent_grants_user_id_auth_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."auth_users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
84
+ ALTER TABLE "auth_agent_grants" ADD CONSTRAINT "auth_agent_grants_client_id_auth_agent_clients_id_fk" FOREIGN KEY ("client_id") REFERENCES "public"."auth_agent_clients"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
85
+ ALTER TABLE "auth_agent_pats" ADD CONSTRAINT "auth_agent_pats_user_id_auth_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."auth_users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
86
+ ALTER TABLE "auth_agent_refresh_tokens" ADD CONSTRAINT "auth_agent_refresh_tokens_grant_id_auth_agent_grants_id_fk" FOREIGN KEY ("grant_id") REFERENCES "public"."auth_agent_grants"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
87
+ CREATE UNIQUE INDEX "auth_agent_authorization_codes_hashed_code_unique" ON "auth_agent_authorization_codes" USING btree ("hashed_code");--> statement-breakpoint
88
+ CREATE INDEX "auth_agent_authorization_codes_grant_id_idx" ON "auth_agent_authorization_codes" USING btree ("grant_id");--> statement-breakpoint
89
+ CREATE INDEX "auth_agent_authorization_codes_expires_at_idx" ON "auth_agent_authorization_codes" USING btree ("expires_at");--> statement-breakpoint
90
+ CREATE INDEX "auth_agent_authorization_requests_client_id_idx" ON "auth_agent_authorization_requests" USING btree ("client_id");--> statement-breakpoint
91
+ CREATE INDEX "auth_agent_authorization_requests_expires_at_idx" ON "auth_agent_authorization_requests" USING btree ("expires_at");--> statement-breakpoint
92
+ CREATE UNIQUE INDEX "auth_agent_clients_client_id_unique" ON "auth_agent_clients" USING btree ("client_id");--> statement-breakpoint
93
+ CREATE INDEX "auth_agent_clients_unreferenced_at_idx" ON "auth_agent_clients" USING btree ("unreferenced_at");--> statement-breakpoint
94
+ CREATE INDEX "auth_agent_clients_created_at_idx" ON "auth_agent_clients" USING btree ("created_at");--> statement-breakpoint
95
+ CREATE INDEX "auth_agent_grants_user_id_idx" ON "auth_agent_grants" USING btree ("user_id");--> statement-breakpoint
96
+ CREATE INDEX "auth_agent_grants_workspace_id_idx" ON "auth_agent_grants" USING btree ("workspace_id");--> statement-breakpoint
97
+ CREATE INDEX "auth_agent_grants_client_id_idx" ON "auth_agent_grants" USING btree ("client_id");--> statement-breakpoint
98
+ CREATE INDEX "auth_agent_grants_terminal_at_idx" ON "auth_agent_grants" USING btree ("terminal_at");--> statement-breakpoint
99
+ CREATE UNIQUE INDEX "auth_agent_grants_active_user_workspace_client_unique" ON "auth_agent_grants" USING btree ("user_id", "workspace_id", "client_id") WHERE "auth_agent_grants"."revoked_at" IS NULL AND "auth_agent_grants"."terminal_at" IS NULL;--> statement-breakpoint
100
+ CREATE UNIQUE INDEX "auth_agent_pats_hashed_token_unique" ON "auth_agent_pats" USING btree ("hashed_token");--> statement-breakpoint
101
+ CREATE INDEX "auth_agent_pats_user_id_idx" ON "auth_agent_pats" USING btree ("user_id");--> statement-breakpoint
102
+ CREATE INDEX "auth_agent_pats_workspace_id_idx" ON "auth_agent_pats" USING btree ("workspace_id");--> statement-breakpoint
103
+ CREATE INDEX "auth_agent_pats_expires_at_idx" ON "auth_agent_pats" USING btree ("expires_at");--> statement-breakpoint
104
+ CREATE INDEX "auth_agent_pats_revoked_at_idx" ON "auth_agent_pats" USING btree ("revoked_at");--> statement-breakpoint
105
+ CREATE UNIQUE INDEX "auth_agent_refresh_tokens_hashed_token_unique" ON "auth_agent_refresh_tokens" USING btree ("hashed_token");--> statement-breakpoint
106
+ CREATE UNIQUE INDEX "auth_agent_refresh_tokens_live_grant_unique" ON "auth_agent_refresh_tokens" USING btree ("grant_id") WHERE "auth_agent_refresh_tokens"."rotated_at" IS NULL AND "auth_agent_refresh_tokens"."revoked_at" IS NULL;--> statement-breakpoint
107
+ CREATE INDEX "auth_agent_refresh_tokens_grant_id_idx" ON "auth_agent_refresh_tokens" USING btree ("grant_id");--> statement-breakpoint
108
+ CREATE INDEX "auth_agent_refresh_tokens_expires_at_idx" ON "auth_agent_refresh_tokens" USING btree ("expires_at");--> statement-breakpoint
109
+ CREATE INDEX "auth_agent_refresh_tokens_rotated_at_idx" ON "auth_agent_refresh_tokens" USING btree ("rotated_at");--> statement-breakpoint
110
+ CREATE INDEX "auth_agent_refresh_tokens_revoked_at_idx" ON "auth_agent_refresh_tokens" USING btree ("revoked_at");