Swadhin Biswas

[email protected]
2026-08-19 16:36:57 +0600 committed NaN years ago
Co-auth
commit Co-auth
58 files changed
+52776 -1485
▼.gitignore
+1-0
80
80
81
81
# Astro build cache
82
82
.astro/
83
+.mimocode
83
84
▼.mimocode/.cron-lock
+1-1
1
-{"pid":8618,"startedAt":1784441536749}
1
+{"pid":200714,"startedAt":1786948684649}
2
2
▼astro.config.mjs
+3-0
17
17
adapter: node({
18
18
mode: "standalone",
19
19
}),
20
+ devToolbar: {
21
+ enabled: false,
22
+ },
20
23
server: {
21
24
port,
22
25
host: true,
23
26
▼docs-site/astro.config.mjs
+1-0
74
74
{ label: "Developer Metrics", slug: "features/developer-metrics" },
75
75
{ label: "Notifications", slug: "features/notifications" },
76
76
{ label: "Slack Integration", slug: "features/slack-integration" },
77
+ { label: "Federation & Cross-Instance PRs", slug: "features/federation" },
77
78
{ label: "CLI Workflows", slug: "features/cli" },
78
79
],
79
80
},
80
81
▼docs-site/src/content/docs/administration/air-gapped.md
+4-0
1
+---
2
+title: "Air-gapped Environments"
3
+---
4
+
1
5
# Air-gapped Environments
2
6
3
7
OpenCodeHub can be deployed in fully offline, air-gapped networks.
4
8
▼docs-site/src/content/docs/administration/backup-restore.md
+4-0
1
+---
2
+title: "Backup and Restore"
3
+---
4
+
1
5
# Backup and Restore
2
6
3
7
This guide covers how to back up and restore an OpenCodeHub instance.
4
8
▼docs-site/src/content/docs/administration/horizontal-scaling.md
+4-0
1
+---
2
+title: "Horizontal Scaling"
3
+---
4
+
1
5
# Horizontal Scaling
2
6
3
7
OpenCodeHub is designed to be scaled horizontally to handle high traffic and large workloads.
4
8
▼docs-site/src/content/docs/development/release-gates.md
+4-0
1
+---
2
+title: "Release Gates"
3
+---
4
+
1
5
# Release Gates
2
6
3
7
This document outlines the required gates that must be passed before any code can be merged into the default branch.
4
8
▼docs-site/src/content/docs/features/federation.md
+97-0
1
+---
2
+title: "Federation & Cross-Instance PRs"
3
+---
4
+
5
+> Connect two self-hosted OpenCodeHub instances so contributors on one can fork, contribute, and open pull requests against repositories hosted on another.
6
+
7
+Federation lets a user on instance **A** fork a repository hosted on instance **B**, push branches back to B, and open **cross-instance pull requests** whose head branch lives on A's fork. B pulls the head from A's fork URL, creates a normal PR (with `headRepositoryId` unset), and the usual review and merge pipeline applies.
8
+
9
+## Table of Contents
10
+
11
+- [Overview](#overview)
12
+- [How It Works](#how-it-works)
13
+- [Setting Up Federation](#setting-up-federation)
14
+- [Forking a Repository from Another Instance](#forking-a-repository-from-another-instance)
15
+- [Contributing Back](#contributing-back)
16
+- [Cross-Instance Pull Requests](#cross-instance-pull-requests)
17
+- [Permissions](#permissions)
18
+- [SSRF Protection](#ssrf-protection)
19
+
20
+## Overview
21
+
22
+The two instances interoperate over HTTP. Instance A talks to B's REST API using a Personal Access Token belonging to the contributing user on B. All git traffic flows over the normal smart-HTTP protocol using basic auth with that PAT.
23
+
24
+```
25
+┌─────────────────┐ import (clone URL + PAT) ┌─────────────────┐
26
+│ Instance A │ ───────────────────────────▶ │ Instance B │
27
+│ bob/fedbase │ │ alice/fedbase │
28
+│ (fork) │ ◀─────────────────────────── │ (upstream) │
29
+│ │ push-upstream (git push) │ │
30
+│ │ ───────────────────────────▶ │ │
31
+│ │ federation/open-pull │ external-pulls │
32
+└─────────────────┘ ◀─────────────────────────── └─────────────────┘
33
+```
34
+
35
+## How It Works
36
+
37
+1. **Import (fork)**: On instance A, import `https://B/alice/fedbase.git` and authenticate with a PAT for the user on B. A detects that the source is another OpenCodeHub instance (`GET /api/instance`) and records the relationship as `forkedFromUrl`.
38
+2. **Contribute back**: A can push any branch on its fork back to B (`federation/push-upstream`). B's existing `git-receive-pack` authorizes the push via `canWriteRepo` — B controls who may contribute.
39
+3. **Cross-instance PR**: A calls `federation/open-pull` on B. B validates the fork URL (SSRF check), fetches the head branch from A's fork into the B repo, computes diff stats, and creates a PR whose head lives on A's fork.
40
+4. **Review & merge**: The PR is a normal PR on B. Reviews, approvals, CI, and the merge queue all apply. Merging fetches the head ref and merges it into the base branch.
41
+
42
+## Setting Up Federation
43
+
44
+Federation is enabled out of the box. Two environment variables control SSRF behavior:
45
+
46
+| Variable | Purpose |
47
+|----------|---------|
48
+| `FEDERATION_ALLOW_LOCALHOST` | Set `true` to allow fetching from `localhost`/loopback URLs. **Only** for two-instance testing on a single host or a trusted private network. Never enable in production. |
49
+
50
+The upstream instance does not need any special config beyond the normal collaboration settings: the A user simply needs read access (to see the repo) and write access (to push branches and open PRs).
51
+
52
+## Forking a Repository from Another Instance
53
+
54
+On instance A, use the normal **Import Repository** flow:
55
+
56
+1. Paste the upstream clone URL, e.g. `http://instance-b.local/swadhinbiswas/fedbase.git`.
57
+2. Enter the **auth username** and a **PAT** for the user on instance B (the username must match the B account, e.g. `bob`).
58
+3. Complete the import. Instance A records `forkedFromUrl` and stores an encrypted mirror PAT so it can push back later.
59
+
60
+> For cross-instance PRs the source URL must be fetchable by B — the fork must be on a host B can reach, and the fork repo must be readable by B (public, or accessible with the embedded PAT).
61
+
62
+## Contributing Back
63
+
64
+From the fork's repository page on A, the **Federation** panel offers **Push branch to upstream**:
65
+
66
+- Pick a branch on the fork.
67
+- A pushes `branch:branch` to the upstream clone URL, authenticating with the stored B user's PAT.
68
+
69
+B's permission model decides whether the push succeeds — the B user must be a collaborator (or the repo must allow external writes).
70
+
71
+## Cross-Instance Pull Requests
72
+
73
+From the same **Federation** panel, **Open cross-instance PR**:
74
+
75
+1. A calls `POST /api/repos/{owner}/{repo}/external-pulls` on B (server-to-server) with the fork URL, head branch, base branch, title, and body.
76
+2. B validates the fork URL, fetches the head into the B repo, computes additions/deletions/changed files, and creates the PR.
77
+3. The PR's head branch resolves to the fetched ref on B, so the diff, comments, and merge all work normally.
78
+
79
+### Endpoints
80
+
81
+| Endpoint (on B) | Purpose |
82
+|-----------------|---------|
83
+| `POST /api/repos/{owner}/{repo}/external-pulls` | Create a PR whose head is fetched from an external fork URL |
84
+| `GET /api/instance` | Instance metadata probe used for detection |
85
+
86
+## Permissions
87
+
88
+- **Import on A**: requires a valid PAT for the B user.
89
+- **Push upstream**: B's `git-receive-pack` requires the B user to have write access to the repo.
90
+- **Open a cross-instance PR**: B's `external-pulls` endpoint requires the caller to have read access plus either write access to the repo, or the repo must have **Allow external pull requests** enabled (repo → Settings → Federation).
91
+- **Merge**: normal PR merge gates apply (approvals, required checks, branch protection).
92
+
93
+## SSRF Protection
94
+
95
+Every server-initiated fetch (import on A, external-pulls on B) runs through `validateGitCloneUrl`, which blocks private ranges, cloud metadata endpoints, and non-HTTP(S)/git/ssh schemes. The localhost bypass is only available when `FEDERATION_ALLOW_LOCALHOST=true`, and callers gate it explicitly.
96
+
97
+Tokens embedded into fetch/push URLs are used transiently and never persisted.
0
98
▼docs-site/src/content/docs/reference/api-versioning.md
+4-0
1
+---
2
+title: "API Versioning"
3
+---
4
+
1
5
# API Versioning
2
6
3
7
OpenCodeHub provides a stable REST API and GraphQL endpoint.
4
8
▼drizzle/0005_add_mirror_token.sql
+13-0
1
+ALTER TABLE "repositories" ADD COLUMN "mirror_token" text;--> statement-breakpoint
2
+CREATE INDEX "deploy_keys_repository_id_idx" ON "deploy_keys" USING btree ("repository_id");--> statement-breakpoint
3
+CREATE INDEX "pr_reviewers_pr_idx" ON "pull_request_reviewers" USING btree ("pull_request_id");--> statement-breakpoint
4
+CREATE INDEX "pr_stack_entries_stack_idx" ON "pr_stack_entries" USING btree ("stack_id");--> statement-breakpoint
5
+CREATE INDEX "pr_stack_entries_pr_idx" ON "pr_stack_entries" USING btree ("pull_request_id");--> statement-breakpoint
6
+CREATE INDEX "pr_stack_entries_parent_pr_idx" ON "pr_stack_entries" USING btree ("parent_pr_id");--> statement-breakpoint
7
+CREATE INDEX "pr_stacks_repo_idx" ON "pr_stacks" USING btree ("repository_id");--> statement-breakpoint
8
+CREATE INDEX "merge_queue_repo_idx" ON "merge_queue" USING btree ("repository_id");--> statement-breakpoint
9
+CREATE INDEX "merge_queue_status_idx" ON "merge_queue" USING btree ("status");--> statement-breakpoint
10
+CREATE INDEX "merge_queue_pr_idx" ON "merge_queue" USING btree ("pull_request_id");--> statement-breakpoint
11
+CREATE INDEX "ai_reviews_pull_request_id_idx" ON "ai_reviews" USING btree ("pull_request_id");--> statement-breakpoint
12
+CREATE INDEX "branch_protection_repository_id_idx" ON "branch_protection" USING btree ("repository_id");--> statement-breakpoint
13
+CREATE INDEX "automation_rules_repository_id_idx" ON "automation_rules" USING btree ("repository_id");
0
14
▼drizzle/0006_add_federation_columns.sql
+2-0
1
+ALTER TABLE "repositories" ADD COLUMN "forked_from_url" text;--> statement-breakpoint
2
+ALTER TABLE "repositories" ADD COLUMN "allow_external_pulls" boolean DEFAULT false;
0
3
▼drizzle/0007_add_mirror_username.sql
+1-0
1
+ALTER TABLE "repositories" ADD COLUMN "mirror_username" text;
0
2
▼drizzle/meta/0005_snapshot.json
+16246-0
1
+{
2
+ "id": "867367be-1b18-44be-9e17-2f744f9865ff",
3
+ "prevId": "f7fe1f6b-d9ea-44b6-a5e0-f099a0db9144",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.email_verification_tokens": {
8
+ "name": "email_verification_tokens",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "text",
14
+ "primaryKey": true,
15
+ "notNull": true
16
+ },
17
+ "user_id": {
18
+ "name": "user_id",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true
22
+ },
23
+ "token": {
24
+ "name": "token",
25
+ "type": "text",
26
+ "primaryKey": false,
27
+ "notNull": true
28
+ },
29
+ "expires_at": {
30
+ "name": "expires_at",
31
+ "type": "timestamp",
32
+ "primaryKey": false,
33
+ "notNull": true
34
+ },
35
+ "created_at": {
36
+ "name": "created_at",
37
+ "type": "timestamp",
38
+ "primaryKey": false,
39
+ "notNull": true,
40
+ "default": "now()"
41
+ }
42
+ },
43
+ "indexes": {},
44
+ "foreignKeys": {
45
+ "email_verification_tokens_user_id_users_id_fk": {
46
+ "name": "email_verification_tokens_user_id_users_id_fk",
47
+ "tableFrom": "email_verification_tokens",
48
+ "tableTo": "users",
49
+ "columnsFrom": [
50
+ "user_id"
51
+ ],
52
+ "columnsTo": [
53
+ "id"
54
+ ],
55
+ "onDelete": "cascade",
56
+ "onUpdate": "no action"
57
+ }
58
+ },
59
+ "compositePrimaryKeys": {},
60
+ "uniqueConstraints": {
61
+ "email_verification_tokens_token_unique": {
62
+ "name": "email_verification_tokens_token_unique",
63
+ "nullsNotDistinct": false,
64
+ "columns": [
65
+ "token"
66
+ ]
67
+ }
68
+ },
69
+ "policies": {},
70
+ "checkConstraints": {},
71
+ "isRLSEnabled": false
72
+ },
73
+ "public.gpg_keys": {
74
+ "name": "gpg_keys",
75
+ "schema": "",
76
+ "columns": {
77
+ "id": {
78
+ "name": "id",
79
+ "type": "text",
80
+ "primaryKey": true,
81
+ "notNull": true
82
+ },
83
+ "user_id": {
84
+ "name": "user_id",
85
+ "type": "text",
86
+ "primaryKey": false,
87
+ "notNull": true
88
+ },
89
+ "name": {
90
+ "name": "name",
91
+ "type": "text",
92
+ "primaryKey": false,
93
+ "notNull": true
94
+ },
95
+ "key_id": {
96
+ "name": "key_id",
97
+ "type": "text",
98
+ "primaryKey": false,
99
+ "notNull": true
100
+ },
101
+ "public_key": {
102
+ "name": "public_key",
103
+ "type": "text",
104
+ "primaryKey": false,
105
+ "notNull": true
106
+ },
107
+ "created_at": {
108
+ "name": "created_at",
109
+ "type": "timestamp",
110
+ "primaryKey": false,
111
+ "notNull": true,
112
+ "default": "now()"
113
+ }
114
+ },
115
+ "indexes": {},
116
+ "foreignKeys": {
117
+ "gpg_keys_user_id_users_id_fk": {
118
+ "name": "gpg_keys_user_id_users_id_fk",
119
+ "tableFrom": "gpg_keys",
120
+ "tableTo": "users",
121
+ "columnsFrom": [
122
+ "user_id"
123
+ ],
124
+ "columnsTo": [
125
+ "id"
126
+ ],
127
+ "onDelete": "cascade",
128
+ "onUpdate": "no action"
129
+ }
130
+ },
131
+ "compositePrimaryKeys": {},
132
+ "uniqueConstraints": {},
133
+ "policies": {},
134
+ "checkConstraints": {},
135
+ "isRLSEnabled": false
136
+ },
137
+ "public.oauth_accounts": {
138
+ "name": "oauth_accounts",
139
+ "schema": "",
140
+ "columns": {
141
+ "id": {
142
+ "name": "id",
143
+ "type": "text",
144
+ "primaryKey": true,
145
+ "notNull": true
146
+ },
147
+ "user_id": {
148
+ "name": "user_id",
149
+ "type": "text",
150
+ "primaryKey": false,
151
+ "notNull": true
152
+ },
153
+ "provider": {
154
+ "name": "provider",
155
+ "type": "text",
156
+ "primaryKey": false,
157
+ "notNull": true
158
+ },
159
+ "provider_account_id": {
160
+ "name": "provider_account_id",
161
+ "type": "text",
162
+ "primaryKey": false,
163
+ "notNull": true
164
+ },
165
+ "access_token": {
166
+ "name": "access_token",
167
+ "type": "text",
168
+ "primaryKey": false,
169
+ "notNull": false
170
+ },
171
+ "refresh_token": {
172
+ "name": "refresh_token",
173
+ "type": "text",
174
+ "primaryKey": false,
175
+ "notNull": false
176
+ },
177
+ "expires_at": {
178
+ "name": "expires_at",
179
+ "type": "timestamp",
180
+ "primaryKey": false,
181
+ "notNull": false
182
+ },
183
+ "created_at": {
184
+ "name": "created_at",
185
+ "type": "timestamp",
186
+ "primaryKey": false,
187
+ "notNull": true,
188
+ "default": "now()"
189
+ }
190
+ },
191
+ "indexes": {},
192
+ "foreignKeys": {
193
+ "oauth_accounts_user_id_users_id_fk": {
194
+ "name": "oauth_accounts_user_id_users_id_fk",
195
+ "tableFrom": "oauth_accounts",
196
+ "tableTo": "users",
197
+ "columnsFrom": [
198
+ "user_id"
199
+ ],
200
+ "columnsTo": [
201
+ "id"
202
+ ],
203
+ "onDelete": "cascade",
204
+ "onUpdate": "no action"
205
+ }
206
+ },
207
+ "compositePrimaryKeys": {},
208
+ "uniqueConstraints": {},
209
+ "policies": {},
210
+ "checkConstraints": {},
211
+ "isRLSEnabled": false
212
+ },
213
+ "public.password_reset_tokens": {
214
+ "name": "password_reset_tokens",
215
+ "schema": "",
216
+ "columns": {
217
+ "id": {
218
+ "name": "id",
219
+ "type": "text",
220
+ "primaryKey": true,
221
+ "notNull": true
222
+ },
223
+ "user_id": {
224
+ "name": "user_id",
225
+ "type": "text",
226
+ "primaryKey": false,
227
+ "notNull": true
228
+ },
229
+ "token": {
230
+ "name": "token",
231
+ "type": "text",
232
+ "primaryKey": false,
233
+ "notNull": true
234
+ },
235
+ "expires_at": {
236
+ "name": "expires_at",
237
+ "type": "timestamp",
238
+ "primaryKey": false,
239
+ "notNull": true
240
+ },
241
+ "created_at": {
242
+ "name": "created_at",
243
+ "type": "timestamp",
244
+ "primaryKey": false,
245
+ "notNull": true,
246
+ "default": "now()"
247
+ }
248
+ },
249
+ "indexes": {},
250
+ "foreignKeys": {
251
+ "password_reset_tokens_user_id_users_id_fk": {
252
+ "name": "password_reset_tokens_user_id_users_id_fk",
253
+ "tableFrom": "password_reset_tokens",
254
+ "tableTo": "users",
255
+ "columnsFrom": [
256
+ "user_id"
257
+ ],
258
+ "columnsTo": [
259
+ "id"
260
+ ],
261
+ "onDelete": "cascade",
262
+ "onUpdate": "no action"
263
+ }
264
+ },
265
+ "compositePrimaryKeys": {},
266
+ "uniqueConstraints": {
267
+ "password_reset_tokens_token_unique": {
268
+ "name": "password_reset_tokens_token_unique",
269
+ "nullsNotDistinct": false,
270
+ "columns": [
271
+ "token"
272
+ ]
273
+ }
274
+ },
275
+ "policies": {},
276
+ "checkConstraints": {},
277
+ "isRLSEnabled": false
278
+ },
279
+ "public.personal_access_tokens": {
280
+ "name": "personal_access_tokens",
281
+ "schema": "",
282
+ "columns": {
283
+ "id": {
284
+ "name": "id",
285
+ "type": "text",
286
+ "primaryKey": true,
287
+ "notNull": true
288
+ },
289
+ "user_id": {
290
+ "name": "user_id",
291
+ "type": "text",
292
+ "primaryKey": false,
293
+ "notNull": true
294
+ },
295
+ "name": {
296
+ "name": "name",
297
+ "type": "text",
298
+ "primaryKey": false,
299
+ "notNull": true
300
+ },
301
+ "token": {
302
+ "name": "token",
303
+ "type": "text",
304
+ "primaryKey": false,
305
+ "notNull": true
306
+ },
307
+ "expires_at": {
308
+ "name": "expires_at",
309
+ "type": "timestamp",
310
+ "primaryKey": false,
311
+ "notNull": false
312
+ },
313
+ "last_used_at": {
314
+ "name": "last_used_at",
315
+ "type": "timestamp",
316
+ "primaryKey": false,
317
+ "notNull": false
318
+ },
319
+ "scopes": {
320
+ "name": "scopes",
321
+ "type": "text",
322
+ "primaryKey": false,
323
+ "notNull": false
324
+ },
325
+ "created_at": {
326
+ "name": "created_at",
327
+ "type": "timestamp",
328
+ "primaryKey": false,
329
+ "notNull": true,
330
+ "default": "now()"
331
+ }
332
+ },
333
+ "indexes": {},
334
+ "foreignKeys": {
335
+ "personal_access_tokens_user_id_users_id_fk": {
336
+ "name": "personal_access_tokens_user_id_users_id_fk",
337
+ "tableFrom": "personal_access_tokens",
338
+ "tableTo": "users",
339
+ "columnsFrom": [
340
+ "user_id"
341
+ ],
342
+ "columnsTo": [
343
+ "id"
344
+ ],
345
+ "onDelete": "cascade",
346
+ "onUpdate": "no action"
347
+ }
348
+ },
349
+ "compositePrimaryKeys": {},
350
+ "uniqueConstraints": {
351
+ "personal_access_tokens_token_unique": {
352
+ "name": "personal_access_tokens_token_unique",
353
+ "nullsNotDistinct": false,
354
+ "columns": [
355
+ "token"
356
+ ]
357
+ }
358
+ },
359
+ "policies": {},
360
+ "checkConstraints": {},
361
+ "isRLSEnabled": false
362
+ },
363
+ "public.sessions": {
364
+ "name": "sessions",
365
+ "schema": "",
366
+ "columns": {
367
+ "id": {
368
+ "name": "id",
369
+ "type": "text",
370
+ "primaryKey": true,
371
+ "notNull": true
372
+ },
373
+ "user_id": {
374
+ "name": "user_id",
375
+ "type": "text",
376
+ "primaryKey": false,
377
+ "notNull": true
378
+ },
379
+ "token": {
380
+ "name": "token",
381
+ "type": "text",
382
+ "primaryKey": false,
383
+ "notNull": true
384
+ },
385
+ "user_agent": {
386
+ "name": "user_agent",
387
+ "type": "text",
388
+ "primaryKey": false,
389
+ "notNull": false
390
+ },
391
+ "ip_address": {
392
+ "name": "ip_address",
393
+ "type": "text",
394
+ "primaryKey": false,
395
+ "notNull": false
396
+ },
397
+ "expires_at": {
398
+ "name": "expires_at",
399
+ "type": "timestamp",
400
+ "primaryKey": false,
401
+ "notNull": true
402
+ },
403
+ "created_at": {
404
+ "name": "created_at",
405
+ "type": "timestamp",
406
+ "primaryKey": false,
407
+ "notNull": true,
408
+ "default": "now()"
409
+ }
410
+ },
411
+ "indexes": {
412
+ "sessions_user_idx": {
413
+ "name": "sessions_user_idx",
414
+ "columns": [
415
+ {
416
+ "expression": "user_id",
417
+ "isExpression": false,
418
+ "asc": true,
419
+ "nulls": "last"
420
+ }
421
+ ],
422
+ "isUnique": false,
423
+ "concurrently": false,
424
+ "method": "btree",
425
+ "with": {}
426
+ },
427
+ "sessions_expires_idx": {
428
+ "name": "sessions_expires_idx",
429
+ "columns": [
430
+ {
431
+ "expression": "expires_at",
432
+ "isExpression": false,
433
+ "asc": true,
434
+ "nulls": "last"
435
+ }
436
+ ],
437
+ "isUnique": false,
438
+ "concurrently": false,
439
+ "method": "btree",
440
+ "with": {}
441
+ }
442
+ },
443
+ "foreignKeys": {
444
+ "sessions_user_id_users_id_fk": {
445
+ "name": "sessions_user_id_users_id_fk",
446
+ "tableFrom": "sessions",
447
+ "tableTo": "users",
448
+ "columnsFrom": [
449
+ "user_id"
450
+ ],
451
+ "columnsTo": [
452
+ "id"
453
+ ],
454
+ "onDelete": "cascade",
455
+ "onUpdate": "no action"
456
+ }
457
+ },
458
+ "compositePrimaryKeys": {},
459
+ "uniqueConstraints": {
460
+ "sessions_token_unique": {
461
+ "name": "sessions_token_unique",
462
+ "nullsNotDistinct": false,
463
+ "columns": [
464
+ "token"
465
+ ]
466
+ }
467
+ },
468
+ "policies": {},
469
+ "checkConstraints": {},
470
+ "isRLSEnabled": false
471
+ },
472
+ "public.ssh_keys": {
473
+ "name": "ssh_keys",
474
+ "schema": "",
475
+ "columns": {
476
+ "id": {
477
+ "name": "id",
478
+ "type": "text",
479
+ "primaryKey": true,
480
+ "notNull": true
481
+ },
482
+ "user_id": {
483
+ "name": "user_id",
484
+ "type": "text",
485
+ "primaryKey": false,
486
+ "notNull": true
487
+ },
488
+ "title": {
489
+ "name": "title",
490
+ "type": "text",
491
+ "primaryKey": false,
492
+ "notNull": true
493
+ },
494
+ "fingerprint": {
495
+ "name": "fingerprint",
496
+ "type": "text",
497
+ "primaryKey": false,
498
+ "notNull": true
499
+ },
500
+ "public_key": {
501
+ "name": "public_key",
502
+ "type": "text",
503
+ "primaryKey": false,
504
+ "notNull": true
505
+ },
506
+ "key_type": {
507
+ "name": "key_type",
508
+ "type": "text",
509
+ "primaryKey": false,
510
+ "notNull": true
511
+ },
512
+ "last_used_at": {
513
+ "name": "last_used_at",
514
+ "type": "timestamp",
515
+ "primaryKey": false,
516
+ "notNull": false
517
+ },
518
+ "created_at": {
519
+ "name": "created_at",
520
+ "type": "timestamp",
521
+ "primaryKey": false,
522
+ "notNull": true,
523
+ "default": "now()"
524
+ }
525
+ },
526
+ "indexes": {
527
+ "ssh_keys_user_idx": {
528
+ "name": "ssh_keys_user_idx",
529
+ "columns": [
530
+ {
531
+ "expression": "user_id",
532
+ "isExpression": false,
533
+ "asc": true,
534
+ "nulls": "last"
535
+ }
536
+ ],
537
+ "isUnique": false,
538
+ "concurrently": false,
539
+ "method": "btree",
540
+ "with": {}
541
+ }
542
+ },
543
+ "foreignKeys": {
544
+ "ssh_keys_user_id_users_id_fk": {
545
+ "name": "ssh_keys_user_id_users_id_fk",
546
+ "tableFrom": "ssh_keys",
547
+ "tableTo": "users",
548
+ "columnsFrom": [
549
+ "user_id"
550
+ ],
551
+ "columnsTo": [
552
+ "id"
553
+ ],
554
+ "onDelete": "cascade",
555
+ "onUpdate": "no action"
556
+ }
557
+ },
558
+ "compositePrimaryKeys": {},
559
+ "uniqueConstraints": {
560
+ "ssh_keys_fingerprint_unique": {
561
+ "name": "ssh_keys_fingerprint_unique",
562
+ "nullsNotDistinct": false,
563
+ "columns": [
564
+ "fingerprint"
565
+ ]
566
+ }
567
+ },
568
+ "policies": {},
569
+ "checkConstraints": {},
570
+ "isRLSEnabled": false
571
+ },
572
+ "public.user_followers": {
573
+ "name": "user_followers",
574
+ "schema": "",
575
+ "columns": {
576
+ "follower_id": {
577
+ "name": "follower_id",
578
+ "type": "text",
579
+ "primaryKey": false,
580
+ "notNull": true
581
+ },
582
+ "followee_id": {
583
+ "name": "followee_id",
584
+ "type": "text",
585
+ "primaryKey": false,
586
+ "notNull": true
587
+ },
588
+ "created_at": {
589
+ "name": "created_at",
590
+ "type": "timestamp",
591
+ "primaryKey": false,
592
+ "notNull": true,
593
+ "default": "now()"
594
+ }
595
+ },
596
+ "indexes": {},
597
+ "foreignKeys": {
598
+ "user_followers_follower_id_users_id_fk": {
599
+ "name": "user_followers_follower_id_users_id_fk",
600
+ "tableFrom": "user_followers",
601
+ "tableTo": "users",
602
+ "columnsFrom": [
603
+ "follower_id"
604
+ ],
605
+ "columnsTo": [
606
+ "id"
607
+ ],
608
+ "onDelete": "cascade",
609
+ "onUpdate": "no action"
610
+ },
611
+ "user_followers_followee_id_users_id_fk": {
612
+ "name": "user_followers_followee_id_users_id_fk",
613
+ "tableFrom": "user_followers",
614
+ "tableTo": "users",
615
+ "columnsFrom": [
616
+ "followee_id"
617
+ ],
618
+ "columnsTo": [
619
+ "id"
620
+ ],
621
+ "onDelete": "cascade",
622
+ "onUpdate": "no action"
623
+ }
624
+ },
625
+ "compositePrimaryKeys": {
626
+ "user_followers_follower_id_followee_id_pk": {
627
+ "name": "user_followers_follower_id_followee_id_pk",
628
+ "columns": [
629
+ "follower_id",
630
+ "followee_id"
631
+ ]
632
+ }
633
+ },
634
+ "uniqueConstraints": {},
635
+ "policies": {},
636
+ "checkConstraints": {},
637
+ "isRLSEnabled": false
638
+ },
639
+ "public.users": {
640
+ "name": "users",
641
+ "schema": "",
642
+ "columns": {
643
+ "id": {
644
+ "name": "id",
645
+ "type": "text",
646
+ "primaryKey": true,
647
+ "notNull": true
648
+ },
649
+ "username": {
650
+ "name": "username",
651
+ "type": "text",
652
+ "primaryKey": false,
653
+ "notNull": true
654
+ },
655
+ "email": {
656
+ "name": "email",
657
+ "type": "text",
658
+ "primaryKey": false,
659
+ "notNull": true
660
+ },
661
+ "password_hash": {
662
+ "name": "password_hash",
663
+ "type": "text",
664
+ "primaryKey": false,
665
+ "notNull": false
666
+ },
667
+ "display_name": {
668
+ "name": "display_name",
669
+ "type": "text",
670
+ "primaryKey": false,
671
+ "notNull": false
672
+ },
673
+ "bio": {
674
+ "name": "bio",
675
+ "type": "text",
676
+ "primaryKey": false,
677
+ "notNull": false
678
+ },
679
+ "avatar_url": {
680
+ "name": "avatar_url",
681
+ "type": "text",
682
+ "primaryKey": false,
683
+ "notNull": false
684
+ },
685
+ "location": {
686
+ "name": "location",
687
+ "type": "text",
688
+ "primaryKey": false,
689
+ "notNull": false
690
+ },
691
+ "website": {
692
+ "name": "website",
693
+ "type": "text",
694
+ "primaryKey": false,
695
+ "notNull": false
696
+ },
697
+ "company": {
698
+ "name": "company",
699
+ "type": "text",
700
+ "primaryKey": false,
701
+ "notNull": false
702
+ },
703
+ "is_admin": {
704
+ "name": "is_admin",
705
+ "type": "boolean",
706
+ "primaryKey": false,
707
+ "notNull": false,
708
+ "default": false
709
+ },
710
+ "is_active": {
711
+ "name": "is_active",
712
+ "type": "boolean",
713
+ "primaryKey": false,
714
+ "notNull": false,
715
+ "default": true
716
+ },
717
+ "email_verified": {
718
+ "name": "email_verified",
719
+ "type": "boolean",
720
+ "primaryKey": false,
721
+ "notNull": false,
722
+ "default": false
723
+ },
724
+ "two_factor_enabled": {
725
+ "name": "two_factor_enabled",
726
+ "type": "boolean",
727
+ "primaryKey": false,
728
+ "notNull": false,
729
+ "default": false
730
+ },
731
+ "two_factor_secret": {
732
+ "name": "two_factor_secret",
733
+ "type": "text",
734
+ "primaryKey": false,
735
+ "notNull": false
736
+ },
737
+ "last_login_at": {
738
+ "name": "last_login_at",
739
+ "type": "timestamp",
740
+ "primaryKey": false,
741
+ "notNull": false
742
+ },
743
+ "created_at": {
744
+ "name": "created_at",
745
+ "type": "timestamp",
746
+ "primaryKey": false,
747
+ "notNull": true,
748
+ "default": "now()"
749
+ },
750
+ "updated_at": {
751
+ "name": "updated_at",
752
+ "type": "timestamp",
753
+ "primaryKey": false,
754
+ "notNull": true,
755
+ "default": "now()"
756
+ },
757
+ "ai_config": {
758
+ "name": "ai_config",
759
+ "type": "text",
760
+ "primaryKey": false,
761
+ "notNull": false
762
+ }
763
+ },
764
+ "indexes": {},
765
+ "foreignKeys": {},
766
+ "compositePrimaryKeys": {},
767
+ "uniqueConstraints": {
768
+ "users_username_unique": {
769
+ "name": "users_username_unique",
770
+ "nullsNotDistinct": false,
771
+ "columns": [
772
+ "username"
773
+ ]
774
+ },
775
+ "users_email_unique": {
776
+ "name": "users_email_unique",
777
+ "nullsNotDistinct": false,
778
+ "columns": [
779
+ "email"
780
+ ]
781
+ }
782
+ },
783
+ "policies": {},
784
+ "checkConstraints": {},
785
+ "isRLSEnabled": false
786
+ },
787
+ "public.deploy_keys": {
788
+ "name": "deploy_keys",
789
+ "schema": "",
790
+ "columns": {
791
+ "id": {
792
+ "name": "id",
793
+ "type": "text",
794
+ "primaryKey": true,
795
+ "notNull": true
796
+ },
797
+ "repository_id": {
798
+ "name": "repository_id",
799
+ "type": "text",
800
+ "primaryKey": false,
801
+ "notNull": true
802
+ },
803
+ "title": {
804
+ "name": "title",
805
+ "type": "text",
806
+ "primaryKey": false,
807
+ "notNull": true
808
+ },
809
+ "key": {
810
+ "name": "key",
811
+ "type": "text",
812
+ "primaryKey": false,
813
+ "notNull": true
814
+ },
815
+ "fingerprint": {
816
+ "name": "fingerprint",
817
+ "type": "text",
818
+ "primaryKey": false,
819
+ "notNull": true
820
+ },
821
+ "read_only": {
822
+ "name": "read_only",
823
+ "type": "boolean",
824
+ "primaryKey": false,
825
+ "notNull": true,
826
+ "default": true
827
+ },
828
+ "created_at": {
829
+ "name": "created_at",
830
+ "type": "timestamp",
831
+ "primaryKey": false,
832
+ "notNull": true,
833
+ "default": "now()"
834
+ },
835
+ "last_used_at": {
836
+ "name": "last_used_at",
837
+ "type": "timestamp",
838
+ "primaryKey": false,
839
+ "notNull": false
840
+ }
841
+ },
842
+ "indexes": {
843
+ "deploy_keys_repository_id_idx": {
844
+ "name": "deploy_keys_repository_id_idx",
845
+ "columns": [
846
+ {
847
+ "expression": "repository_id",
848
+ "isExpression": false,
849
+ "asc": true,
850
+ "nulls": "last"
851
+ }
852
+ ],
853
+ "isUnique": false,
854
+ "concurrently": false,
855
+ "method": "btree",
856
+ "with": {}
857
+ }
858
+ },
859
+ "foreignKeys": {
860
+ "deploy_keys_repository_id_repositories_id_fk": {
861
+ "name": "deploy_keys_repository_id_repositories_id_fk",
862
+ "tableFrom": "deploy_keys",
863
+ "tableTo": "repositories",
864
+ "columnsFrom": [
865
+ "repository_id"
866
+ ],
867
+ "columnsTo": [
868
+ "id"
869
+ ],
870
+ "onDelete": "cascade",
871
+ "onUpdate": "no action"
872
+ }
873
+ },
874
+ "compositePrimaryKeys": {},
875
+ "uniqueConstraints": {},
876
+ "policies": {},
877
+ "checkConstraints": {},
878
+ "isRLSEnabled": false
879
+ },
880
+ "public.branches": {
881
+ "name": "branches",
882
+ "schema": "",
883
+ "columns": {
884
+ "id": {
885
+ "name": "id",
886
+ "type": "text",
887
+ "primaryKey": true,
888
+ "notNull": true
889
+ },
890
+ "repository_id": {
891
+ "name": "repository_id",
892
+ "type": "text",
893
+ "primaryKey": false,
894
+ "notNull": true
895
+ },
896
+ "name": {
897
+ "name": "name",
898
+ "type": "text",
899
+ "primaryKey": false,
900
+ "notNull": true
901
+ },
902
+ "commit_sha": {
903
+ "name": "commit_sha",
904
+ "type": "text",
905
+ "primaryKey": false,
906
+ "notNull": true
907
+ },
908
+ "is_protected": {
909
+ "name": "is_protected",
910
+ "type": "boolean",
911
+ "primaryKey": false,
912
+ "notNull": false,
913
+ "default": false
914
+ },
915
+ "is_default": {
916
+ "name": "is_default",
917
+ "type": "boolean",
918
+ "primaryKey": false,
919
+ "notNull": false,
920
+ "default": false
921
+ },
922
+ "protection_rules": {
923
+ "name": "protection_rules",
924
+ "type": "text",
925
+ "primaryKey": false,
926
+ "notNull": false
927
+ },
928
+ "created_at": {
929
+ "name": "created_at",
930
+ "type": "timestamp",
931
+ "primaryKey": false,
932
+ "notNull": true,
933
+ "default": "now()"
934
+ },
935
+ "updated_at": {
936
+ "name": "updated_at",
937
+ "type": "timestamp",
938
+ "primaryKey": false,
939
+ "notNull": true,
940
+ "default": "now()"
941
+ }
942
+ },
943
+ "indexes": {
944
+ "branches_repo_name_idx": {
945
+ "name": "branches_repo_name_idx",
946
+ "columns": [
947
+ {
948
+ "expression": "repository_id",
949
+ "isExpression": false,
950
+ "asc": true,
951
+ "nulls": "last"
952
+ },
953
+ {
954
+ "expression": "name",
955
+ "isExpression": false,
956
+ "asc": true,
957
+ "nulls": "last"
958
+ }
959
+ ],
960
+ "isUnique": true,
961
+ "concurrently": false,
962
+ "method": "btree",
963
+ "with": {}
964
+ }
965
+ },
966
+ "foreignKeys": {
967
+ "branches_repository_id_repositories_id_fk": {
968
+ "name": "branches_repository_id_repositories_id_fk",
969
+ "tableFrom": "branches",
970
+ "tableTo": "repositories",
971
+ "columnsFrom": [
972
+ "repository_id"
973
+ ],
974
+ "columnsTo": [
975
+ "id"
976
+ ],
977
+ "onDelete": "cascade",
978
+ "onUpdate": "no action"
979
+ }
980
+ },
981
+ "compositePrimaryKeys": {},
982
+ "uniqueConstraints": {},
983
+ "policies": {},
984
+ "checkConstraints": {},
985
+ "isRLSEnabled": false
986
+ },
987
+ "public.commits": {
988
+ "name": "commits",
989
+ "schema": "",
990
+ "columns": {
991
+ "id": {
992
+ "name": "id",
993
+ "type": "text",
994
+ "primaryKey": true,
995
+ "notNull": true
996
+ },
997
+ "repository_id": {
998
+ "name": "repository_id",
999
+ "type": "text",
1000
+ "primaryKey": false,
1001
+ "notNull": true
1002
+ },
1003
+ "sha": {
1004
+ "name": "sha",
1005
+ "type": "text",
1006
+ "primaryKey": false,
1007
+ "notNull": true
1008
+ },
1009
+ "message": {
1010
+ "name": "message",
1011
+ "type": "text",
1012
+ "primaryKey": false,
1013
+ "notNull": true
1014
+ },
1015
+ "author_name": {
1016
+ "name": "author_name",
1017
+ "type": "text",
1018
+ "primaryKey": false,
1019
+ "notNull": true
1020
+ },
1021
+ "author_email": {
1022
+ "name": "author_email",
1023
+ "type": "text",
1024
+ "primaryKey": false,
1025
+ "notNull": true
1026
+ },
1027
+ "author_date": {
1028
+ "name": "author_date",
1029
+ "type": "timestamp",
1030
+ "primaryKey": false,
1031
+ "notNull": true
1032
+ },
1033
+ "committer_name": {
1034
+ "name": "committer_name",
1035
+ "type": "text",
1036
+ "primaryKey": false,
1037
+ "notNull": true
1038
+ },
1039
+ "committer_email": {
1040
+ "name": "committer_email",
1041
+ "type": "text",
1042
+ "primaryKey": false,
1043
+ "notNull": true
1044
+ },
1045
+ "committer_date": {
1046
+ "name": "committer_date",
1047
+ "type": "timestamp",
1048
+ "primaryKey": false,
1049
+ "notNull": true
1050
+ },
1051
+ "parent_shas": {
1052
+ "name": "parent_shas",
1053
+ "type": "text",
1054
+ "primaryKey": false,
1055
+ "notNull": false
1056
+ },
1057
+ "tree_sha": {
1058
+ "name": "tree_sha",
1059
+ "type": "text",
1060
+ "primaryKey": false,
1061
+ "notNull": false
1062
+ },
1063
+ "user_id": {
1064
+ "name": "user_id",
1065
+ "type": "text",
1066
+ "primaryKey": false,
1067
+ "notNull": false
1068
+ },
1069
+ "stats": {
1070
+ "name": "stats",
1071
+ "type": "text",
1072
+ "primaryKey": false,
1073
+ "notNull": false
1074
+ },
1075
+ "signature": {
1076
+ "name": "signature",
1077
+ "type": "text",
1078
+ "primaryKey": false,
1079
+ "notNull": false
1080
+ },
1081
+ "is_verified": {
1082
+ "name": "is_verified",
1083
+ "type": "boolean",
1084
+ "primaryKey": false,
1085
+ "notNull": false,
1086
+ "default": false
1087
+ },
1088
+ "created_at": {
1089
+ "name": "created_at",
1090
+ "type": "timestamp",
1091
+ "primaryKey": false,
1092
+ "notNull": true,
1093
+ "default": "now()"
1094
+ }
1095
+ },
1096
+ "indexes": {
1097
+ "commits_repo_sha_idx": {
1098
+ "name": "commits_repo_sha_idx",
1099
+ "columns": [
1100
+ {
1101
+ "expression": "repository_id",
1102
+ "isExpression": false,
1103
+ "asc": true,
1104
+ "nulls": "last"
1105
+ },
1106
+ {
1107
+ "expression": "sha",
1108
+ "isExpression": false,
1109
+ "asc": true,
1110
+ "nulls": "last"
1111
+ }
1112
+ ],
1113
+ "isUnique": true,
1114
+ "concurrently": false,
1115
+ "method": "btree",
1116
+ "with": {}
1117
+ },
1118
+ "commits_repo_idx": {
1119
+ "name": "commits_repo_idx",
1120
+ "columns": [
1121
+ {
1122
+ "expression": "repository_id",
1123
+ "isExpression": false,
1124
+ "asc": true,
1125
+ "nulls": "last"
1126
+ }
1127
+ ],
1128
+ "isUnique": false,
1129
+ "concurrently": false,
1130
+ "method": "btree",
1131
+ "with": {}
1132
+ }
1133
+ },
1134
+ "foreignKeys": {
1135
+ "commits_repository_id_repositories_id_fk": {
1136
+ "name": "commits_repository_id_repositories_id_fk",
1137
+ "tableFrom": "commits",
1138
+ "tableTo": "repositories",
1139
+ "columnsFrom": [
1140
+ "repository_id"
1141
+ ],
1142
+ "columnsTo": [
1143
+ "id"
1144
+ ],
1145
+ "onDelete": "cascade",
1146
+ "onUpdate": "no action"
1147
+ },
1148
+ "commits_user_id_users_id_fk": {
1149
+ "name": "commits_user_id_users_id_fk",
1150
+ "tableFrom": "commits",
1151
+ "tableTo": "users",
1152
+ "columnsFrom": [
1153
+ "user_id"
1154
+ ],
1155
+ "columnsTo": [
1156
+ "id"
1157
+ ],
1158
+ "onDelete": "no action",
1159
+ "onUpdate": "no action"
1160
+ }
1161
+ },
1162
+ "compositePrimaryKeys": {},
1163
+ "uniqueConstraints": {},
1164
+ "policies": {},
1165
+ "checkConstraints": {},
1166
+ "isRLSEnabled": false
1167
+ },
1168
+ "public.releases": {
1169
+ "name": "releases",
1170
+ "schema": "",
1171
+ "columns": {
1172
+ "id": {
1173
+ "name": "id",
1174
+ "type": "text",
1175
+ "primaryKey": true,
1176
+ "notNull": true
1177
+ },
1178
+ "repository_id": {
1179
+ "name": "repository_id",
1180
+ "type": "text",
1181
+ "primaryKey": false,
1182
+ "notNull": true
1183
+ },
1184
+ "tag_id": {
1185
+ "name": "tag_id",
1186
+ "type": "text",
1187
+ "primaryKey": false,
1188
+ "notNull": false
1189
+ },
1190
+ "name": {
1191
+ "name": "name",
1192
+ "type": "text",
1193
+ "primaryKey": false,
1194
+ "notNull": true
1195
+ },
1196
+ "body": {
1197
+ "name": "body",
1198
+ "type": "text",
1199
+ "primaryKey": false,
1200
+ "notNull": false
1201
+ },
1202
+ "is_draft": {
1203
+ "name": "is_draft",
1204
+ "type": "boolean",
1205
+ "primaryKey": false,
1206
+ "notNull": false,
1207
+ "default": false
1208
+ },
1209
+ "is_prerelease": {
1210
+ "name": "is_prerelease",
1211
+ "type": "boolean",
1212
+ "primaryKey": false,
1213
+ "notNull": false,
1214
+ "default": false
1215
+ },
1216
+ "author_id": {
1217
+ "name": "author_id",
1218
+ "type": "text",
1219
+ "primaryKey": false,
1220
+ "notNull": false
1221
+ },
1222
+ "assets": {
1223
+ "name": "assets",
1224
+ "type": "text",
1225
+ "primaryKey": false,
1226
+ "notNull": false
1227
+ },
1228
+ "download_count": {
1229
+ "name": "download_count",
1230
+ "type": "integer",
1231
+ "primaryKey": false,
1232
+ "notNull": false,
1233
+ "default": 0
1234
+ },
1235
+ "published_at": {
1236
+ "name": "published_at",
1237
+ "type": "timestamp",
1238
+ "primaryKey": false,
1239
+ "notNull": false
1240
+ },
1241
+ "created_at": {
1242
+ "name": "created_at",
1243
+ "type": "timestamp",
1244
+ "primaryKey": false,
1245
+ "notNull": true,
1246
+ "default": "now()"
1247
+ },
1248
+ "updated_at": {
1249
+ "name": "updated_at",
1250
+ "type": "timestamp",
1251
+ "primaryKey": false,
1252
+ "notNull": true,
1253
+ "default": "now()"
1254
+ }
1255
+ },
1256
+ "indexes": {},
1257
+ "foreignKeys": {
1258
+ "releases_repository_id_repositories_id_fk": {
1259
+ "name": "releases_repository_id_repositories_id_fk",
1260
+ "tableFrom": "releases",
1261
+ "tableTo": "repositories",
1262
+ "columnsFrom": [
1263
+ "repository_id"
1264
+ ],
1265
+ "columnsTo": [
1266
+ "id"
1267
+ ],
1268
+ "onDelete": "cascade",
1269
+ "onUpdate": "no action"
1270
+ },
1271
+ "releases_tag_id_tags_id_fk": {
1272
+ "name": "releases_tag_id_tags_id_fk",
1273
+ "tableFrom": "releases",
1274
+ "tableTo": "tags",
1275
+ "columnsFrom": [
1276
+ "tag_id"
1277
+ ],
1278
+ "columnsTo": [
1279
+ "id"
1280
+ ],
1281
+ "onDelete": "no action",
1282
+ "onUpdate": "no action"
1283
+ },
1284
+ "releases_author_id_users_id_fk": {
1285
+ "name": "releases_author_id_users_id_fk",
1286
+ "tableFrom": "releases",
1287
+ "tableTo": "users",
1288
+ "columnsFrom": [
1289
+ "author_id"
1290
+ ],
1291
+ "columnsTo": [
1292
+ "id"
1293
+ ],
1294
+ "onDelete": "no action",
1295
+ "onUpdate": "no action"
1296
+ }
1297
+ },
1298
+ "compositePrimaryKeys": {},
1299
+ "uniqueConstraints": {},
1300
+ "policies": {},
1301
+ "checkConstraints": {},
1302
+ "isRLSEnabled": false
1303
+ },
1304
+ "public.repositories": {
1305
+ "name": "repositories",
1306
+ "schema": "",
1307
+ "columns": {
1308
+ "id": {
1309
+ "name": "id",
1310
+ "type": "text",
1311
+ "primaryKey": true,
1312
+ "notNull": true
1313
+ },
1314
+ "name": {
1315
+ "name": "name",
1316
+ "type": "text",
1317
+ "primaryKey": false,
1318
+ "notNull": true
1319
+ },
1320
+ "slug": {
1321
+ "name": "slug",
1322
+ "type": "text",
1323
+ "primaryKey": false,
1324
+ "notNull": true
1325
+ },
1326
+ "description": {
1327
+ "name": "description",
1328
+ "type": "text",
1329
+ "primaryKey": false,
1330
+ "notNull": false
1331
+ },
1332
+ "owner_id": {
1333
+ "name": "owner_id",
1334
+ "type": "text",
1335
+ "primaryKey": false,
1336
+ "notNull": true
1337
+ },
1338
+ "owner_type": {
1339
+ "name": "owner_type",
1340
+ "type": "text",
1341
+ "primaryKey": false,
1342
+ "notNull": true,
1343
+ "default": "'user'"
1344
+ },
1345
+ "visibility": {
1346
+ "name": "visibility",
1347
+ "type": "text",
1348
+ "primaryKey": false,
1349
+ "notNull": true,
1350
+ "default": "'public'"
1351
+ },
1352
+ "default_branch": {
1353
+ "name": "default_branch",
1354
+ "type": "text",
1355
+ "primaryKey": false,
1356
+ "notNull": true,
1357
+ "default": "'main'"
1358
+ },
1359
+ "disk_path": {
1360
+ "name": "disk_path",
1361
+ "type": "text",
1362
+ "primaryKey": false,
1363
+ "notNull": true
1364
+ },
1365
+ "ssh_clone_url": {
1366
+ "name": "ssh_clone_url",
1367
+ "type": "text",
1368
+ "primaryKey": false,
1369
+ "notNull": false
1370
+ },
1371
+ "http_clone_url": {
1372
+ "name": "http_clone_url",
1373
+ "type": "text",
1374
+ "primaryKey": false,
1375
+ "notNull": false
1376
+ },
1377
+ "website": {
1378
+ "name": "website",
1379
+ "type": "text",
1380
+ "primaryKey": false,
1381
+ "notNull": false
1382
+ },
1383
+ "star_count": {
1384
+ "name": "star_count",
1385
+ "type": "integer",
1386
+ "primaryKey": false,
1387
+ "notNull": true,
1388
+ "default": 0
1389
+ },
1390
+ "fork_count": {
1391
+ "name": "fork_count",
1392
+ "type": "integer",
1393
+ "primaryKey": false,
1394
+ "notNull": true,
1395
+ "default": 0
1396
+ },
1397
+ "watch_count": {
1398
+ "name": "watch_count",
1399
+ "type": "integer",
1400
+ "primaryKey": false,
1401
+ "notNull": true,
1402
+ "default": 0
1403
+ },
1404
+ "open_issue_count": {
1405
+ "name": "open_issue_count",
1406
+ "type": "integer",
1407
+ "primaryKey": false,
1408
+ "notNull": true,
1409
+ "default": 0
1410
+ },
1411
+ "open_pr_count": {
1412
+ "name": "open_pr_count",
1413
+ "type": "integer",
1414
+ "primaryKey": false,
1415
+ "notNull": true,
1416
+ "default": 0
1417
+ },
1418
+ "size": {
1419
+ "name": "size",
1420
+ "type": "integer",
1421
+ "primaryKey": false,
1422
+ "notNull": true,
1423
+ "default": 0
1424
+ },
1425
+ "is_fork": {
1426
+ "name": "is_fork",
1427
+ "type": "boolean",
1428
+ "primaryKey": false,
1429
+ "notNull": false,
1430
+ "default": false
1431
+ },
1432
+ "forked_from_id": {
1433
+ "name": "forked_from_id",
1434
+ "type": "text",
1435
+ "primaryKey": false,
1436
+ "notNull": false
1437
+ },
1438
+ "is_archived": {
1439
+ "name": "is_archived",
1440
+ "type": "boolean",
1441
+ "primaryKey": false,
1442
+ "notNull": false,
1443
+ "default": false
1444
+ },
1445
+ "is_template": {
1446
+ "name": "is_template",
1447
+ "type": "boolean",
1448
+ "primaryKey": false,
1449
+ "notNull": false,
1450
+ "default": false
1451
+ },
1452
+ "is_mirror": {
1453
+ "name": "is_mirror",
1454
+ "type": "boolean",
1455
+ "primaryKey": false,
1456
+ "notNull": false,
1457
+ "default": false
1458
+ },
1459
+ "mirror_url": {
1460
+ "name": "mirror_url",
1461
+ "type": "text",
1462
+ "primaryKey": false,
1463
+ "notNull": false
1464
+ },
1465
+ "mirror_token": {
1466
+ "name": "mirror_token",
1467
+ "type": "text",
1468
+ "primaryKey": false,
1469
+ "notNull": false
1470
+ },
1471
+ "last_mirror_sync_at": {
1472
+ "name": "last_mirror_sync_at",
1473
+ "type": "timestamp",
1474
+ "primaryKey": false,
1475
+ "notNull": false
1476
+ },
1477
+ "mirror_sync_status": {
1478
+ "name": "mirror_sync_status",
1479
+ "type": "text",
1480
+ "primaryKey": false,
1481
+ "notNull": false
1482
+ },
1483
+ "has_issues": {
1484
+ "name": "has_issues",
1485
+ "type": "boolean",
1486
+ "primaryKey": false,
1487
+ "notNull": false,
1488
+ "default": true
1489
+ },
1490
+ "has_wiki": {
1491
+ "name": "has_wiki",
1492
+ "type": "boolean",
1493
+ "primaryKey": false,
1494
+ "notNull": false,
1495
+ "default": true
1496
+ },
1497
+ "has_actions": {
1498
+ "name": "has_actions",
1499
+ "type": "boolean",
1500
+ "primaryKey": false,
1501
+ "notNull": false,
1502
+ "default": true
1503
+ },
1504
+ "allow_forking": {
1505
+ "name": "allow_forking",
1506
+ "type": "boolean",
1507
+ "primaryKey": false,
1508
+ "notNull": false,
1509
+ "default": true
1510
+ },
1511
+ "license_type": {
1512
+ "name": "license_type",
1513
+ "type": "text",
1514
+ "primaryKey": false,
1515
+ "notNull": false
1516
+ },
1517
+ "topics": {
1518
+ "name": "topics",
1519
+ "type": "text",
1520
+ "primaryKey": false,
1521
+ "notNull": false
1522
+ },
1523
+ "language": {
1524
+ "name": "language",
1525
+ "type": "text",
1526
+ "primaryKey": false,
1527
+ "notNull": false
1528
+ },
1529
+ "languages": {
1530
+ "name": "languages",
1531
+ "type": "text",
1532
+ "primaryKey": false,
1533
+ "notNull": false
1534
+ },
1535
+ "last_activity_at": {
1536
+ "name": "last_activity_at",
1537
+ "type": "timestamp",
1538
+ "primaryKey": false,
1539
+ "notNull": false
1540
+ },
1541
+ "created_at": {
1542
+ "name": "created_at",
1543
+ "type": "timestamp",
1544
+ "primaryKey": false,
1545
+ "notNull": true,
1546
+ "default": "now()"
1547
+ },
1548
+ "updated_at": {
1549
+ "name": "updated_at",
1550
+ "type": "timestamp",
1551
+ "primaryKey": false,
1552
+ "notNull": true,
1553
+ "default": "now()"
1554
+ }
1555
+ },
1556
+ "indexes": {
1557
+ "repositories_owner_name_idx": {
1558
+ "name": "repositories_owner_name_idx",
1559
+ "columns": [
1560
+ {
1561
+ "expression": "owner_id",
1562
+ "isExpression": false,
1563
+ "asc": true,
1564
+ "nulls": "last"
1565
+ },
1566
+ {
1567
+ "expression": "name",
1568
+ "isExpression": false,
1569
+ "asc": true,
1570
+ "nulls": "last"
1571
+ }
1572
+ ],
1573
+ "isUnique": true,
1574
+ "concurrently": false,
1575
+ "method": "btree",
1576
+ "with": {}
1577
+ },
1578
+ "repositories_owner_slug_idx": {
1579
+ "name": "repositories_owner_slug_idx",
1580
+ "columns": [
1581
+ {
1582
+ "expression": "owner_id",
1583
+ "isExpression": false,
1584
+ "asc": true,
1585
+ "nulls": "last"
1586
+ },
1587
+ {
1588
+ "expression": "slug",
1589
+ "isExpression": false,
1590
+ "asc": true,
1591
+ "nulls": "last"
1592
+ }
1593
+ ],
1594
+ "isUnique": true,
1595
+ "concurrently": false,
1596
+ "method": "btree",
1597
+ "with": {}
1598
+ },
1599
+ "repositories_owner_idx": {
1600
+ "name": "repositories_owner_idx",
1601
+ "columns": [
1602
+ {
1603
+ "expression": "owner_id",
1604
+ "isExpression": false,
1605
+ "asc": true,
1606
+ "nulls": "last"
1607
+ }
1608
+ ],
1609
+ "isUnique": false,
1610
+ "concurrently": false,
1611
+ "method": "btree",
1612
+ "with": {}
1613
+ }
1614
+ },
1615
+ "foreignKeys": {
1616
+ "repositories_owner_id_users_id_fk": {
1617
+ "name": "repositories_owner_id_users_id_fk",
1618
+ "tableFrom": "repositories",
1619
+ "tableTo": "users",
1620
+ "columnsFrom": [
1621
+ "owner_id"
1622
+ ],
1623
+ "columnsTo": [
1624
+ "id"
1625
+ ],
1626
+ "onDelete": "cascade",
1627
+ "onUpdate": "no action"
1628
+ },
1629
+ "repositories_forked_from_id_repositories_id_fk": {
1630
+ "name": "repositories_forked_from_id_repositories_id_fk",
1631
+ "tableFrom": "repositories",
1632
+ "tableTo": "repositories",
1633
+ "columnsFrom": [
1634
+ "forked_from_id"
1635
+ ],
1636
+ "columnsTo": [
1637
+ "id"
1638
+ ],
1639
+ "onDelete": "no action",
1640
+ "onUpdate": "no action"
1641
+ }
1642
+ },
1643
+ "compositePrimaryKeys": {},
1644
+ "uniqueConstraints": {},
1645
+ "policies": {},
1646
+ "checkConstraints": {},
1647
+ "isRLSEnabled": false
1648
+ },
1649
+ "public.repository_collaborators": {
1650
+ "name": "repository_collaborators",
1651
+ "schema": "",
1652
+ "columns": {
1653
+ "id": {
1654
+ "name": "id",
1655
+ "type": "text",
1656
+ "primaryKey": true,
1657
+ "notNull": true
1658
+ },
1659
+ "repository_id": {
1660
+ "name": "repository_id",
1661
+ "type": "text",
1662
+ "primaryKey": false,
1663
+ "notNull": true
1664
+ },
1665
+ "user_id": {
1666
+ "name": "user_id",
1667
+ "type": "text",
1668
+ "primaryKey": false,
1669
+ "notNull": true
1670
+ },
1671
+ "role": {
1672
+ "name": "role",
1673
+ "type": "text",
1674
+ "primaryKey": false,
1675
+ "notNull": true,
1676
+ "default": "'developer'"
1677
+ },
1678
+ "added_by_id": {
1679
+ "name": "added_by_id",
1680
+ "type": "text",
1681
+ "primaryKey": false,
1682
+ "notNull": false
1683
+ },
1684
+ "created_at": {
1685
+ "name": "created_at",
1686
+ "type": "timestamp",
1687
+ "primaryKey": false,
1688
+ "notNull": true,
1689
+ "default": "now()"
1690
+ }
1691
+ },
1692
+ "indexes": {
1693
+ "collaborators_repo_user_idx": {
1694
+ "name": "collaborators_repo_user_idx",
1695
+ "columns": [
1696
+ {
1697
+ "expression": "repository_id",
1698
+ "isExpression": false,
1699
+ "asc": true,
1700
+ "nulls": "last"
1701
+ },
1702
+ {
1703
+ "expression": "user_id",
1704
+ "isExpression": false,
1705
+ "asc": true,
1706
+ "nulls": "last"
1707
+ }
1708
+ ],
1709
+ "isUnique": true,
1710
+ "concurrently": false,
1711
+ "method": "btree",
1712
+ "with": {}
1713
+ }
1714
+ },
1715
+ "foreignKeys": {
1716
+ "repository_collaborators_repository_id_repositories_id_fk": {
1717
+ "name": "repository_collaborators_repository_id_repositories_id_fk",
1718
+ "tableFrom": "repository_collaborators",
1719
+ "tableTo": "repositories",
1720
+ "columnsFrom": [
1721
+ "repository_id"
1722
+ ],
1723
+ "columnsTo": [
1724
+ "id"
1725
+ ],
1726
+ "onDelete": "cascade",
1727
+ "onUpdate": "no action"
1728
+ },
1729
+ "repository_collaborators_user_id_users_id_fk": {
1730
+ "name": "repository_collaborators_user_id_users_id_fk",
1731
+ "tableFrom": "repository_collaborators",
1732
+ "tableTo": "users",
1733
+ "columnsFrom": [
1734
+ "user_id"
1735
+ ],
1736
+ "columnsTo": [
1737
+ "id"
1738
+ ],
1739
+ "onDelete": "cascade",
1740
+ "onUpdate": "no action"
1741
+ },
1742
+ "repository_collaborators_added_by_id_users_id_fk": {
1743
+ "name": "repository_collaborators_added_by_id_users_id_fk",
1744
+ "tableFrom": "repository_collaborators",
1745
+ "tableTo": "users",
1746
+ "columnsFrom": [
1747
+ "added_by_id"
1748
+ ],
1749
+ "columnsTo": [
1750
+ "id"
1751
+ ],
1752
+ "onDelete": "no action",
1753
+ "onUpdate": "no action"
1754
+ }
1755
+ },
1756
+ "compositePrimaryKeys": {},
1757
+ "uniqueConstraints": {},
1758
+ "policies": {},
1759
+ "checkConstraints": {},
1760
+ "isRLSEnabled": false
1761
+ },
1762
+ "public.repository_stars": {
1763
+ "name": "repository_stars",
1764
+ "schema": "",
1765
+ "columns": {
1766
+ "id": {
1767
+ "name": "id",
1768
+ "type": "text",
1769
+ "primaryKey": true,
1770
+ "notNull": true
1771
+ },
1772
+ "repository_id": {
1773
+ "name": "repository_id",
1774
+ "type": "text",
1775
+ "primaryKey": false,
1776
+ "notNull": true
1777
+ },
1778
+ "user_id": {
1779
+ "name": "user_id",
1780
+ "type": "text",
1781
+ "primaryKey": false,
1782
+ "notNull": true
1783
+ },
1784
+ "created_at": {
1785
+ "name": "created_at",
1786
+ "type": "timestamp",
1787
+ "primaryKey": false,
1788
+ "notNull": true,
1789
+ "default": "now()"
1790
+ }
1791
+ },
1792
+ "indexes": {
1793
+ "stars_repo_user_idx": {
1794
+ "name": "stars_repo_user_idx",
1795
+ "columns": [
1796
+ {
1797
+ "expression": "repository_id",
1798
+ "isExpression": false,
1799
+ "asc": true,
1800
+ "nulls": "last"
1801
+ },
1802
+ {
1803
+ "expression": "user_id",
1804
+ "isExpression": false,
1805
+ "asc": true,
1806
+ "nulls": "last"
1807
+ }
1808
+ ],
1809
+ "isUnique": true,
1810
+ "concurrently": false,
1811
+ "method": "btree",
1812
+ "with": {}
1813
+ }
1814
+ },
1815
+ "foreignKeys": {
1816
+ "repository_stars_repository_id_repositories_id_fk": {
1817
+ "name": "repository_stars_repository_id_repositories_id_fk",
1818
+ "tableFrom": "repository_stars",
1819
+ "tableTo": "repositories",
1820
+ "columnsFrom": [
1821
+ "repository_id"
1822
+ ],
1823
+ "columnsTo": [
1824
+ "id"
1825
+ ],
1826
+ "onDelete": "cascade",
1827
+ "onUpdate": "no action"
1828
+ },
1829
+ "repository_stars_user_id_users_id_fk": {
1830
+ "name": "repository_stars_user_id_users_id_fk",
1831
+ "tableFrom": "repository_stars",
1832
+ "tableTo": "users",
1833
+ "columnsFrom": [
1834
+ "user_id"
1835
+ ],
1836
+ "columnsTo": [
1837
+ "id"
1838
+ ],
1839
+ "onDelete": "cascade",
1840
+ "onUpdate": "no action"
1841
+ }
1842
+ },
1843
+ "compositePrimaryKeys": {},
1844
+ "uniqueConstraints": {},
1845
+ "policies": {},
1846
+ "checkConstraints": {},
1847
+ "isRLSEnabled": false
1848
+ },
1849
+ "public.repository_watchers": {
1850
+ "name": "repository_watchers",
1851
+ "schema": "",
1852
+ "columns": {
1853
+ "id": {
1854
+ "name": "id",
1855
+ "type": "text",
1856
+ "primaryKey": true,
1857
+ "notNull": true
1858
+ },
1859
+ "repository_id": {
1860
+ "name": "repository_id",
1861
+ "type": "text",
1862
+ "primaryKey": false,
1863
+ "notNull": true
1864
+ },
1865
+ "user_id": {
1866
+ "name": "user_id",
1867
+ "type": "text",
1868
+ "primaryKey": false,
1869
+ "notNull": true
1870
+ },
1871
+ "watch_level": {
1872
+ "name": "watch_level",
1873
+ "type": "text",
1874
+ "primaryKey": false,
1875
+ "notNull": true,
1876
+ "default": "'watching'"
1877
+ },
1878
+ "created_at": {
1879
+ "name": "created_at",
1880
+ "type": "timestamp",
1881
+ "primaryKey": false,
1882
+ "notNull": true,
1883
+ "default": "now()"
1884
+ }
1885
+ },
1886
+ "indexes": {
1887
+ "watchers_repo_user_idx": {
1888
+ "name": "watchers_repo_user_idx",
1889
+ "columns": [
1890
+ {
1891
+ "expression": "repository_id",
1892
+ "isExpression": false,
1893
+ "asc": true,
1894
+ "nulls": "last"
1895
+ },
1896
+ {
1897
+ "expression": "user_id",
1898
+ "isExpression": false,
1899
+ "asc": true,
1900
+ "nulls": "last"
1901
+ }
1902
+ ],
1903
+ "isUnique": true,
1904
+ "concurrently": false,
1905
+ "method": "btree",
1906
+ "with": {}
1907
+ }
1908
+ },
1909
+ "foreignKeys": {
1910
+ "repository_watchers_repository_id_repositories_id_fk": {
1911
+ "name": "repository_watchers_repository_id_repositories_id_fk",
1912
+ "tableFrom": "repository_watchers",
1913
+ "tableTo": "repositories",
1914
+ "columnsFrom": [
1915
+ "repository_id"
1916
+ ],
1917
+ "columnsTo": [
1918
+ "id"
1919
+ ],
1920
+ "onDelete": "cascade",
1921
+ "onUpdate": "no action"
1922
+ },
1923
+ "repository_watchers_user_id_users_id_fk": {
1924
+ "name": "repository_watchers_user_id_users_id_fk",
1925
+ "tableFrom": "repository_watchers",
1926
+ "tableTo": "users",
1927
+ "columnsFrom": [
1928
+ "user_id"
1929
+ ],
1930
+ "columnsTo": [
1931
+ "id"
1932
+ ],
1933
+ "onDelete": "cascade",
1934
+ "onUpdate": "no action"
1935
+ }
1936
+ },
1937
+ "compositePrimaryKeys": {},
1938
+ "uniqueConstraints": {},
1939
+ "policies": {},
1940
+ "checkConstraints": {},
1941
+ "isRLSEnabled": false
1942
+ },
1943
+ "public.tags": {
1944
+ "name": "tags",
1945
+ "schema": "",
1946
+ "columns": {
1947
+ "id": {
1948
+ "name": "id",
1949
+ "type": "text",
1950
+ "primaryKey": true,
1951
+ "notNull": true
1952
+ },
1953
+ "repository_id": {
1954
+ "name": "repository_id",
1955
+ "type": "text",
1956
+ "primaryKey": false,
1957
+ "notNull": true
1958
+ },
1959
+ "name": {
1960
+ "name": "name",
1961
+ "type": "text",
1962
+ "primaryKey": false,
1963
+ "notNull": true
1964
+ },
1965
+ "commit_sha": {
1966
+ "name": "commit_sha",
1967
+ "type": "text",
1968
+ "primaryKey": false,
1969
+ "notNull": true
1970
+ },
1971
+ "message": {
1972
+ "name": "message",
1973
+ "type": "text",
1974
+ "primaryKey": false,
1975
+ "notNull": false
1976
+ },
1977
+ "tagger_name": {
1978
+ "name": "tagger_name",
1979
+ "type": "text",
1980
+ "primaryKey": false,
1981
+ "notNull": false
1982
+ },
1983
+ "tagger_email": {
1984
+ "name": "tagger_email",
1985
+ "type": "text",
1986
+ "primaryKey": false,
1987
+ "notNull": false
1988
+ },
1989
+ "tagged_at": {
1990
+ "name": "tagged_at",
1991
+ "type": "timestamp",
1992
+ "primaryKey": false,
1993
+ "notNull": false
1994
+ },
1995
+ "is_release": {
1996
+ "name": "is_release",
1997
+ "type": "boolean",
1998
+ "primaryKey": false,
1999
+ "notNull": false,
2000
+ "default": false
2001
+ },
2002
+ "release_id": {
2003
+ "name": "release_id",
2004
+ "type": "text",
2005
+ "primaryKey": false,
2006
+ "notNull": false
2007
+ },
2008
+ "created_at": {
2009
+ "name": "created_at",
2010
+ "type": "timestamp",
2011
+ "primaryKey": false,
2012
+ "notNull": true,
2013
+ "default": "now()"
2014
+ }
2015
+ },
2016
+ "indexes": {
2017
+ "tags_repo_name_idx": {
2018
+ "name": "tags_repo_name_idx",
2019
+ "columns": [
2020
+ {
2021
+ "expression": "repository_id",
2022
+ "isExpression": false,
2023
+ "asc": true,
2024
+ "nulls": "last"
2025
+ },
2026
+ {
2027
+ "expression": "name",
2028
+ "isExpression": false,
2029
+ "asc": true,
2030
+ "nulls": "last"
2031
+ }
2032
+ ],
2033
+ "isUnique": true,
2034
+ "concurrently": false,
2035
+ "method": "btree",
2036
+ "with": {}
2037
+ }
2038
+ },
2039
+ "foreignKeys": {
2040
+ "tags_repository_id_repositories_id_fk": {
2041
+ "name": "tags_repository_id_repositories_id_fk",
2042
+ "tableFrom": "tags",
2043
+ "tableTo": "repositories",
2044
+ "columnsFrom": [
2045
+ "repository_id"
2046
+ ],
2047
+ "columnsTo": [
2048
+ "id"
2049
+ ],
2050
+ "onDelete": "cascade",
2051
+ "onUpdate": "no action"
2052
+ }
2053
+ },
2054
+ "compositePrimaryKeys": {},
2055
+ "uniqueConstraints": {},
2056
+ "policies": {},
2057
+ "checkConstraints": {},
2058
+ "isRLSEnabled": false
2059
+ },
2060
+ "public.issue_assignees": {
2061
+ "name": "issue_assignees",
2062
+ "schema": "",
2063
+ "columns": {
2064
+ "id": {
2065
+ "name": "id",
2066
+ "type": "text",
2067
+ "primaryKey": true,
2068
+ "notNull": true
2069
+ },
2070
+ "issue_id": {
2071
+ "name": "issue_id",
2072
+ "type": "text",
2073
+ "primaryKey": false,
2074
+ "notNull": true
2075
+ },
2076
+ "user_id": {
2077
+ "name": "user_id",
2078
+ "type": "text",
2079
+ "primaryKey": false,
2080
+ "notNull": true
2081
+ },
2082
+ "assigned_at": {
2083
+ "name": "assigned_at",
2084
+ "type": "timestamp",
2085
+ "primaryKey": false,
2086
+ "notNull": true,
2087
+ "default": "now()"
2088
+ }
2089
+ },
2090
+ "indexes": {},
2091
+ "foreignKeys": {
2092
+ "issue_assignees_issue_id_issues_id_fk": {
2093
+ "name": "issue_assignees_issue_id_issues_id_fk",
2094
+ "tableFrom": "issue_assignees",
2095
+ "tableTo": "issues",
2096
+ "columnsFrom": [
2097
+ "issue_id"
2098
+ ],
2099
+ "columnsTo": [
2100
+ "id"
2101
+ ],
2102
+ "onDelete": "cascade",
2103
+ "onUpdate": "no action"
2104
+ },
2105
+ "issue_assignees_user_id_users_id_fk": {
2106
+ "name": "issue_assignees_user_id_users_id_fk",
2107
+ "tableFrom": "issue_assignees",
2108
+ "tableTo": "users",
2109
+ "columnsFrom": [
2110
+ "user_id"
2111
+ ],
2112
+ "columnsTo": [
2113
+ "id"
2114
+ ],
2115
+ "onDelete": "cascade",
2116
+ "onUpdate": "no action"
2117
+ }
2118
+ },
2119
+ "compositePrimaryKeys": {},
2120
+ "uniqueConstraints": {},
2121
+ "policies": {},
2122
+ "checkConstraints": {},
2123
+ "isRLSEnabled": false
2124
+ },
2125
+ "public.issue_comments": {
2126
+ "name": "issue_comments",
2127
+ "schema": "",
2128
+ "columns": {
2129
+ "id": {
2130
+ "name": "id",
2131
+ "type": "text",
2132
+ "primaryKey": true,
2133
+ "notNull": true
2134
+ },
2135
+ "issue_id": {
2136
+ "name": "issue_id",
2137
+ "type": "text",
2138
+ "primaryKey": false,
2139
+ "notNull": true
2140
+ },
2141
+ "author_id": {
2142
+ "name": "author_id",
2143
+ "type": "text",
2144
+ "primaryKey": false,
2145
+ "notNull": true
2146
+ },
2147
+ "body": {
2148
+ "name": "body",
2149
+ "type": "text",
2150
+ "primaryKey": false,
2151
+ "notNull": true
2152
+ },
2153
+ "reactions": {
2154
+ "name": "reactions",
2155
+ "type": "text",
2156
+ "primaryKey": false,
2157
+ "notNull": false
2158
+ },
2159
+ "is_edited": {
2160
+ "name": "is_edited",
2161
+ "type": "boolean",
2162
+ "primaryKey": false,
2163
+ "notNull": false,
2164
+ "default": false
2165
+ },
2166
+ "edited_at": {
2167
+ "name": "edited_at",
2168
+ "type": "timestamp",
2169
+ "primaryKey": false,
2170
+ "notNull": false
2171
+ },
2172
+ "created_at": {
2173
+ "name": "created_at",
2174
+ "type": "timestamp",
2175
+ "primaryKey": false,
2176
+ "notNull": true,
2177
+ "default": "now()"
2178
+ },
2179
+ "updated_at": {
2180
+ "name": "updated_at",
2181
+ "type": "timestamp",
2182
+ "primaryKey": false,
2183
+ "notNull": true,
2184
+ "default": "now()"
2185
+ }
2186
+ },
2187
+ "indexes": {
2188
+ "issue_comments_issue_idx": {
2189
+ "name": "issue_comments_issue_idx",
2190
+ "columns": [
2191
+ {
2192
+ "expression": "issue_id",
2193
+ "isExpression": false,
2194
+ "asc": true,
2195
+ "nulls": "last"
2196
+ }
2197
+ ],
2198
+ "isUnique": false,
2199
+ "concurrently": false,
2200
+ "method": "btree",
2201
+ "with": {}
2202
+ }
2203
+ },
2204
+ "foreignKeys": {
2205
+ "issue_comments_issue_id_issues_id_fk": {
2206
+ "name": "issue_comments_issue_id_issues_id_fk",
2207
+ "tableFrom": "issue_comments",
2208
+ "tableTo": "issues",
2209
+ "columnsFrom": [
2210
+ "issue_id"
2211
+ ],
2212
+ "columnsTo": [
2213
+ "id"
2214
+ ],
2215
+ "onDelete": "cascade",
2216
+ "onUpdate": "no action"
2217
+ },
2218
+ "issue_comments_author_id_users_id_fk": {
2219
+ "name": "issue_comments_author_id_users_id_fk",
2220
+ "tableFrom": "issue_comments",
2221
+ "tableTo": "users",
2222
+ "columnsFrom": [
2223
+ "author_id"
2224
+ ],
2225
+ "columnsTo": [
2226
+ "id"
2227
+ ],
2228
+ "onDelete": "no action",
2229
+ "onUpdate": "no action"
2230
+ }
2231
+ },
2232
+ "compositePrimaryKeys": {},
2233
+ "uniqueConstraints": {},
2234
+ "policies": {},
2235
+ "checkConstraints": {},
2236
+ "isRLSEnabled": false
2237
+ },
2238
+ "public.issue_labels": {
2239
+ "name": "issue_labels",
2240
+ "schema": "",
2241
+ "columns": {
2242
+ "id": {
2243
+ "name": "id",
2244
+ "type": "text",
2245
+ "primaryKey": true,
2246
+ "notNull": true
2247
+ },
2248
+ "issue_id": {
2249
+ "name": "issue_id",
2250
+ "type": "text",
2251
+ "primaryKey": false,
2252
+ "notNull": true
2253
+ },
2254
+ "label_id": {
2255
+ "name": "label_id",
2256
+ "type": "text",
2257
+ "primaryKey": false,
2258
+ "notNull": true
2259
+ }
2260
+ },
2261
+ "indexes": {},
2262
+ "foreignKeys": {
2263
+ "issue_labels_issue_id_issues_id_fk": {
2264
+ "name": "issue_labels_issue_id_issues_id_fk",
2265
+ "tableFrom": "issue_labels",
2266
+ "tableTo": "issues",
2267
+ "columnsFrom": [
2268
+ "issue_id"
2269
+ ],
2270
+ "columnsTo": [
2271
+ "id"
2272
+ ],
2273
+ "onDelete": "cascade",
2274
+ "onUpdate": "no action"
2275
+ },
2276
+ "issue_labels_label_id_labels_id_fk": {
2277
+ "name": "issue_labels_label_id_labels_id_fk",
2278
+ "tableFrom": "issue_labels",
2279
+ "tableTo": "labels",
2280
+ "columnsFrom": [
2281
+ "label_id"
2282
+ ],
2283
+ "columnsTo": [
2284
+ "id"
2285
+ ],
2286
+ "onDelete": "cascade",
2287
+ "onUpdate": "no action"
2288
+ }
2289
+ },
2290
+ "compositePrimaryKeys": {},
2291
+ "uniqueConstraints": {},
2292
+ "policies": {},
2293
+ "checkConstraints": {},
2294
+ "isRLSEnabled": false
2295
+ },
2296
+ "public.issue_subscribers": {
2297
+ "name": "issue_subscribers",
2298
+ "schema": "",
2299
+ "columns": {
2300
+ "id": {
2301
+ "name": "id",
2302
+ "type": "text",
2303
+ "primaryKey": true,
2304
+ "notNull": true
2305
+ },
2306
+ "issue_id": {
2307
+ "name": "issue_id",
2308
+ "type": "text",
2309
+ "primaryKey": false,
2310
+ "notNull": true
2311
+ },
2312
+ "user_id": {
2313
+ "name": "user_id",
2314
+ "type": "text",
2315
+ "primaryKey": false,
2316
+ "notNull": true
2317
+ },
2318
+ "subscribed_at": {
2319
+ "name": "subscribed_at",
2320
+ "type": "timestamp",
2321
+ "primaryKey": false,
2322
+ "notNull": true,
2323
+ "default": "now()"
2324
+ }
2325
+ },
2326
+ "indexes": {},
2327
+ "foreignKeys": {
2328
+ "issue_subscribers_issue_id_issues_id_fk": {
2329
+ "name": "issue_subscribers_issue_id_issues_id_fk",
2330
+ "tableFrom": "issue_subscribers",
2331
+ "tableTo": "issues",
2332
+ "columnsFrom": [
2333
+ "issue_id"
2334
+ ],
2335
+ "columnsTo": [
2336
+ "id"
2337
+ ],
2338
+ "onDelete": "cascade",
2339
+ "onUpdate": "no action"
2340
+ },
2341
+ "issue_subscribers_user_id_users_id_fk": {
2342
+ "name": "issue_subscribers_user_id_users_id_fk",
2343
+ "tableFrom": "issue_subscribers",
2344
+ "tableTo": "users",
2345
+ "columnsFrom": [
2346
+ "user_id"
2347
+ ],
2348
+ "columnsTo": [
2349
+ "id"
2350
+ ],
2351
+ "onDelete": "cascade",
2352
+ "onUpdate": "no action"
2353
+ }
2354
+ },
2355
+ "compositePrimaryKeys": {},
2356
+ "uniqueConstraints": {},
2357
+ "policies": {},
2358
+ "checkConstraints": {},
2359
+ "isRLSEnabled": false
2360
+ },
2361
+ "public.issues": {
2362
+ "name": "issues",
2363
+ "schema": "",
2364
+ "columns": {
2365
+ "id": {
2366
+ "name": "id",
2367
+ "type": "text",
2368
+ "primaryKey": true,
2369
+ "notNull": true
2370
+ },
2371
+ "repository_id": {
2372
+ "name": "repository_id",
2373
+ "type": "text",
2374
+ "primaryKey": false,
2375
+ "notNull": true
2376
+ },
2377
+ "number": {
2378
+ "name": "number",
2379
+ "type": "integer",
2380
+ "primaryKey": false,
2381
+ "notNull": true
2382
+ },
2383
+ "title": {
2384
+ "name": "title",
2385
+ "type": "text",
2386
+ "primaryKey": false,
2387
+ "notNull": true
2388
+ },
2389
+ "body": {
2390
+ "name": "body",
2391
+ "type": "text",
2392
+ "primaryKey": false,
2393
+ "notNull": false
2394
+ },
2395
+ "state": {
2396
+ "name": "state",
2397
+ "type": "text",
2398
+ "primaryKey": false,
2399
+ "notNull": true,
2400
+ "default": "'open'"
2401
+ },
2402
+ "status_id": {
2403
+ "name": "status_id",
2404
+ "type": "text",
2405
+ "primaryKey": false,
2406
+ "notNull": false
2407
+ },
2408
+ "type": {
2409
+ "name": "type",
2410
+ "type": "text",
2411
+ "primaryKey": false,
2412
+ "notNull": true,
2413
+ "default": "'issue'"
2414
+ },
2415
+ "parent_id": {
2416
+ "name": "parent_id",
2417
+ "type": "text",
2418
+ "primaryKey": false,
2419
+ "notNull": false
2420
+ },
2421
+ "author_id": {
2422
+ "name": "author_id",
2423
+ "type": "text",
2424
+ "primaryKey": false,
2425
+ "notNull": true
2426
+ },
2427
+ "assignee_id": {
2428
+ "name": "assignee_id",
2429
+ "type": "text",
2430
+ "primaryKey": false,
2431
+ "notNull": false
2432
+ },
2433
+ "milestone_id": {
2434
+ "name": "milestone_id",
2435
+ "type": "text",
2436
+ "primaryKey": false,
2437
+ "notNull": false
2438
+ },
2439
+ "is_pinned": {
2440
+ "name": "is_pinned",
2441
+ "type": "boolean",
2442
+ "primaryKey": false,
2443
+ "notNull": false,
2444
+ "default": false
2445
+ },
2446
+ "is_locked": {
2447
+ "name": "is_locked",
2448
+ "type": "boolean",
2449
+ "primaryKey": false,
2450
+ "notNull": false,
2451
+ "default": false
2452
+ },
2453
+ "lock_reason": {
2454
+ "name": "lock_reason",
2455
+ "type": "text",
2456
+ "primaryKey": false,
2457
+ "notNull": false
2458
+ },
2459
+ "comment_count": {
2460
+ "name": "comment_count",
2461
+ "type": "integer",
2462
+ "primaryKey": false,
2463
+ "notNull": false,
2464
+ "default": 0
2465
+ },
2466
+ "reactions": {
2467
+ "name": "reactions",
2468
+ "type": "text",
2469
+ "primaryKey": false,
2470
+ "notNull": false
2471
+ },
2472
+ "closed_at": {
2473
+ "name": "closed_at",
2474
+ "type": "timestamp",
2475
+ "primaryKey": false,
2476
+ "notNull": false
2477
+ },
2478
+ "closed_by_id": {
2479
+ "name": "closed_by_id",
2480
+ "type": "text",
2481
+ "primaryKey": false,
2482
+ "notNull": false
2483
+ },
2484
+ "created_at": {
2485
+ "name": "created_at",
2486
+ "type": "timestamp",
2487
+ "primaryKey": false,
2488
+ "notNull": true,
2489
+ "default": "now()"
2490
+ },
2491
+ "updated_at": {
2492
+ "name": "updated_at",
2493
+ "type": "timestamp",
2494
+ "primaryKey": false,
2495
+ "notNull": true,
2496
+ "default": "now()"
2497
+ }
2498
+ },
2499
+ "indexes": {
2500
+ "issues_repo_number_idx": {
2501
+ "name": "issues_repo_number_idx",
2502
+ "columns": [
2503
+ {
2504
+ "expression": "repository_id",
2505
+ "isExpression": false,
2506
+ "asc": true,
2507
+ "nulls": "last"
2508
+ },
2509
+ {
2510
+ "expression": "number",
2511
+ "isExpression": false,
2512
+ "asc": true,
2513
+ "nulls": "last"
2514
+ }
2515
+ ],
2516
+ "isUnique": true,
2517
+ "concurrently": false,
2518
+ "method": "btree",
2519
+ "with": {}
2520
+ },
2521
+ "issues_repo_state_idx": {
2522
+ "name": "issues_repo_state_idx",
2523
+ "columns": [
2524
+ {
2525
+ "expression": "repository_id",
2526
+ "isExpression": false,
2527
+ "asc": true,
2528
+ "nulls": "last"
2529
+ },
2530
+ {
2531
+ "expression": "state",
2532
+ "isExpression": false,
2533
+ "asc": true,
2534
+ "nulls": "last"
2535
+ }
2536
+ ],
2537
+ "isUnique": false,
2538
+ "concurrently": false,
2539
+ "method": "btree",
2540
+ "with": {}
2541
+ },
2542
+ "issues_author_idx": {
2543
+ "name": "issues_author_idx",
2544
+ "columns": [
2545
+ {
2546
+ "expression": "author_id",
2547
+ "isExpression": false,
2548
+ "asc": true,
2549
+ "nulls": "last"
2550
+ }
2551
+ ],
2552
+ "isUnique": false,
2553
+ "concurrently": false,
2554
+ "method": "btree",
2555
+ "with": {}
2556
+ },
2557
+ "issues_assignee_idx": {
2558
+ "name": "issues_assignee_idx",
2559
+ "columns": [
2560
+ {
2561
+ "expression": "assignee_id",
2562
+ "isExpression": false,
2563
+ "asc": true,
2564
+ "nulls": "last"
2565
+ }
2566
+ ],
2567
+ "isUnique": false,
2568
+ "concurrently": false,
2569
+ "method": "btree",
2570
+ "with": {}
2571
+ }
2572
+ },
2573
+ "foreignKeys": {
2574
+ "issues_repository_id_repositories_id_fk": {
2575
+ "name": "issues_repository_id_repositories_id_fk",
2576
+ "tableFrom": "issues",
2577
+ "tableTo": "repositories",
2578
+ "columnsFrom": [
2579
+ "repository_id"
2580
+ ],
2581
+ "columnsTo": [
2582
+ "id"
2583
+ ],
2584
+ "onDelete": "cascade",
2585
+ "onUpdate": "no action"
2586
+ },
2587
+ "issues_status_id_issue_statuses_id_fk": {
2588
+ "name": "issues_status_id_issue_statuses_id_fk",
2589
+ "tableFrom": "issues",
2590
+ "tableTo": "issue_statuses",
2591
+ "columnsFrom": [
2592
+ "status_id"
2593
+ ],
2594
+ "columnsTo": [
2595
+ "id"
2596
+ ],
2597
+ "onDelete": "no action",
2598
+ "onUpdate": "no action"
2599
+ },
2600
+ "issues_author_id_users_id_fk": {
2601
+ "name": "issues_author_id_users_id_fk",
2602
+ "tableFrom": "issues",
2603
+ "tableTo": "users",
2604
+ "columnsFrom": [
2605
+ "author_id"
2606
+ ],
2607
+ "columnsTo": [
2608
+ "id"
2609
+ ],
2610
+ "onDelete": "no action",
2611
+ "onUpdate": "no action"
2612
+ },
2613
+ "issues_assignee_id_users_id_fk": {
2614
+ "name": "issues_assignee_id_users_id_fk",
2615
+ "tableFrom": "issues",
2616
+ "tableTo": "users",
2617
+ "columnsFrom": [
2618
+ "assignee_id"
2619
+ ],
2620
+ "columnsTo": [
2621
+ "id"
2622
+ ],
2623
+ "onDelete": "no action",
2624
+ "onUpdate": "no action"
2625
+ },
2626
+ "issues_closed_by_id_users_id_fk": {
2627
+ "name": "issues_closed_by_id_users_id_fk",
2628
+ "tableFrom": "issues",
2629
+ "tableTo": "users",
2630
+ "columnsFrom": [
2631
+ "closed_by_id"
2632
+ ],
2633
+ "columnsTo": [
2634
+ "id"
2635
+ ],
2636
+ "onDelete": "no action",
2637
+ "onUpdate": "no action"
2638
+ }
2639
+ },
2640
+ "compositePrimaryKeys": {},
2641
+ "uniqueConstraints": {},
2642
+ "policies": {},
2643
+ "checkConstraints": {},
2644
+ "isRLSEnabled": false
2645
+ },
2646
+ "public.labels": {
2647
+ "name": "labels",
2648
+ "schema": "",
2649
+ "columns": {
2650
+ "id": {
2651
+ "name": "id",
2652
+ "type": "text",
2653
+ "primaryKey": true,
2654
+ "notNull": true
2655
+ },
2656
+ "repository_id": {
2657
+ "name": "repository_id",
2658
+ "type": "text",
2659
+ "primaryKey": false,
2660
+ "notNull": true
2661
+ },
2662
+ "name": {
2663
+ "name": "name",
2664
+ "type": "text",
2665
+ "primaryKey": false,
2666
+ "notNull": true
2667
+ },
2668
+ "color": {
2669
+ "name": "color",
2670
+ "type": "text",
2671
+ "primaryKey": false,
2672
+ "notNull": true,
2673
+ "default": "'#6b7280'"
2674
+ },
2675
+ "description": {
2676
+ "name": "description",
2677
+ "type": "text",
2678
+ "primaryKey": false,
2679
+ "notNull": false
2680
+ },
2681
+ "created_at": {
2682
+ "name": "created_at",
2683
+ "type": "timestamp",
2684
+ "primaryKey": false,
2685
+ "notNull": true,
2686
+ "default": "now()"
2687
+ }
2688
+ },
2689
+ "indexes": {
2690
+ "labels_repo_name_idx": {
2691
+ "name": "labels_repo_name_idx",
2692
+ "columns": [
2693
+ {
2694
+ "expression": "repository_id",
2695
+ "isExpression": false,
2696
+ "asc": true,
2697
+ "nulls": "last"
2698
+ },
2699
+ {
2700
+ "expression": "name",
2701
+ "isExpression": false,
2702
+ "asc": true,
2703
+ "nulls": "last"
2704
+ }
2705
+ ],
2706
+ "isUnique": true,
2707
+ "concurrently": false,
2708
+ "method": "btree",
2709
+ "with": {}
2710
+ }
2711
+ },
2712
+ "foreignKeys": {
2713
+ "labels_repository_id_repositories_id_fk": {
2714
+ "name": "labels_repository_id_repositories_id_fk",
2715
+ "tableFrom": "labels",
2716
+ "tableTo": "repositories",
2717
+ "columnsFrom": [
2718
+ "repository_id"
2719
+ ],
2720
+ "columnsTo": [
2721
+ "id"
2722
+ ],
2723
+ "onDelete": "cascade",
2724
+ "onUpdate": "no action"
2725
+ }
2726
+ },
2727
+ "compositePrimaryKeys": {},
2728
+ "uniqueConstraints": {},
2729
+ "policies": {},
2730
+ "checkConstraints": {},
2731
+ "isRLSEnabled": false
2732
+ },
2733
+ "public.milestones": {
2734
+ "name": "milestones",
2735
+ "schema": "",
2736
+ "columns": {
2737
+ "id": {
2738
+ "name": "id",
2739
+ "type": "text",
2740
+ "primaryKey": true,
2741
+ "notNull": true
2742
+ },
2743
+ "repository_id": {
2744
+ "name": "repository_id",
2745
+ "type": "text",
2746
+ "primaryKey": false,
2747
+ "notNull": true
2748
+ },
2749
+ "title": {
2750
+ "name": "title",
2751
+ "type": "text",
2752
+ "primaryKey": false,
2753
+ "notNull": true
2754
+ },
2755
+ "description": {
2756
+ "name": "description",
2757
+ "type": "text",
2758
+ "primaryKey": false,
2759
+ "notNull": false
2760
+ },
2761
+ "state": {
2762
+ "name": "state",
2763
+ "type": "text",
2764
+ "primaryKey": false,
2765
+ "notNull": true,
2766
+ "default": "'open'"
2767
+ },
2768
+ "due_date": {
2769
+ "name": "due_date",
2770
+ "type": "timestamp",
2771
+ "primaryKey": false,
2772
+ "notNull": false
2773
+ },
2774
+ "open_issue_count": {
2775
+ "name": "open_issue_count",
2776
+ "type": "integer",
2777
+ "primaryKey": false,
2778
+ "notNull": false,
2779
+ "default": 0
2780
+ },
2781
+ "closed_issue_count": {
2782
+ "name": "closed_issue_count",
2783
+ "type": "integer",
2784
+ "primaryKey": false,
2785
+ "notNull": false,
2786
+ "default": 0
2787
+ },
2788
+ "closed_at": {
2789
+ "name": "closed_at",
2790
+ "type": "timestamp",
2791
+ "primaryKey": false,
2792
+ "notNull": false
2793
+ },
2794
+ "created_at": {
2795
+ "name": "created_at",
2796
+ "type": "timestamp",
2797
+ "primaryKey": false,
2798
+ "notNull": true,
2799
+ "default": "now()"
2800
+ },
2801
+ "updated_at": {
2802
+ "name": "updated_at",
2803
+ "type": "timestamp",
2804
+ "primaryKey": false,
2805
+ "notNull": true,
2806
+ "default": "now()"
2807
+ }
2808
+ },
2809
+ "indexes": {},
2810
+ "foreignKeys": {
2811
+ "milestones_repository_id_repositories_id_fk": {
2812
+ "name": "milestones_repository_id_repositories_id_fk",
2813
+ "tableFrom": "milestones",
2814
+ "tableTo": "repositories",
2815
+ "columnsFrom": [
2816
+ "repository_id"
2817
+ ],
2818
+ "columnsTo": [
2819
+ "id"
2820
+ ],
2821
+ "onDelete": "cascade",
2822
+ "onUpdate": "no action"
2823
+ }
2824
+ },
2825
+ "compositePrimaryKeys": {},
2826
+ "uniqueConstraints": {},
2827
+ "policies": {},
2828
+ "checkConstraints": {},
2829
+ "isRLSEnabled": false
2830
+ },
2831
+ "public.pull_request_assignees": {
2832
+ "name": "pull_request_assignees",
2833
+ "schema": "",
2834
+ "columns": {
2835
+ "id": {
2836
+ "name": "id",
2837
+ "type": "text",
2838
+ "primaryKey": true,
2839
+ "notNull": true
2840
+ },
2841
+ "pull_request_id": {
2842
+ "name": "pull_request_id",
2843
+ "type": "text",
2844
+ "primaryKey": false,
2845
+ "notNull": true
2846
+ },
2847
+ "user_id": {
2848
+ "name": "user_id",
2849
+ "type": "text",
2850
+ "primaryKey": false,
2851
+ "notNull": true
2852
+ },
2853
+ "assigned_at": {
2854
+ "name": "assigned_at",
2855
+ "type": "timestamp",
2856
+ "primaryKey": false,
2857
+ "notNull": true,
2858
+ "default": "now()"
2859
+ }
2860
+ },
2861
+ "indexes": {},
2862
+ "foreignKeys": {
2863
+ "pull_request_assignees_pull_request_id_pull_requests_id_fk": {
2864
+ "name": "pull_request_assignees_pull_request_id_pull_requests_id_fk",
2865
+ "tableFrom": "pull_request_assignees",
2866
+ "tableTo": "pull_requests",
2867
+ "columnsFrom": [
2868
+ "pull_request_id"
2869
+ ],
2870
+ "columnsTo": [
2871
+ "id"
2872
+ ],
2873
+ "onDelete": "cascade",
2874
+ "onUpdate": "no action"
2875
+ },
2876
+ "pull_request_assignees_user_id_users_id_fk": {
2877
+ "name": "pull_request_assignees_user_id_users_id_fk",
2878
+ "tableFrom": "pull_request_assignees",
2879
+ "tableTo": "users",
2880
+ "columnsFrom": [
2881
+ "user_id"
2882
+ ],
2883
+ "columnsTo": [
2884
+ "id"
2885
+ ],
2886
+ "onDelete": "cascade",
2887
+ "onUpdate": "no action"
2888
+ }
2889
+ },
2890
+ "compositePrimaryKeys": {},
2891
+ "uniqueConstraints": {},
2892
+ "policies": {},
2893
+ "checkConstraints": {},
2894
+ "isRLSEnabled": false
2895
+ },
2896
+ "public.pull_request_checks": {
2897
+ "name": "pull_request_checks",
2898
+ "schema": "",
2899
+ "columns": {
2900
+ "id": {
2901
+ "name": "id",
2902
+ "type": "text",
2903
+ "primaryKey": true,
2904
+ "notNull": true
2905
+ },
2906
+ "pull_request_id": {
2907
+ "name": "pull_request_id",
2908
+ "type": "text",
2909
+ "primaryKey": false,
2910
+ "notNull": true
2911
+ },
2912
+ "name": {
2913
+ "name": "name",
2914
+ "type": "text",
2915
+ "primaryKey": false,
2916
+ "notNull": true
2917
+ },
2918
+ "status": {
2919
+ "name": "status",
2920
+ "type": "text",
2921
+ "primaryKey": false,
2922
+ "notNull": true
2923
+ },
2924
+ "conclusion": {
2925
+ "name": "conclusion",
2926
+ "type": "text",
2927
+ "primaryKey": false,
2928
+ "notNull": false
2929
+ },
2930
+ "head_sha": {
2931
+ "name": "head_sha",
2932
+ "type": "text",
2933
+ "primaryKey": false,
2934
+ "notNull": true
2935
+ },
2936
+ "external_id": {
2937
+ "name": "external_id",
2938
+ "type": "text",
2939
+ "primaryKey": false,
2940
+ "notNull": false
2941
+ },
2942
+ "details_url": {
2943
+ "name": "details_url",
2944
+ "type": "text",
2945
+ "primaryKey": false,
2946
+ "notNull": false
2947
+ },
2948
+ "output": {
2949
+ "name": "output",
2950
+ "type": "text",
2951
+ "primaryKey": false,
2952
+ "notNull": false
2953
+ },
2954
+ "started_at": {
2955
+ "name": "started_at",
2956
+ "type": "timestamp",
2957
+ "primaryKey": false,
2958
+ "notNull": false
2959
+ },
2960
+ "completed_at": {
2961
+ "name": "completed_at",
2962
+ "type": "timestamp",
2963
+ "primaryKey": false,
2964
+ "notNull": false
2965
+ },
2966
+ "created_at": {
2967
+ "name": "created_at",
2968
+ "type": "timestamp",
2969
+ "primaryKey": false,
2970
+ "notNull": true,
2971
+ "default": "now()"
2972
+ }
2973
+ },
2974
+ "indexes": {
2975
+ "pr_checks_pr_idx": {
2976
+ "name": "pr_checks_pr_idx",
2977
+ "columns": [
2978
+ {
2979
+ "expression": "pull_request_id",
2980
+ "isExpression": false,
2981
+ "asc": true,
2982
+ "nulls": "last"
2983
+ }
2984
+ ],
2985
+ "isUnique": false,
2986
+ "concurrently": false,
2987
+ "method": "btree",
2988
+ "with": {}
2989
+ },
2990
+ "pr_checks_head_sha_idx": {
2991
+ "name": "pr_checks_head_sha_idx",
2992
+ "columns": [
2993
+ {
2994
+ "expression": "head_sha",
2995
+ "isExpression": false,
2996
+ "asc": true,
2997
+ "nulls": "last"
2998
+ }
2999
+ ],
3000
+ "isUnique": false,
3001
+ "concurrently": false,
3002
+ "method": "btree",
3003
+ "with": {}
3004
+ }
3005
+ },
3006
+ "foreignKeys": {
3007
+ "pull_request_checks_pull_request_id_pull_requests_id_fk": {
3008
+ "name": "pull_request_checks_pull_request_id_pull_requests_id_fk",
3009
+ "tableFrom": "pull_request_checks",
3010
+ "tableTo": "pull_requests",
3011
+ "columnsFrom": [
3012
+ "pull_request_id"
3013
+ ],
3014
+ "columnsTo": [
3015
+ "id"
3016
+ ],
3017
+ "onDelete": "cascade",
3018
+ "onUpdate": "no action"
3019
+ }
3020
+ },
3021
+ "compositePrimaryKeys": {},
3022
+ "uniqueConstraints": {},
3023
+ "policies": {},
3024
+ "checkConstraints": {},
3025
+ "isRLSEnabled": false
3026
+ },
3027
+ "public.pull_request_comments": {
3028
+ "name": "pull_request_comments",
3029
+ "schema": "",
3030
+ "columns": {
3031
+ "id": {
3032
+ "name": "id",
3033
+ "type": "text",
3034
+ "primaryKey": true,
3035
+ "notNull": true
3036
+ },
3037
+ "pull_request_id": {
3038
+ "name": "pull_request_id",
3039
+ "type": "text",
3040
+ "primaryKey": false,
3041
+ "notNull": true
3042
+ },
3043
+ "review_id": {
3044
+ "name": "review_id",
3045
+ "type": "text",
3046
+ "primaryKey": false,
3047
+ "notNull": false
3048
+ },
3049
+ "author_id": {
3050
+ "name": "author_id",
3051
+ "type": "text",
3052
+ "primaryKey": false,
3053
+ "notNull": true
3054
+ },
3055
+ "body": {
3056
+ "name": "body",
3057
+ "type": "text",
3058
+ "primaryKey": false,
3059
+ "notNull": true
3060
+ },
3061
+ "path": {
3062
+ "name": "path",
3063
+ "type": "text",
3064
+ "primaryKey": false,
3065
+ "notNull": false
3066
+ },
3067
+ "line": {
3068
+ "name": "line",
3069
+ "type": "integer",
3070
+ "primaryKey": false,
3071
+ "notNull": false
3072
+ },
3073
+ "side": {
3074
+ "name": "side",
3075
+ "type": "text",
3076
+ "primaryKey": false,
3077
+ "notNull": false
3078
+ },
3079
+ "start_line": {
3080
+ "name": "start_line",
3081
+ "type": "integer",
3082
+ "primaryKey": false,
3083
+ "notNull": false
3084
+ },
3085
+ "start_side": {
3086
+ "name": "start_side",
3087
+ "type": "text",
3088
+ "primaryKey": false,
3089
+ "notNull": false
3090
+ },
3091
+ "commit_sha": {
3092
+ "name": "commit_sha",
3093
+ "type": "text",
3094
+ "primaryKey": false,
3095
+ "notNull": false
3096
+ },
3097
+ "original_commit_sha": {
3098
+ "name": "original_commit_sha",
3099
+ "type": "text",
3100
+ "primaryKey": false,
3101
+ "notNull": false
3102
+ },
3103
+ "original_line": {
3104
+ "name": "original_line",
3105
+ "type": "integer",
3106
+ "primaryKey": false,
3107
+ "notNull": false
3108
+ },
3109
+ "in_reply_to_id": {
3110
+ "name": "in_reply_to_id",
3111
+ "type": "text",
3112
+ "primaryKey": false,
3113
+ "notNull": false
3114
+ },
3115
+ "reactions": {
3116
+ "name": "reactions",
3117
+ "type": "text",
3118
+ "primaryKey": false,
3119
+ "notNull": false
3120
+ },
3121
+ "is_resolved": {
3122
+ "name": "is_resolved",
3123
+ "type": "boolean",
3124
+ "primaryKey": false,
3125
+ "notNull": false,
3126
+ "default": false
3127
+ },
3128
+ "resolved_by_id": {
3129
+ "name": "resolved_by_id",
3130
+ "type": "text",
3131
+ "primaryKey": false,
3132
+ "notNull": false
3133
+ },
3134
+ "resolved_at": {
3135
+ "name": "resolved_at",
3136
+ "type": "timestamp",
3137
+ "primaryKey": false,
3138
+ "notNull": false
3139
+ },
3140
+ "is_edited": {
3141
+ "name": "is_edited",
3142
+ "type": "boolean",
3143
+ "primaryKey": false,
3144
+ "notNull": false,
3145
+ "default": false
3146
+ },
3147
+ "edited_at": {
3148
+ "name": "edited_at",
3149
+ "type": "timestamp",
3150
+ "primaryKey": false,
3151
+ "notNull": false
3152
+ },
3153
+ "suggestion_content": {
3154
+ "name": "suggestion_content",
3155
+ "type": "text",
3156
+ "primaryKey": false,
3157
+ "notNull": false
3158
+ },
3159
+ "suggestion_applied": {
3160
+ "name": "suggestion_applied",
3161
+ "type": "boolean",
3162
+ "primaryKey": false,
3163
+ "notNull": false,
3164
+ "default": false
3165
+ },
3166
+ "suggestion_applied_by_id": {
3167
+ "name": "suggestion_applied_by_id",
3168
+ "type": "text",
3169
+ "primaryKey": false,
3170
+ "notNull": false
3171
+ },
3172
+ "suggestion_applied_at": {
3173
+ "name": "suggestion_applied_at",
3174
+ "type": "timestamp",
3175
+ "primaryKey": false,
3176
+ "notNull": false
3177
+ },
3178
+ "suggestion_commit_sha": {
3179
+ "name": "suggestion_commit_sha",
3180
+ "type": "text",
3181
+ "primaryKey": false,
3182
+ "notNull": false
3183
+ },
3184
+ "created_at": {
3185
+ "name": "created_at",
3186
+ "type": "timestamp",
3187
+ "primaryKey": false,
3188
+ "notNull": true,
3189
+ "default": "now()"
3190
+ },
3191
+ "updated_at": {
3192
+ "name": "updated_at",
3193
+ "type": "timestamp",
3194
+ "primaryKey": false,
3195
+ "notNull": true,
3196
+ "default": "now()"
3197
+ }
3198
+ },
3199
+ "indexes": {
3200
+ "pr_comments_pr_idx": {
3201
+ "name": "pr_comments_pr_idx",
3202
+ "columns": [
3203
+ {
3204
+ "expression": "pull_request_id",
3205
+ "isExpression": false,
3206
+ "asc": true,
3207
+ "nulls": "last"
3208
+ }
3209
+ ],
3210
+ "isUnique": false,
3211
+ "concurrently": false,
3212
+ "method": "btree",
3213
+ "with": {}
3214
+ }
3215
+ },
3216
+ "foreignKeys": {
3217
+ "pull_request_comments_pull_request_id_pull_requests_id_fk": {
3218
+ "name": "pull_request_comments_pull_request_id_pull_requests_id_fk",
3219
+ "tableFrom": "pull_request_comments",
3220
+ "tableTo": "pull_requests",
3221
+ "columnsFrom": [
3222
+ "pull_request_id"
3223
+ ],
3224
+ "columnsTo": [
3225
+ "id"
3226
+ ],
3227
+ "onDelete": "cascade",
3228
+ "onUpdate": "no action"
3229
+ },
3230
+ "pull_request_comments_review_id_pull_request_reviews_id_fk": {
3231
+ "name": "pull_request_comments_review_id_pull_request_reviews_id_fk",
3232
+ "tableFrom": "pull_request_comments",
3233
+ "tableTo": "pull_request_reviews",
3234
+ "columnsFrom": [
3235
+ "review_id"
3236
+ ],
3237
+ "columnsTo": [
3238
+ "id"
3239
+ ],
3240
+ "onDelete": "no action",
3241
+ "onUpdate": "no action"
3242
+ },
3243
+ "pull_request_comments_author_id_users_id_fk": {
3244
+ "name": "pull_request_comments_author_id_users_id_fk",
3245
+ "tableFrom": "pull_request_comments",
3246
+ "tableTo": "users",
3247
+ "columnsFrom": [
3248
+ "author_id"
3249
+ ],
3250
+ "columnsTo": [
3251
+ "id"
3252
+ ],
3253
+ "onDelete": "no action",
3254
+ "onUpdate": "no action"
3255
+ },
3256
+ "pull_request_comments_in_reply_to_id_pull_request_comments_id_fk": {
3257
+ "name": "pull_request_comments_in_reply_to_id_pull_request_comments_id_fk",
3258
+ "tableFrom": "pull_request_comments",
3259
+ "tableTo": "pull_request_comments",
3260
+ "columnsFrom": [
3261
+ "in_reply_to_id"
3262
+ ],
3263
+ "columnsTo": [
3264
+ "id"
3265
+ ],
3266
+ "onDelete": "no action",
3267
+ "onUpdate": "no action"
3268
+ },
3269
+ "pull_request_comments_resolved_by_id_users_id_fk": {
3270
+ "name": "pull_request_comments_resolved_by_id_users_id_fk",
3271
+ "tableFrom": "pull_request_comments",
3272
+ "tableTo": "users",
3273
+ "columnsFrom": [
3274
+ "resolved_by_id"
3275
+ ],
3276
+ "columnsTo": [
3277
+ "id"
3278
+ ],
3279
+ "onDelete": "no action",
3280
+ "onUpdate": "no action"
3281
+ },
3282
+ "pull_request_comments_suggestion_applied_by_id_users_id_fk": {
3283
+ "name": "pull_request_comments_suggestion_applied_by_id_users_id_fk",
3284
+ "tableFrom": "pull_request_comments",
3285
+ "tableTo": "users",
3286
+ "columnsFrom": [
3287
+ "suggestion_applied_by_id"
3288
+ ],
3289
+ "columnsTo": [
3290
+ "id"
3291
+ ],
3292
+ "onDelete": "no action",
3293
+ "onUpdate": "no action"
3294
+ }
3295
+ },
3296
+ "compositePrimaryKeys": {},
3297
+ "uniqueConstraints": {},
3298
+ "policies": {},
3299
+ "checkConstraints": {},
3300
+ "isRLSEnabled": false
3301
+ },
3302
+ "public.pull_request_labels": {
3303
+ "name": "pull_request_labels",
3304
+ "schema": "",
3305
+ "columns": {
3306
+ "id": {
3307
+ "name": "id",
3308
+ "type": "text",
3309
+ "primaryKey": true,
3310
+ "notNull": true
3311
+ },
3312
+ "pull_request_id": {
3313
+ "name": "pull_request_id",
3314
+ "type": "text",
3315
+ "primaryKey": false,
3316
+ "notNull": true
3317
+ },
3318
+ "label_id": {
3319
+ "name": "label_id",
3320
+ "type": "text",
3321
+ "primaryKey": false,
3322
+ "notNull": true
3323
+ }
3324
+ },
3325
+ "indexes": {},
3326
+ "foreignKeys": {
3327
+ "pull_request_labels_pull_request_id_pull_requests_id_fk": {
3328
+ "name": "pull_request_labels_pull_request_id_pull_requests_id_fk",
3329
+ "tableFrom": "pull_request_labels",
3330
+ "tableTo": "pull_requests",
3331
+ "columnsFrom": [
3332
+ "pull_request_id"
3333
+ ],
3334
+ "columnsTo": [
3335
+ "id"
3336
+ ],
3337
+ "onDelete": "cascade",
3338
+ "onUpdate": "no action"
3339
+ },
3340
+ "pull_request_labels_label_id_labels_id_fk": {
3341
+ "name": "pull_request_labels_label_id_labels_id_fk",
3342
+ "tableFrom": "pull_request_labels",
3343
+ "tableTo": "labels",
3344
+ "columnsFrom": [
3345
+ "label_id"
3346
+ ],
3347
+ "columnsTo": [
3348
+ "id"
3349
+ ],
3350
+ "onDelete": "cascade",
3351
+ "onUpdate": "no action"
3352
+ }
3353
+ },
3354
+ "compositePrimaryKeys": {},
3355
+ "uniqueConstraints": {},
3356
+ "policies": {},
3357
+ "checkConstraints": {},
3358
+ "isRLSEnabled": false
3359
+ },
3360
+ "public.pull_request_reviewers": {
3361
+ "name": "pull_request_reviewers",
3362
+ "schema": "",
3363
+ "columns": {
3364
+ "id": {
3365
+ "name": "id",
3366
+ "type": "text",
3367
+ "primaryKey": true,
3368
+ "notNull": true
3369
+ },
3370
+ "pull_request_id": {
3371
+ "name": "pull_request_id",
3372
+ "type": "text",
3373
+ "primaryKey": false,
3374
+ "notNull": true
3375
+ },
3376
+ "user_id": {
3377
+ "name": "user_id",
3378
+ "type": "text",
3379
+ "primaryKey": false,
3380
+ "notNull": true
3381
+ },
3382
+ "is_required": {
3383
+ "name": "is_required",
3384
+ "type": "boolean",
3385
+ "primaryKey": false,
3386
+ "notNull": false,
3387
+ "default": false
3388
+ },
3389
+ "requested_at": {
3390
+ "name": "requested_at",
3391
+ "type": "timestamp",
3392
+ "primaryKey": false,
3393
+ "notNull": true,
3394
+ "default": "now()"
3395
+ }
3396
+ },
3397
+ "indexes": {
3398
+ "pr_reviewers_pr_idx": {
3399
+ "name": "pr_reviewers_pr_idx",
3400
+ "columns": [
3401
+ {
3402
+ "expression": "pull_request_id",
3403
+ "isExpression": false,
3404
+ "asc": true,
3405
+ "nulls": "last"
3406
+ }
3407
+ ],
3408
+ "isUnique": false,
3409
+ "concurrently": false,
3410
+ "method": "btree",
3411
+ "with": {}
3412
+ }
3413
+ },
3414
+ "foreignKeys": {
3415
+ "pull_request_reviewers_pull_request_id_pull_requests_id_fk": {
3416
+ "name": "pull_request_reviewers_pull_request_id_pull_requests_id_fk",
3417
+ "tableFrom": "pull_request_reviewers",
3418
+ "tableTo": "pull_requests",
3419
+ "columnsFrom": [
3420
+ "pull_request_id"
3421
+ ],
3422
+ "columnsTo": [
3423
+ "id"
3424
+ ],
3425
+ "onDelete": "cascade",
3426
+ "onUpdate": "no action"
3427
+ },
3428
+ "pull_request_reviewers_user_id_users_id_fk": {
3429
+ "name": "pull_request_reviewers_user_id_users_id_fk",
3430
+ "tableFrom": "pull_request_reviewers",
3431
+ "tableTo": "users",
3432
+ "columnsFrom": [
3433
+ "user_id"
3434
+ ],
3435
+ "columnsTo": [
3436
+ "id"
3437
+ ],
3438
+ "onDelete": "cascade",
3439
+ "onUpdate": "no action"
3440
+ }
3441
+ },
3442
+ "compositePrimaryKeys": {},
3443
+ "uniqueConstraints": {},
3444
+ "policies": {},
3445
+ "checkConstraints": {},
3446
+ "isRLSEnabled": false
3447
+ },
3448
+ "public.pull_request_reviews": {
3449
+ "name": "pull_request_reviews",
3450
+ "schema": "",
3451
+ "columns": {
3452
+ "id": {
3453
+ "name": "id",
3454
+ "type": "text",
3455
+ "primaryKey": true,
3456
+ "notNull": true
3457
+ },
3458
+ "pull_request_id": {
3459
+ "name": "pull_request_id",
3460
+ "type": "text",
3461
+ "primaryKey": false,
3462
+ "notNull": true
3463
+ },
3464
+ "reviewer_id": {
3465
+ "name": "reviewer_id",
3466
+ "type": "text",
3467
+ "primaryKey": false,
3468
+ "notNull": true
3469
+ },
3470
+ "state": {
3471
+ "name": "state",
3472
+ "type": "text",
3473
+ "primaryKey": false,
3474
+ "notNull": true
3475
+ },
3476
+ "body": {
3477
+ "name": "body",
3478
+ "type": "text",
3479
+ "primaryKey": false,
3480
+ "notNull": false
3481
+ },
3482
+ "commit_sha": {
3483
+ "name": "commit_sha",
3484
+ "type": "text",
3485
+ "primaryKey": false,
3486
+ "notNull": false
3487
+ },
3488
+ "submitted_at": {
3489
+ "name": "submitted_at",
3490
+ "type": "timestamp",
3491
+ "primaryKey": false,
3492
+ "notNull": false
3493
+ },
3494
+ "dismissed_at": {
3495
+ "name": "dismissed_at",
3496
+ "type": "timestamp",
3497
+ "primaryKey": false,
3498
+ "notNull": false
3499
+ },
3500
+ "dismissed_by_id": {
3501
+ "name": "dismissed_by_id",
3502
+ "type": "text",
3503
+ "primaryKey": false,
3504
+ "notNull": false
3505
+ },
3506
+ "dismissal_reason": {
3507
+ "name": "dismissal_reason",
3508
+ "type": "text",
3509
+ "primaryKey": false,
3510
+ "notNull": false
3511
+ },
3512
+ "created_at": {
3513
+ "name": "created_at",
3514
+ "type": "timestamp",
3515
+ "primaryKey": false,
3516
+ "notNull": true,
3517
+ "default": "now()"
3518
+ },
3519
+ "updated_at": {
3520
+ "name": "updated_at",
3521
+ "type": "timestamp",
3522
+ "primaryKey": false,
3523
+ "notNull": true,
3524
+ "default": "now()"
3525
+ }
3526
+ },
3527
+ "indexes": {
3528
+ "pr_reviews_pr_idx": {
3529
+ "name": "pr_reviews_pr_idx",
3530
+ "columns": [
3531
+ {
3532
+ "expression": "pull_request_id",
3533
+ "isExpression": false,
3534
+ "asc": true,
3535
+ "nulls": "last"
3536
+ }
3537
+ ],
3538
+ "isUnique": false,
3539
+ "concurrently": false,
3540
+ "method": "btree",
3541
+ "with": {}
3542
+ }
3543
+ },
3544
+ "foreignKeys": {
3545
+ "pull_request_reviews_pull_request_id_pull_requests_id_fk": {
3546
+ "name": "pull_request_reviews_pull_request_id_pull_requests_id_fk",
3547
+ "tableFrom": "pull_request_reviews",
3548
+ "tableTo": "pull_requests",
3549
+ "columnsFrom": [
3550
+ "pull_request_id"
3551
+ ],
3552
+ "columnsTo": [
3553
+ "id"
3554
+ ],
3555
+ "onDelete": "cascade",
3556
+ "onUpdate": "no action"
3557
+ },
3558
+ "pull_request_reviews_reviewer_id_users_id_fk": {
3559
+ "name": "pull_request_reviews_reviewer_id_users_id_fk",
3560
+ "tableFrom": "pull_request_reviews",
3561
+ "tableTo": "users",
3562
+ "columnsFrom": [
3563
+ "reviewer_id"
3564
+ ],
3565
+ "columnsTo": [
3566
+ "id"
3567
+ ],
3568
+ "onDelete": "no action",
3569
+ "onUpdate": "no action"
3570
+ },
3571
+ "pull_request_reviews_dismissed_by_id_users_id_fk": {
3572
+ "name": "pull_request_reviews_dismissed_by_id_users_id_fk",
3573
+ "tableFrom": "pull_request_reviews",
3574
+ "tableTo": "users",
3575
+ "columnsFrom": [
3576
+ "dismissed_by_id"
3577
+ ],
3578
+ "columnsTo": [
3579
+ "id"
3580
+ ],
3581
+ "onDelete": "no action",
3582
+ "onUpdate": "no action"
3583
+ }
3584
+ },
3585
+ "compositePrimaryKeys": {},
3586
+ "uniqueConstraints": {},
3587
+ "policies": {},
3588
+ "checkConstraints": {},
3589
+ "isRLSEnabled": false
3590
+ },
3591
+ "public.pull_requests": {
3592
+ "name": "pull_requests",
3593
+ "schema": "",
3594
+ "columns": {
3595
+ "id": {
3596
+ "name": "id",
3597
+ "type": "text",
3598
+ "primaryKey": true,
3599
+ "notNull": true
3600
+ },
3601
+ "repository_id": {
3602
+ "name": "repository_id",
3603
+ "type": "text",
3604
+ "primaryKey": false,
3605
+ "notNull": true
3606
+ },
3607
+ "number": {
3608
+ "name": "number",
3609
+ "type": "integer",
3610
+ "primaryKey": false,
3611
+ "notNull": true
3612
+ },
3613
+ "title": {
3614
+ "name": "title",
3615
+ "type": "text",
3616
+ "primaryKey": false,
3617
+ "notNull": true
3618
+ },
3619
+ "body": {
3620
+ "name": "body",
3621
+ "type": "text",
3622
+ "primaryKey": false,
3623
+ "notNull": false
3624
+ },
3625
+ "state": {
3626
+ "name": "state",
3627
+ "type": "text",
3628
+ "primaryKey": false,
3629
+ "notNull": true,
3630
+ "default": "'open'"
3631
+ },
3632
+ "author_id": {
3633
+ "name": "author_id",
3634
+ "type": "text",
3635
+ "primaryKey": false,
3636
+ "notNull": true
3637
+ },
3638
+ "assignee_id": {
3639
+ "name": "assignee_id",
3640
+ "type": "text",
3641
+ "primaryKey": false,
3642
+ "notNull": false
3643
+ },
3644
+ "milestone_id": {
3645
+ "name": "milestone_id",
3646
+ "type": "text",
3647
+ "primaryKey": false,
3648
+ "notNull": false
3649
+ },
3650
+ "head_branch": {
3651
+ "name": "head_branch",
3652
+ "type": "text",
3653
+ "primaryKey": false,
3654
+ "notNull": true
3655
+ },
3656
+ "head_sha": {
3657
+ "name": "head_sha",
3658
+ "type": "text",
3659
+ "primaryKey": false,
3660
+ "notNull": true
3661
+ },
3662
+ "head_repository_id": {
3663
+ "name": "head_repository_id",
3664
+ "type": "text",
3665
+ "primaryKey": false,
3666
+ "notNull": false
3667
+ },
3668
+ "base_branch": {
3669
+ "name": "base_branch",
3670
+ "type": "text",
3671
+ "primaryKey": false,
3672
+ "notNull": true
3673
+ },
3674
+ "base_sha": {
3675
+ "name": "base_sha",
3676
+ "type": "text",
3677
+ "primaryKey": false,
3678
+ "notNull": true
3679
+ },
3680
+ "is_draft": {
3681
+ "name": "is_draft",
3682
+ "type": "boolean",
3683
+ "primaryKey": false,
3684
+ "notNull": false,
3685
+ "default": false
3686
+ },
3687
+ "is_merged": {
3688
+ "name": "is_merged",
3689
+ "type": "boolean",
3690
+ "primaryKey": false,
3691
+ "notNull": false,
3692
+ "default": false
3693
+ },
3694
+ "merged_at": {
3695
+ "name": "merged_at",
3696
+ "type": "timestamp",
3697
+ "primaryKey": false,
3698
+ "notNull": false
3699
+ },
3700
+ "merged_by_id": {
3701
+ "name": "merged_by_id",
3702
+ "type": "text",
3703
+ "primaryKey": false,
3704
+ "notNull": false
3705
+ },
3706
+ "merge_commit_sha": {
3707
+ "name": "merge_commit_sha",
3708
+ "type": "text",
3709
+ "primaryKey": false,
3710
+ "notNull": false
3711
+ },
3712
+ "merge_sha": {
3713
+ "name": "merge_sha",
3714
+ "type": "text",
3715
+ "primaryKey": false,
3716
+ "notNull": false
3717
+ },
3718
+ "merge_method": {
3719
+ "name": "merge_method",
3720
+ "type": "text",
3721
+ "primaryKey": false,
3722
+ "notNull": false
3723
+ },
3724
+ "additions": {
3725
+ "name": "additions",
3726
+ "type": "integer",
3727
+ "primaryKey": false,
3728
+ "notNull": false,
3729
+ "default": 0
3730
+ },
3731
+ "deletions": {
3732
+ "name": "deletions",
3733
+ "type": "integer",
3734
+ "primaryKey": false,
3735
+ "notNull": false,
3736
+ "default": 0
3737
+ },
3738
+ "changed_files": {
3739
+ "name": "changed_files",
3740
+ "type": "integer",
3741
+ "primaryKey": false,
3742
+ "notNull": false,
3743
+ "default": 0
3744
+ },
3745
+ "comment_count": {
3746
+ "name": "comment_count",
3747
+ "type": "integer",
3748
+ "primaryKey": false,
3749
+ "notNull": false,
3750
+ "default": 0
3751
+ },
3752
+ "review_count": {
3753
+ "name": "review_count",
3754
+ "type": "integer",
3755
+ "primaryKey": false,
3756
+ "notNull": false,
3757
+ "default": 0
3758
+ },
3759
+ "mergeable": {
3760
+ "name": "mergeable",
3761
+ "type": "boolean",
3762
+ "primaryKey": false,
3763
+ "notNull": false
3764
+ },
3765
+ "mergeable_state": {
3766
+ "name": "mergeable_state",
3767
+ "type": "text",
3768
+ "primaryKey": false,
3769
+ "notNull": false
3770
+ },
3771
+ "rebaseable": {
3772
+ "name": "rebaseable",
3773
+ "type": "boolean",
3774
+ "primaryKey": false,
3775
+ "notNull": false
3776
+ },
3777
+ "maintainer_can_modify": {
3778
+ "name": "maintainer_can_modify",
3779
+ "type": "boolean",
3780
+ "primaryKey": false,
3781
+ "notNull": false,
3782
+ "default": true
3783
+ },
3784
+ "allow_auto_merge": {
3785
+ "name": "allow_auto_merge",
3786
+ "type": "boolean",
3787
+ "primaryKey": false,
3788
+ "notNull": false,
3789
+ "default": false
3790
+ },
3791
+ "auto_merge_method": {
3792
+ "name": "auto_merge_method",
3793
+ "type": "text",
3794
+ "primaryKey": false,
3795
+ "notNull": false
3796
+ },
3797
+ "auto_merge_enabled_by_id": {
3798
+ "name": "auto_merge_enabled_by_id",
3799
+ "type": "text",
3800
+ "primaryKey": false,
3801
+ "notNull": false
3802
+ },
3803
+ "auto_merge_enabled_at": {
3804
+ "name": "auto_merge_enabled_at",
3805
+ "type": "timestamp",
3806
+ "primaryKey": false,
3807
+ "notNull": false
3808
+ },
3809
+ "state_id": {
3810
+ "name": "state_id",
3811
+ "type": "text",
3812
+ "primaryKey": false,
3813
+ "notNull": false
3814
+ },
3815
+ "custom_state_changed_at": {
3816
+ "name": "custom_state_changed_at",
3817
+ "type": "timestamp",
3818
+ "primaryKey": false,
3819
+ "notNull": false
3820
+ },
3821
+ "closed_at": {
3822
+ "name": "closed_at",
3823
+ "type": "timestamp",
3824
+ "primaryKey": false,
3825
+ "notNull": false
3826
+ },
3827
+ "closed_by_id": {
3828
+ "name": "closed_by_id",
3829
+ "type": "text",
3830
+ "primaryKey": false,
3831
+ "notNull": false
3832
+ },
3833
+ "created_at": {
3834
+ "name": "created_at",
3835
+ "type": "timestamp",
3836
+ "primaryKey": false,
3837
+ "notNull": true,
3838
+ "default": "now()"
3839
+ },
3840
+ "updated_at": {
3841
+ "name": "updated_at",
3842
+ "type": "timestamp",
3843
+ "primaryKey": false,
3844
+ "notNull": true,
3845
+ "default": "now()"
3846
+ }
3847
+ },
3848
+ "indexes": {
3849
+ "prs_repo_number_idx": {
3850
+ "name": "prs_repo_number_idx",
3851
+ "columns": [
3852
+ {
3853
+ "expression": "repository_id",
3854
+ "isExpression": false,
3855
+ "asc": true,
3856
+ "nulls": "last"
3857
+ },
3858
+ {
3859
+ "expression": "number",
3860
+ "isExpression": false,
3861
+ "asc": true,
3862
+ "nulls": "last"
3863
+ }
3864
+ ],
3865
+ "isUnique": true,
3866
+ "concurrently": false,
3867
+ "method": "btree",
3868
+ "with": {}
3869
+ },
3870
+ "prs_repo_state_idx": {
3871
+ "name": "prs_repo_state_idx",
3872
+ "columns": [
3873
+ {
3874
+ "expression": "repository_id",
3875
+ "isExpression": false,
3876
+ "asc": true,
3877
+ "nulls": "last"
3878
+ },
3879
+ {
3880
+ "expression": "state",
3881
+ "isExpression": false,
3882
+ "asc": true,
3883
+ "nulls": "last"
3884
+ }
3885
+ ],
3886
+ "isUnique": false,
3887
+ "concurrently": false,
3888
+ "method": "btree",
3889
+ "with": {}
3890
+ },
3891
+ "prs_author_idx": {
3892
+ "name": "prs_author_idx",
3893
+ "columns": [
3894
+ {
3895
+ "expression": "author_id",
3896
+ "isExpression": false,
3897
+ "asc": true,
3898
+ "nulls": "last"
3899
+ }
3900
+ ],
3901
+ "isUnique": false,
3902
+ "concurrently": false,
3903
+ "method": "btree",
3904
+ "with": {}
3905
+ }
3906
+ },
3907
+ "foreignKeys": {
3908
+ "pull_requests_repository_id_repositories_id_fk": {
3909
+ "name": "pull_requests_repository_id_repositories_id_fk",
3910
+ "tableFrom": "pull_requests",
3911
+ "tableTo": "repositories",
3912
+ "columnsFrom": [
3913
+ "repository_id"
3914
+ ],
3915
+ "columnsTo": [
3916
+ "id"
3917
+ ],
3918
+ "onDelete": "cascade",
3919
+ "onUpdate": "no action"
3920
+ },
3921
+ "pull_requests_author_id_users_id_fk": {
3922
+ "name": "pull_requests_author_id_users_id_fk",
3923
+ "tableFrom": "pull_requests",
3924
+ "tableTo": "users",
3925
+ "columnsFrom": [
3926
+ "author_id"
3927
+ ],
3928
+ "columnsTo": [
3929
+ "id"
3930
+ ],
3931
+ "onDelete": "no action",
3932
+ "onUpdate": "no action"
3933
+ },
3934
+ "pull_requests_assignee_id_users_id_fk": {
3935
+ "name": "pull_requests_assignee_id_users_id_fk",
3936
+ "tableFrom": "pull_requests",
3937
+ "tableTo": "users",
3938
+ "columnsFrom": [
3939
+ "assignee_id"
3940
+ ],
3941
+ "columnsTo": [
3942
+ "id"
3943
+ ],
3944
+ "onDelete": "no action",
3945
+ "onUpdate": "no action"
3946
+ },
3947
+ "pull_requests_head_repository_id_repositories_id_fk": {
3948
+ "name": "pull_requests_head_repository_id_repositories_id_fk",
3949
+ "tableFrom": "pull_requests",
3950
+ "tableTo": "repositories",
3951
+ "columnsFrom": [
3952
+ "head_repository_id"
3953
+ ],
3954
+ "columnsTo": [
3955
+ "id"
3956
+ ],
3957
+ "onDelete": "no action",
3958
+ "onUpdate": "no action"
3959
+ },
3960
+ "pull_requests_merged_by_id_users_id_fk": {
3961
+ "name": "pull_requests_merged_by_id_users_id_fk",
3962
+ "tableFrom": "pull_requests",
3963
+ "tableTo": "users",
3964
+ "columnsFrom": [
3965
+ "merged_by_id"
3966
+ ],
3967
+ "columnsTo": [
3968
+ "id"
3969
+ ],
3970
+ "onDelete": "no action",
3971
+ "onUpdate": "no action"
3972
+ },
3973
+ "pull_requests_auto_merge_enabled_by_id_users_id_fk": {
3974
+ "name": "pull_requests_auto_merge_enabled_by_id_users_id_fk",
3975
+ "tableFrom": "pull_requests",
3976
+ "tableTo": "users",
3977
+ "columnsFrom": [
3978
+ "auto_merge_enabled_by_id"
3979
+ ],
3980
+ "columnsTo": [
3981
+ "id"
3982
+ ],
3983
+ "onDelete": "no action",
3984
+ "onUpdate": "no action"
3985
+ },
3986
+ "pull_requests_state_id_pr_state_definitions_id_fk": {
3987
+ "name": "pull_requests_state_id_pr_state_definitions_id_fk",
3988
+ "tableFrom": "pull_requests",
3989
+ "tableTo": "pr_state_definitions",
3990
+ "columnsFrom": [
3991
+ "state_id"
3992
+ ],
3993
+ "columnsTo": [
3994
+ "id"
3995
+ ],
3996
+ "onDelete": "no action",
3997
+ "onUpdate": "no action"
3998
+ },
3999
+ "pull_requests_closed_by_id_users_id_fk": {
4000
+ "name": "pull_requests_closed_by_id_users_id_fk",
4001
+ "tableFrom": "pull_requests",
4002
+ "tableTo": "users",
4003
+ "columnsFrom": [
4004
+ "closed_by_id"
4005
+ ],
4006
+ "columnsTo": [
4007
+ "id"
4008
+ ],
4009
+ "onDelete": "no action",
4010
+ "onUpdate": "no action"
4011
+ }
4012
+ },
4013
+ "compositePrimaryKeys": {},
4014
+ "uniqueConstraints": {},
4015
+ "policies": {},
4016
+ "checkConstraints": {},
4017
+ "isRLSEnabled": false
4018
+ },
4019
+ "public.project_cards": {
4020
+ "name": "project_cards",
4021
+ "schema": "",
4022
+ "columns": {
4023
+ "id": {
4024
+ "name": "id",
4025
+ "type": "text",
4026
+ "primaryKey": true,
4027
+ "notNull": true
4028
+ },
4029
+ "column_id": {
4030
+ "name": "column_id",
4031
+ "type": "text",
4032
+ "primaryKey": false,
4033
+ "notNull": true
4034
+ },
4035
+ "content_id": {
4036
+ "name": "content_id",
4037
+ "type": "text",
4038
+ "primaryKey": false,
4039
+ "notNull": false
4040
+ },
4041
+ "content_type": {
4042
+ "name": "content_type",
4043
+ "type": "text",
4044
+ "primaryKey": false,
4045
+ "notNull": false
4046
+ },
4047
+ "note": {
4048
+ "name": "note",
4049
+ "type": "text",
4050
+ "primaryKey": false,
4051
+ "notNull": false
4052
+ },
4053
+ "order": {
4054
+ "name": "order",
4055
+ "type": "integer",
4056
+ "primaryKey": false,
4057
+ "notNull": true
4058
+ },
4059
+ "created_at": {
4060
+ "name": "created_at",
4061
+ "type": "timestamp",
4062
+ "primaryKey": false,
4063
+ "notNull": true,
4064
+ "default": "now()"
4065
+ },
4066
+ "updated_at": {
4067
+ "name": "updated_at",
4068
+ "type": "timestamp",
4069
+ "primaryKey": false,
4070
+ "notNull": true,
4071
+ "default": "now()"
4072
+ },
4073
+ "creator_id": {
4074
+ "name": "creator_id",
4075
+ "type": "text",
4076
+ "primaryKey": false,
4077
+ "notNull": true
4078
+ }
4079
+ },
4080
+ "indexes": {},
4081
+ "foreignKeys": {
4082
+ "project_cards_column_id_project_columns_id_fk": {
4083
+ "name": "project_cards_column_id_project_columns_id_fk",
4084
+ "tableFrom": "project_cards",
4085
+ "tableTo": "project_columns",
4086
+ "columnsFrom": [
4087
+ "column_id"
4088
+ ],
4089
+ "columnsTo": [
4090
+ "id"
4091
+ ],
4092
+ "onDelete": "cascade",
4093
+ "onUpdate": "no action"
4094
+ },
4095
+ "project_cards_creator_id_users_id_fk": {
4096
+ "name": "project_cards_creator_id_users_id_fk",
4097
+ "tableFrom": "project_cards",
4098
+ "tableTo": "users",
4099
+ "columnsFrom": [
4100
+ "creator_id"
4101
+ ],
4102
+ "columnsTo": [
4103
+ "id"
4104
+ ],
4105
+ "onDelete": "no action",
4106
+ "onUpdate": "no action"
4107
+ }
4108
+ },
4109
+ "compositePrimaryKeys": {},
4110
+ "uniqueConstraints": {},
4111
+ "policies": {},
4112
+ "checkConstraints": {},
4113
+ "isRLSEnabled": false
4114
+ },
4115
+ "public.project_columns": {
4116
+ "name": "project_columns",
4117
+ "schema": "",
4118
+ "columns": {
4119
+ "id": {
4120
+ "name": "id",
4121
+ "type": "text",
4122
+ "primaryKey": true,
4123
+ "notNull": true
4124
+ },
4125
+ "project_id": {
4126
+ "name": "project_id",
4127
+ "type": "text",
4128
+ "primaryKey": false,
4129
+ "notNull": true
4130
+ },
4131
+ "name": {
4132
+ "name": "name",
4133
+ "type": "text",
4134
+ "primaryKey": false,
4135
+ "notNull": true
4136
+ },
4137
+ "order": {
4138
+ "name": "order",
4139
+ "type": "integer",
4140
+ "primaryKey": false,
4141
+ "notNull": true
4142
+ },
4143
+ "created_at": {
4144
+ "name": "created_at",
4145
+ "type": "timestamp",
4146
+ "primaryKey": false,
4147
+ "notNull": true,
4148
+ "default": "now()"
4149
+ },
4150
+ "updated_at": {
4151
+ "name": "updated_at",
4152
+ "type": "timestamp",
4153
+ "primaryKey": false,
4154
+ "notNull": true,
4155
+ "default": "now()"
4156
+ }
4157
+ },
4158
+ "indexes": {},
4159
+ "foreignKeys": {
4160
+ "project_columns_project_id_projects_id_fk": {
4161
+ "name": "project_columns_project_id_projects_id_fk",
4162
+ "tableFrom": "project_columns",
4163
+ "tableTo": "projects",
4164
+ "columnsFrom": [
4165
+ "project_id"
4166
+ ],
4167
+ "columnsTo": [
4168
+ "id"
4169
+ ],
4170
+ "onDelete": "cascade",
4171
+ "onUpdate": "no action"
4172
+ }
4173
+ },
4174
+ "compositePrimaryKeys": {},
4175
+ "uniqueConstraints": {},
4176
+ "policies": {},
4177
+ "checkConstraints": {},
4178
+ "isRLSEnabled": false
4179
+ },
4180
+ "public.projects": {
4181
+ "name": "projects",
4182
+ "schema": "",
4183
+ "columns": {
4184
+ "id": {
4185
+ "name": "id",
4186
+ "type": "text",
4187
+ "primaryKey": true,
4188
+ "notNull": true
4189
+ },
4190
+ "repository_id": {
4191
+ "name": "repository_id",
4192
+ "type": "text",
4193
+ "primaryKey": false,
4194
+ "notNull": true
4195
+ },
4196
+ "name": {
4197
+ "name": "name",
4198
+ "type": "text",
4199
+ "primaryKey": false,
4200
+ "notNull": true
4201
+ },
4202
+ "description": {
4203
+ "name": "description",
4204
+ "type": "text",
4205
+ "primaryKey": false,
4206
+ "notNull": false
4207
+ },
4208
+ "number": {
4209
+ "name": "number",
4210
+ "type": "integer",
4211
+ "primaryKey": false,
4212
+ "notNull": true
4213
+ },
4214
+ "created_at": {
4215
+ "name": "created_at",
4216
+ "type": "timestamp",
4217
+ "primaryKey": false,
4218
+ "notNull": true,
4219
+ "default": "now()"
4220
+ },
4221
+ "updated_at": {
4222
+ "name": "updated_at",
4223
+ "type": "timestamp",
4224
+ "primaryKey": false,
4225
+ "notNull": true,
4226
+ "default": "now()"
4227
+ },
4228
+ "creator_id": {
4229
+ "name": "creator_id",
4230
+ "type": "text",
4231
+ "primaryKey": false,
4232
+ "notNull": true
4233
+ }
4234
+ },
4235
+ "indexes": {},
4236
+ "foreignKeys": {
4237
+ "projects_repository_id_repositories_id_fk": {
4238
+ "name": "projects_repository_id_repositories_id_fk",
4239
+ "tableFrom": "projects",
4240
+ "tableTo": "repositories",
4241
+ "columnsFrom": [
4242
+ "repository_id"
4243
+ ],
4244
+ "columnsTo": [
4245
+ "id"
4246
+ ],
4247
+ "onDelete": "cascade",
4248
+ "onUpdate": "no action"
4249
+ },
4250
+ "projects_creator_id_users_id_fk": {
4251
+ "name": "projects_creator_id_users_id_fk",
4252
+ "tableFrom": "projects",
4253
+ "tableTo": "users",
4254
+ "columnsFrom": [
4255
+ "creator_id"
4256
+ ],
4257
+ "columnsTo": [
4258
+ "id"
4259
+ ],
4260
+ "onDelete": "no action",
4261
+ "onUpdate": "no action"
4262
+ }
4263
+ },
4264
+ "compositePrimaryKeys": {},
4265
+ "uniqueConstraints": {},
4266
+ "policies": {},
4267
+ "checkConstraints": {},
4268
+ "isRLSEnabled": false
4269
+ },
4270
+ "public.scheduled_workflows": {
4271
+ "name": "scheduled_workflows",
4272
+ "schema": "",
4273
+ "columns": {
4274
+ "id": {
4275
+ "name": "id",
4276
+ "type": "text",
4277
+ "primaryKey": true,
4278
+ "notNull": true
4279
+ },
4280
+ "workflow_id": {
4281
+ "name": "workflow_id",
4282
+ "type": "text",
4283
+ "primaryKey": false,
4284
+ "notNull": true
4285
+ },
4286
+ "cron_expression": {
4287
+ "name": "cron_expression",
4288
+ "type": "text",
4289
+ "primaryKey": false,
4290
+ "notNull": true
4291
+ },
4292
+ "timezone": {
4293
+ "name": "timezone",
4294
+ "type": "text",
4295
+ "primaryKey": false,
4296
+ "notNull": false,
4297
+ "default": "'UTC'"
4298
+ },
4299
+ "is_enabled": {
4300
+ "name": "is_enabled",
4301
+ "type": "boolean",
4302
+ "primaryKey": false,
4303
+ "notNull": false,
4304
+ "default": true
4305
+ },
4306
+ "last_run_at": {
4307
+ "name": "last_run_at",
4308
+ "type": "timestamp",
4309
+ "primaryKey": false,
4310
+ "notNull": false
4311
+ },
4312
+ "next_run_at": {
4313
+ "name": "next_run_at",
4314
+ "type": "timestamp",
4315
+ "primaryKey": false,
4316
+ "notNull": false
4317
+ },
4318
+ "created_at": {
4319
+ "name": "created_at",
4320
+ "type": "timestamp",
4321
+ "primaryKey": false,
4322
+ "notNull": true,
4323
+ "default": "now()"
4324
+ }
4325
+ },
4326
+ "indexes": {},
4327
+ "foreignKeys": {
4328
+ "scheduled_workflows_workflow_id_workflows_id_fk": {
4329
+ "name": "scheduled_workflows_workflow_id_workflows_id_fk",
4330
+ "tableFrom": "scheduled_workflows",
4331
+ "tableTo": "workflows",
4332
+ "columnsFrom": [
4333
+ "workflow_id"
4334
+ ],
4335
+ "columnsTo": [
4336
+ "id"
4337
+ ],
4338
+ "onDelete": "cascade",
4339
+ "onUpdate": "no action"
4340
+ }
4341
+ },
4342
+ "compositePrimaryKeys": {},
4343
+ "uniqueConstraints": {},
4344
+ "policies": {},
4345
+ "checkConstraints": {},
4346
+ "isRLSEnabled": false
4347
+ },
4348
+ "public.workflow_artifacts": {
4349
+ "name": "workflow_artifacts",
4350
+ "schema": "",
4351
+ "columns": {
4352
+ "id": {
4353
+ "name": "id",
4354
+ "type": "text",
4355
+ "primaryKey": true,
4356
+ "notNull": true
4357
+ },
4358
+ "run_id": {
4359
+ "name": "run_id",
4360
+ "type": "text",
4361
+ "primaryKey": false,
4362
+ "notNull": true
4363
+ },
4364
+ "job_id": {
4365
+ "name": "job_id",
4366
+ "type": "text",
4367
+ "primaryKey": false,
4368
+ "notNull": false
4369
+ },
4370
+ "name": {
4371
+ "name": "name",
4372
+ "type": "text",
4373
+ "primaryKey": false,
4374
+ "notNull": true
4375
+ },
4376
+ "size_bytes": {
4377
+ "name": "size_bytes",
4378
+ "type": "integer",
4379
+ "primaryKey": false,
4380
+ "notNull": true
4381
+ },
4382
+ "storage_path": {
4383
+ "name": "storage_path",
4384
+ "type": "text",
4385
+ "primaryKey": false,
4386
+ "notNull": true
4387
+ },
4388
+ "mime_type": {
4389
+ "name": "mime_type",
4390
+ "type": "text",
4391
+ "primaryKey": false,
4392
+ "notNull": false
4393
+ },
4394
+ "download_count": {
4395
+ "name": "download_count",
4396
+ "type": "integer",
4397
+ "primaryKey": false,
4398
+ "notNull": false,
4399
+ "default": 0
4400
+ },
4401
+ "expires_at": {
4402
+ "name": "expires_at",
4403
+ "type": "timestamp",
4404
+ "primaryKey": false,
4405
+ "notNull": false
4406
+ },
4407
+ "created_at": {
4408
+ "name": "created_at",
4409
+ "type": "timestamp",
4410
+ "primaryKey": false,
4411
+ "notNull": true,
4412
+ "default": "now()"
4413
+ }
4414
+ },
4415
+ "indexes": {},
4416
+ "foreignKeys": {
4417
+ "workflow_artifacts_run_id_workflow_runs_id_fk": {
4418
+ "name": "workflow_artifacts_run_id_workflow_runs_id_fk",
4419
+ "tableFrom": "workflow_artifacts",
4420
+ "tableTo": "workflow_runs",
4421
+ "columnsFrom": [
4422
+ "run_id"
4423
+ ],
4424
+ "columnsTo": [
4425
+ "id"
4426
+ ],
4427
+ "onDelete": "cascade",
4428
+ "onUpdate": "no action"
4429
+ },
4430
+ "workflow_artifacts_job_id_workflow_jobs_id_fk": {
4431
+ "name": "workflow_artifacts_job_id_workflow_jobs_id_fk",
4432
+ "tableFrom": "workflow_artifacts",
4433
+ "tableTo": "workflow_jobs",
4434
+ "columnsFrom": [
4435
+ "job_id"
4436
+ ],
4437
+ "columnsTo": [
4438
+ "id"
4439
+ ],
4440
+ "onDelete": "no action",
4441
+ "onUpdate": "no action"
4442
+ }
4443
+ },
4444
+ "compositePrimaryKeys": {},
4445
+ "uniqueConstraints": {},
4446
+ "policies": {},
4447
+ "checkConstraints": {},
4448
+ "isRLSEnabled": false
4449
+ },
4450
+ "public.workflow_jobs": {
4451
+ "name": "workflow_jobs",
4452
+ "schema": "",
4453
+ "columns": {
4454
+ "id": {
4455
+ "name": "id",
4456
+ "type": "text",
4457
+ "primaryKey": true,
4458
+ "notNull": true
4459
+ },
4460
+ "run_id": {
4461
+ "name": "run_id",
4462
+ "type": "text",
4463
+ "primaryKey": false,
4464
+ "notNull": true
4465
+ },
4466
+ "name": {
4467
+ "name": "name",
4468
+ "type": "text",
4469
+ "primaryKey": false,
4470
+ "notNull": true
4471
+ },
4472
+ "status": {
4473
+ "name": "status",
4474
+ "type": "text",
4475
+ "primaryKey": false,
4476
+ "notNull": true,
4477
+ "default": "'queued'"
4478
+ },
4479
+ "conclusion": {
4480
+ "name": "conclusion",
4481
+ "type": "text",
4482
+ "primaryKey": false,
4483
+ "notNull": false
4484
+ },
4485
+ "runner_id": {
4486
+ "name": "runner_id",
4487
+ "type": "text",
4488
+ "primaryKey": false,
4489
+ "notNull": false
4490
+ },
4491
+ "runner_name": {
4492
+ "name": "runner_name",
4493
+ "type": "text",
4494
+ "primaryKey": false,
4495
+ "notNull": false
4496
+ },
4497
+ "runner_group_id": {
4498
+ "name": "runner_group_id",
4499
+ "type": "text",
4500
+ "primaryKey": false,
4501
+ "notNull": false
4502
+ },
4503
+ "runner_group_name": {
4504
+ "name": "runner_group_name",
4505
+ "type": "text",
4506
+ "primaryKey": false,
4507
+ "notNull": false
4508
+ },
4509
+ "container_id": {
4510
+ "name": "container_id",
4511
+ "type": "text",
4512
+ "primaryKey": false,
4513
+ "notNull": false
4514
+ },
4515
+ "container_image": {
4516
+ "name": "container_image",
4517
+ "type": "text",
4518
+ "primaryKey": false,
4519
+ "notNull": false
4520
+ },
4521
+ "needs": {
4522
+ "name": "needs",
4523
+ "type": "text",
4524
+ "primaryKey": false,
4525
+ "notNull": false
4526
+ },
4527
+ "environment": {
4528
+ "name": "environment",
4529
+ "type": "text",
4530
+ "primaryKey": false,
4531
+ "notNull": false
4532
+ },
4533
+ "environment_url": {
4534
+ "name": "environment_url",
4535
+ "type": "text",
4536
+ "primaryKey": false,
4537
+ "notNull": false
4538
+ },
4539
+ "matrix": {
4540
+ "name": "matrix",
4541
+ "type": "text",
4542
+ "primaryKey": false,
4543
+ "notNull": false
4544
+ },
4545
+ "started_at": {
4546
+ "name": "started_at",
4547
+ "type": "timestamp",
4548
+ "primaryKey": false,
4549
+ "notNull": false
4550
+ },
4551
+ "completed_at": {
4552
+ "name": "completed_at",
4553
+ "type": "timestamp",
4554
+ "primaryKey": false,
4555
+ "notNull": false
4556
+ },
4557
+ "created_at": {
4558
+ "name": "created_at",
4559
+ "type": "timestamp",
4560
+ "primaryKey": false,
4561
+ "notNull": true,
4562
+ "default": "now()"
4563
+ },
4564
+ "updated_at": {
4565
+ "name": "updated_at",
4566
+ "type": "timestamp",
4567
+ "primaryKey": false,
4568
+ "notNull": true,
4569
+ "default": "now()"
4570
+ }
4571
+ },
4572
+ "indexes": {
4573
+ "workflow_jobs_run_idx": {
4574
+ "name": "workflow_jobs_run_idx",
4575
+ "columns": [
4576
+ {
4577
+ "expression": "run_id",
4578
+ "isExpression": false,
4579
+ "asc": true,
4580
+ "nulls": "last"
4581
+ }
4582
+ ],
4583
+ "isUnique": false,
4584
+ "concurrently": false,
4585
+ "method": "btree",
4586
+ "with": {}
4587
+ }
4588
+ },
4589
+ "foreignKeys": {
4590
+ "workflow_jobs_run_id_workflow_runs_id_fk": {
4591
+ "name": "workflow_jobs_run_id_workflow_runs_id_fk",
4592
+ "tableFrom": "workflow_jobs",
4593
+ "tableTo": "workflow_runs",
4594
+ "columnsFrom": [
4595
+ "run_id"
4596
+ ],
4597
+ "columnsTo": [
4598
+ "id"
4599
+ ],
4600
+ "onDelete": "cascade",
4601
+ "onUpdate": "no action"
4602
+ }
4603
+ },
4604
+ "compositePrimaryKeys": {},
4605
+ "uniqueConstraints": {},
4606
+ "policies": {},
4607
+ "checkConstraints": {},
4608
+ "isRLSEnabled": false
4609
+ },
4610
+ "public.workflow_logs": {
4611
+ "name": "workflow_logs",
4612
+ "schema": "",
4613
+ "columns": {
4614
+ "id": {
4615
+ "name": "id",
4616
+ "type": "text",
4617
+ "primaryKey": true,
4618
+ "notNull": true
4619
+ },
4620
+ "job_id": {
4621
+ "name": "job_id",
4622
+ "type": "text",
4623
+ "primaryKey": false,
4624
+ "notNull": true
4625
+ },
4626
+ "step_id": {
4627
+ "name": "step_id",
4628
+ "type": "text",
4629
+ "primaryKey": false,
4630
+ "notNull": false
4631
+ },
4632
+ "log_level": {
4633
+ "name": "log_level",
4634
+ "type": "text",
4635
+ "primaryKey": false,
4636
+ "notNull": true,
4637
+ "default": "'info'"
4638
+ },
4639
+ "message": {
4640
+ "name": "message",
4641
+ "type": "text",
4642
+ "primaryKey": false,
4643
+ "notNull": true
4644
+ },
4645
+ "timestamp": {
4646
+ "name": "timestamp",
4647
+ "type": "text",
4648
+ "primaryKey": false,
4649
+ "notNull": true
4650
+ },
4651
+ "line_number": {
4652
+ "name": "line_number",
4653
+ "type": "integer",
4654
+ "primaryKey": false,
4655
+ "notNull": false
4656
+ },
4657
+ "created_at": {
4658
+ "name": "created_at",
4659
+ "type": "timestamp",
4660
+ "primaryKey": false,
4661
+ "notNull": true,
4662
+ "default": "now()"
4663
+ }
4664
+ },
4665
+ "indexes": {},
4666
+ "foreignKeys": {
4667
+ "workflow_logs_job_id_workflow_jobs_id_fk": {
4668
+ "name": "workflow_logs_job_id_workflow_jobs_id_fk",
4669
+ "tableFrom": "workflow_logs",
4670
+ "tableTo": "workflow_jobs",
4671
+ "columnsFrom": [
4672
+ "job_id"
4673
+ ],
4674
+ "columnsTo": [
4675
+ "id"
4676
+ ],
4677
+ "onDelete": "cascade",
4678
+ "onUpdate": "no action"
4679
+ },
4680
+ "workflow_logs_step_id_workflow_steps_id_fk": {
4681
+ "name": "workflow_logs_step_id_workflow_steps_id_fk",
4682
+ "tableFrom": "workflow_logs",
4683
+ "tableTo": "workflow_steps",
4684
+ "columnsFrom": [
4685
+ "step_id"
4686
+ ],
4687
+ "columnsTo": [
4688
+ "id"
4689
+ ],
4690
+ "onDelete": "no action",
4691
+ "onUpdate": "no action"
4692
+ }
4693
+ },
4694
+ "compositePrimaryKeys": {},
4695
+ "uniqueConstraints": {},
4696
+ "policies": {},
4697
+ "checkConstraints": {},
4698
+ "isRLSEnabled": false
4699
+ },
4700
+ "public.workflow_runs": {
4701
+ "name": "workflow_runs",
4702
+ "schema": "",
4703
+ "columns": {
4704
+ "id": {
4705
+ "name": "id",
4706
+ "type": "text",
4707
+ "primaryKey": true,
4708
+ "notNull": true
4709
+ },
4710
+ "workflow_id": {
4711
+ "name": "workflow_id",
4712
+ "type": "text",
4713
+ "primaryKey": false,
4714
+ "notNull": true
4715
+ },
4716
+ "repository_id": {
4717
+ "name": "repository_id",
4718
+ "type": "text",
4719
+ "primaryKey": false,
4720
+ "notNull": true
4721
+ },
4722
+ "run_number": {
4723
+ "name": "run_number",
4724
+ "type": "integer",
4725
+ "primaryKey": false,
4726
+ "notNull": true
4727
+ },
4728
+ "run_attempt": {
4729
+ "name": "run_attempt",
4730
+ "type": "integer",
4731
+ "primaryKey": false,
4732
+ "notNull": true,
4733
+ "default": 1
4734
+ },
4735
+ "name": {
4736
+ "name": "name",
4737
+ "type": "text",
4738
+ "primaryKey": false,
4739
+ "notNull": true
4740
+ },
4741
+ "display_title": {
4742
+ "name": "display_title",
4743
+ "type": "text",
4744
+ "primaryKey": false,
4745
+ "notNull": false
4746
+ },
4747
+ "status": {
4748
+ "name": "status",
4749
+ "type": "text",
4750
+ "primaryKey": false,
4751
+ "notNull": true,
4752
+ "default": "'queued'"
4753
+ },
4754
+ "conclusion": {
4755
+ "name": "conclusion",
4756
+ "type": "text",
4757
+ "primaryKey": false,
4758
+ "notNull": false
4759
+ },
4760
+ "event": {
4761
+ "name": "event",
4762
+ "type": "text",
4763
+ "primaryKey": false,
4764
+ "notNull": true
4765
+ },
4766
+ "head_branch": {
4767
+ "name": "head_branch",
4768
+ "type": "text",
4769
+ "primaryKey": false,
4770
+ "notNull": false
4771
+ },
4772
+ "head_sha": {
4773
+ "name": "head_sha",
4774
+ "type": "text",
4775
+ "primaryKey": false,
4776
+ "notNull": true
4777
+ },
4778
+ "base_branch": {
4779
+ "name": "base_branch",
4780
+ "type": "text",
4781
+ "primaryKey": false,
4782
+ "notNull": false
4783
+ },
4784
+ "base_sha": {
4785
+ "name": "base_sha",
4786
+ "type": "text",
4787
+ "primaryKey": false,
4788
+ "notNull": false
4789
+ },
4790
+ "pull_request_id": {
4791
+ "name": "pull_request_id",
4792
+ "type": "text",
4793
+ "primaryKey": false,
4794
+ "notNull": false
4795
+ },
4796
+ "triggered_by_id": {
4797
+ "name": "triggered_by_id",
4798
+ "type": "text",
4799
+ "primaryKey": false,
4800
+ "notNull": false
4801
+ },
4802
+ "started_at": {
4803
+ "name": "started_at",
4804
+ "type": "timestamp",
4805
+ "primaryKey": false,
4806
+ "notNull": false
4807
+ },
4808
+ "completed_at": {
4809
+ "name": "completed_at",
4810
+ "type": "timestamp",
4811
+ "primaryKey": false,
4812
+ "notNull": false
4813
+ },
4814
+ "workflow_config": {
4815
+ "name": "workflow_config",
4816
+ "type": "text",
4817
+ "primaryKey": false,
4818
+ "notNull": false
4819
+ },
4820
+ "created_at": {
4821
+ "name": "created_at",
4822
+ "type": "timestamp",
4823
+ "primaryKey": false,
4824
+ "notNull": true,
4825
+ "default": "now()"
4826
+ },
4827
+ "updated_at": {
4828
+ "name": "updated_at",
4829
+ "type": "timestamp",
4830
+ "primaryKey": false,
4831
+ "notNull": true,
4832
+ "default": "now()"
4833
+ }
4834
+ },
4835
+ "indexes": {
4836
+ "workflow_runs_workflow_idx": {
4837
+ "name": "workflow_runs_workflow_idx",
4838
+ "columns": [
4839
+ {
4840
+ "expression": "workflow_id",
4841
+ "isExpression": false,
4842
+ "asc": true,
4843
+ "nulls": "last"
4844
+ }
4845
+ ],
4846
+ "isUnique": false,
4847
+ "concurrently": false,
4848
+ "method": "btree",
4849
+ "with": {}
4850
+ },
4851
+ "workflow_runs_repo_idx": {
4852
+ "name": "workflow_runs_repo_idx",
4853
+ "columns": [
4854
+ {
4855
+ "expression": "repository_id",
4856
+ "isExpression": false,
4857
+ "asc": true,
4858
+ "nulls": "last"
4859
+ }
4860
+ ],
4861
+ "isUnique": false,
4862
+ "concurrently": false,
4863
+ "method": "btree",
4864
+ "with": {}
4865
+ },
4866
+ "workflow_runs_status_idx": {
4867
+ "name": "workflow_runs_status_idx",
4868
+ "columns": [
4869
+ {
4870
+ "expression": "status",
4871
+ "isExpression": false,
4872
+ "asc": true,
4873
+ "nulls": "last"
4874
+ }
4875
+ ],
4876
+ "isUnique": false,
4877
+ "concurrently": false,
4878
+ "method": "btree",
4879
+ "with": {}
4880
+ }
4881
+ },
4882
+ "foreignKeys": {
4883
+ "workflow_runs_workflow_id_workflows_id_fk": {
4884
+ "name": "workflow_runs_workflow_id_workflows_id_fk",
4885
+ "tableFrom": "workflow_runs",
4886
+ "tableTo": "workflows",
4887
+ "columnsFrom": [
4888
+ "workflow_id"
4889
+ ],
4890
+ "columnsTo": [
4891
+ "id"
4892
+ ],
4893
+ "onDelete": "cascade",
4894
+ "onUpdate": "no action"
4895
+ },
4896
+ "workflow_runs_repository_id_repositories_id_fk": {
4897
+ "name": "workflow_runs_repository_id_repositories_id_fk",
4898
+ "tableFrom": "workflow_runs",
4899
+ "tableTo": "repositories",
4900
+ "columnsFrom": [
4901
+ "repository_id"
4902
+ ],
4903
+ "columnsTo": [
4904
+ "id"
4905
+ ],
4906
+ "onDelete": "cascade",
4907
+ "onUpdate": "no action"
4908
+ },
4909
+ "workflow_runs_pull_request_id_pull_requests_id_fk": {
4910
+ "name": "workflow_runs_pull_request_id_pull_requests_id_fk",
4911
+ "tableFrom": "workflow_runs",
4912
+ "tableTo": "pull_requests",
4913
+ "columnsFrom": [
4914
+ "pull_request_id"
4915
+ ],
4916
+ "columnsTo": [
4917
+ "id"
4918
+ ],
4919
+ "onDelete": "no action",
4920
+ "onUpdate": "no action"
4921
+ },
4922
+ "workflow_runs_triggered_by_id_users_id_fk": {
4923
+ "name": "workflow_runs_triggered_by_id_users_id_fk",
4924
+ "tableFrom": "workflow_runs",
4925
+ "tableTo": "users",
4926
+ "columnsFrom": [
4927
+ "triggered_by_id"
4928
+ ],
4929
+ "columnsTo": [
4930
+ "id"
4931
+ ],
4932
+ "onDelete": "no action",
4933
+ "onUpdate": "no action"
4934
+ }
4935
+ },
4936
+ "compositePrimaryKeys": {},
4937
+ "uniqueConstraints": {},
4938
+ "policies": {},
4939
+ "checkConstraints": {},
4940
+ "isRLSEnabled": false
4941
+ },
4942
+ "public.workflow_secrets": {
4943
+ "name": "workflow_secrets",
4944
+ "schema": "",
4945
+ "columns": {
4946
+ "id": {
4947
+ "name": "id",
4948
+ "type": "text",
4949
+ "primaryKey": true,
4950
+ "notNull": true
4951
+ },
4952
+ "repository_id": {
4953
+ "name": "repository_id",
4954
+ "type": "text",
4955
+ "primaryKey": false,
4956
+ "notNull": true
4957
+ },
4958
+ "name": {
4959
+ "name": "name",
4960
+ "type": "text",
4961
+ "primaryKey": false,
4962
+ "notNull": true
4963
+ },
4964
+ "encrypted_value": {
4965
+ "name": "encrypted_value",
4966
+ "type": "text",
4967
+ "primaryKey": false,
4968
+ "notNull": true
4969
+ },
4970
+ "environment": {
4971
+ "name": "environment",
4972
+ "type": "text",
4973
+ "primaryKey": false,
4974
+ "notNull": false
4975
+ },
4976
+ "created_by_id": {
4977
+ "name": "created_by_id",
4978
+ "type": "text",
4979
+ "primaryKey": false,
4980
+ "notNull": false
4981
+ },
4982
+ "created_at": {
4983
+ "name": "created_at",
4984
+ "type": "timestamp",
4985
+ "primaryKey": false,
4986
+ "notNull": true,
4987
+ "default": "now()"
4988
+ },
4989
+ "updated_at": {
4990
+ "name": "updated_at",
4991
+ "type": "timestamp",
4992
+ "primaryKey": false,
4993
+ "notNull": true,
4994
+ "default": "now()"
4995
+ }
4996
+ },
4997
+ "indexes": {},
4998
+ "foreignKeys": {
4999
+ "workflow_secrets_repository_id_repositories_id_fk": {
5000
+ "name": "workflow_secrets_repository_id_repositories_id_fk",
5001
+ "tableFrom": "workflow_secrets",
5002
+ "tableTo": "repositories",
5003
+ "columnsFrom": [
5004
+ "repository_id"
5005
+ ],
5006
+ "columnsTo": [
5007
+ "id"
5008
+ ],
5009
+ "onDelete": "cascade",
5010
+ "onUpdate": "no action"
5011
+ },
5012
+ "workflow_secrets_created_by_id_users_id_fk": {
5013
+ "name": "workflow_secrets_created_by_id_users_id_fk",
5014
+ "tableFrom": "workflow_secrets",
5015
+ "tableTo": "users",
5016
+ "columnsFrom": [
5017
+ "created_by_id"
5018
+ ],
5019
+ "columnsTo": [
5020
+ "id"
5021
+ ],
5022
+ "onDelete": "no action",
5023
+ "onUpdate": "no action"
5024
+ }
5025
+ },
5026
+ "compositePrimaryKeys": {},
5027
+ "uniqueConstraints": {},
5028
+ "policies": {},
5029
+ "checkConstraints": {},
5030
+ "isRLSEnabled": false
5031
+ },
5032
+ "public.workflow_steps": {
5033
+ "name": "workflow_steps",
5034
+ "schema": "",
5035
+ "columns": {
5036
+ "id": {
5037
+ "name": "id",
5038
+ "type": "text",
5039
+ "primaryKey": true,
5040
+ "notNull": true
5041
+ },
5042
+ "job_id": {
5043
+ "name": "job_id",
5044
+ "type": "text",
5045
+ "primaryKey": false,
5046
+ "notNull": true
5047
+ },
5048
+ "number": {
5049
+ "name": "number",
5050
+ "type": "integer",
5051
+ "primaryKey": false,
5052
+ "notNull": true
5053
+ },
5054
+ "name": {
5055
+ "name": "name",
5056
+ "type": "text",
5057
+ "primaryKey": false,
5058
+ "notNull": true
5059
+ },
5060
+ "status": {
5061
+ "name": "status",
5062
+ "type": "text",
5063
+ "primaryKey": false,
5064
+ "notNull": true,
5065
+ "default": "'queued'"
5066
+ },
5067
+ "conclusion": {
5068
+ "name": "conclusion",
5069
+ "type": "text",
5070
+ "primaryKey": false,
5071
+ "notNull": false
5072
+ },
5073
+ "uses": {
5074
+ "name": "uses",
5075
+ "type": "text",
5076
+ "primaryKey": false,
5077
+ "notNull": false
5078
+ },
5079
+ "run": {
5080
+ "name": "run",
5081
+ "type": "text",
5082
+ "primaryKey": false,
5083
+ "notNull": false
5084
+ },
5085
+ "shell": {
5086
+ "name": "shell",
5087
+ "type": "text",
5088
+ "primaryKey": false,
5089
+ "notNull": false
5090
+ },
5091
+ "working_directory": {
5092
+ "name": "working_directory",
5093
+ "type": "text",
5094
+ "primaryKey": false,
5095
+ "notNull": false
5096
+ },
5097
+ "env": {
5098
+ "name": "env",
5099
+ "type": "text",
5100
+ "primaryKey": false,
5101
+ "notNull": false
5102
+ },
5103
+ "with": {
5104
+ "name": "with",
5105
+ "type": "text",
5106
+ "primaryKey": false,
5107
+ "notNull": false
5108
+ },
5109
+ "if": {
5110
+ "name": "if",
5111
+ "type": "text",
5112
+ "primaryKey": false,
5113
+ "notNull": false
5114
+ },
5115
+ "continue_on_error": {
5116
+ "name": "continue_on_error",
5117
+ "type": "boolean",
5118
+ "primaryKey": false,
5119
+ "notNull": false,
5120
+ "default": false
5121
+ },
5122
+ "timeout_minutes": {
5123
+ "name": "timeout_minutes",
5124
+ "type": "integer",
5125
+ "primaryKey": false,
5126
+ "notNull": false
5127
+ },
5128
+ "started_at": {
5129
+ "name": "started_at",
5130
+ "type": "timestamp",
5131
+ "primaryKey": false,
5132
+ "notNull": false
5133
+ },
5134
+ "completed_at": {
5135
+ "name": "completed_at",
5136
+ "type": "timestamp",
5137
+ "primaryKey": false,
5138
+ "notNull": false
5139
+ },
5140
+ "created_at": {
5141
+ "name": "created_at",
5142
+ "type": "timestamp",
5143
+ "primaryKey": false,
5144
+ "notNull": true,
5145
+ "default": "now()"
5146
+ }
5147
+ },
5148
+ "indexes": {},
5149
+ "foreignKeys": {
5150
+ "workflow_steps_job_id_workflow_jobs_id_fk": {
5151
+ "name": "workflow_steps_job_id_workflow_jobs_id_fk",
5152
+ "tableFrom": "workflow_steps",
5153
+ "tableTo": "workflow_jobs",
5154
+ "columnsFrom": [
5155
+ "job_id"
5156
+ ],
5157
+ "columnsTo": [
5158
+ "id"
5159
+ ],
5160
+ "onDelete": "cascade",
5161
+ "onUpdate": "no action"
5162
+ }
5163
+ },
5164
+ "compositePrimaryKeys": {},
5165
+ "uniqueConstraints": {},
5166
+ "policies": {},
5167
+ "checkConstraints": {},
5168
+ "isRLSEnabled": false
5169
+ },
5170
+ "public.workflow_variables": {
5171
+ "name": "workflow_variables",
5172
+ "schema": "",
5173
+ "columns": {
5174
+ "id": {
5175
+ "name": "id",
5176
+ "type": "text",
5177
+ "primaryKey": true,
5178
+ "notNull": true
5179
+ },
5180
+ "repository_id": {
5181
+ "name": "repository_id",
5182
+ "type": "text",
5183
+ "primaryKey": false,
5184
+ "notNull": true
5185
+ },
5186
+ "name": {
5187
+ "name": "name",
5188
+ "type": "text",
5189
+ "primaryKey": false,
5190
+ "notNull": true
5191
+ },
5192
+ "value": {
5193
+ "name": "value",
5194
+ "type": "text",
5195
+ "primaryKey": false,
5196
+ "notNull": true
5197
+ },
5198
+ "environment": {
5199
+ "name": "environment",
5200
+ "type": "text",
5201
+ "primaryKey": false,
5202
+ "notNull": false
5203
+ },
5204
+ "created_by_id": {
5205
+ "name": "created_by_id",
5206
+ "type": "text",
5207
+ "primaryKey": false,
5208
+ "notNull": false
5209
+ },
5210
+ "created_at": {
5211
+ "name": "created_at",
5212
+ "type": "timestamp",
5213
+ "primaryKey": false,
5214
+ "notNull": true,
5215
+ "default": "now()"
5216
+ },
5217
+ "updated_at": {
5218
+ "name": "updated_at",
5219
+ "type": "timestamp",
5220
+ "primaryKey": false,
5221
+ "notNull": true,
5222
+ "default": "now()"
5223
+ }
5224
+ },
5225
+ "indexes": {},
5226
+ "foreignKeys": {
5227
+ "workflow_variables_repository_id_repositories_id_fk": {
5228
+ "name": "workflow_variables_repository_id_repositories_id_fk",
5229
+ "tableFrom": "workflow_variables",
5230
+ "tableTo": "repositories",
5231
+ "columnsFrom": [
5232
+ "repository_id"
5233
+ ],
5234
+ "columnsTo": [
5235
+ "id"
5236
+ ],
5237
+ "onDelete": "cascade",
5238
+ "onUpdate": "no action"
5239
+ },
5240
+ "workflow_variables_created_by_id_users_id_fk": {
5241
+ "name": "workflow_variables_created_by_id_users_id_fk",
5242
+ "tableFrom": "workflow_variables",
5243
+ "tableTo": "users",
5244
+ "columnsFrom": [
5245
+ "created_by_id"
5246
+ ],
5247
+ "columnsTo": [
5248
+ "id"
5249
+ ],
5250
+ "onDelete": "no action",
5251
+ "onUpdate": "no action"
5252
+ }
5253
+ },
5254
+ "compositePrimaryKeys": {},
5255
+ "uniqueConstraints": {},
5256
+ "policies": {},
5257
+ "checkConstraints": {},
5258
+ "isRLSEnabled": false
5259
+ },
5260
+ "public.workflows": {
5261
+ "name": "workflows",
5262
+ "schema": "",
5263
+ "columns": {
5264
+ "id": {
5265
+ "name": "id",
5266
+ "type": "text",
5267
+ "primaryKey": true,
5268
+ "notNull": true
5269
+ },
5270
+ "repository_id": {
5271
+ "name": "repository_id",
5272
+ "type": "text",
5273
+ "primaryKey": false,
5274
+ "notNull": true
5275
+ },
5276
+ "name": {
5277
+ "name": "name",
5278
+ "type": "text",
5279
+ "primaryKey": false,
5280
+ "notNull": true
5281
+ },
5282
+ "path": {
5283
+ "name": "path",
5284
+ "type": "text",
5285
+ "primaryKey": false,
5286
+ "notNull": true
5287
+ },
5288
+ "state": {
5289
+ "name": "state",
5290
+ "type": "text",
5291
+ "primaryKey": false,
5292
+ "notNull": true,
5293
+ "default": "'active'"
5294
+ },
5295
+ "badge_url": {
5296
+ "name": "badge_url",
5297
+ "type": "text",
5298
+ "primaryKey": false,
5299
+ "notNull": false
5300
+ },
5301
+ "created_at": {
5302
+ "name": "created_at",
5303
+ "type": "timestamp",
5304
+ "primaryKey": false,
5305
+ "notNull": true,
5306
+ "default": "now()"
5307
+ },
5308
+ "updated_at": {
5309
+ "name": "updated_at",
5310
+ "type": "timestamp",
5311
+ "primaryKey": false,
5312
+ "notNull": true,
5313
+ "default": "now()"
5314
+ }
5315
+ },
5316
+ "indexes": {
5317
+ "workflows_repo_idx": {
5318
+ "name": "workflows_repo_idx",
5319
+ "columns": [
5320
+ {
5321
+ "expression": "repository_id",
5322
+ "isExpression": false,
5323
+ "asc": true,
5324
+ "nulls": "last"
5325
+ }
5326
+ ],
5327
+ "isUnique": false,
5328
+ "concurrently": false,
5329
+ "method": "btree",
5330
+ "with": {}
5331
+ }
5332
+ },
5333
+ "foreignKeys": {
5334
+ "workflows_repository_id_repositories_id_fk": {
5335
+ "name": "workflows_repository_id_repositories_id_fk",
5336
+ "tableFrom": "workflows",
5337
+ "tableTo": "repositories",
5338
+ "columnsFrom": [
5339
+ "repository_id"
5340
+ ],
5341
+ "columnsTo": [
5342
+ "id"
5343
+ ],
5344
+ "onDelete": "cascade",
5345
+ "onUpdate": "no action"
5346
+ }
5347
+ },
5348
+ "compositePrimaryKeys": {},
5349
+ "uniqueConstraints": {},
5350
+ "policies": {},
5351
+ "checkConstraints": {},
5352
+ "isRLSEnabled": false
5353
+ },
5354
+ "public.wiki_pages": {
5355
+ "name": "wiki_pages",
5356
+ "schema": "",
5357
+ "columns": {
5358
+ "id": {
5359
+ "name": "id",
5360
+ "type": "text",
5361
+ "primaryKey": true,
5362
+ "notNull": true
5363
+ },
5364
+ "repository_id": {
5365
+ "name": "repository_id",
5366
+ "type": "text",
5367
+ "primaryKey": false,
5368
+ "notNull": true
5369
+ },
5370
+ "slug": {
5371
+ "name": "slug",
5372
+ "type": "text",
5373
+ "primaryKey": false,
5374
+ "notNull": true
5375
+ },
5376
+ "title": {
5377
+ "name": "title",
5378
+ "type": "text",
5379
+ "primaryKey": false,
5380
+ "notNull": true
5381
+ },
5382
+ "content": {
5383
+ "name": "content",
5384
+ "type": "text",
5385
+ "primaryKey": false,
5386
+ "notNull": true
5387
+ },
5388
+ "format": {
5389
+ "name": "format",
5390
+ "type": "text",
5391
+ "primaryKey": false,
5392
+ "notNull": true,
5393
+ "default": "'markdown'"
5394
+ },
5395
+ "parent_id": {
5396
+ "name": "parent_id",
5397
+ "type": "text",
5398
+ "primaryKey": false,
5399
+ "notNull": false
5400
+ },
5401
+ "order": {
5402
+ "name": "order",
5403
+ "type": "integer",
5404
+ "primaryKey": false,
5405
+ "notNull": false,
5406
+ "default": 0
5407
+ },
5408
+ "last_editor_id": {
5409
+ "name": "last_editor_id",
5410
+ "type": "text",
5411
+ "primaryKey": false,
5412
+ "notNull": false
5413
+ },
5414
+ "view_count": {
5415
+ "name": "view_count",
5416
+ "type": "integer",
5417
+ "primaryKey": false,
5418
+ "notNull": false,
5419
+ "default": 0
5420
+ },
5421
+ "created_at": {
5422
+ "name": "created_at",
5423
+ "type": "timestamp",
5424
+ "primaryKey": false,
5425
+ "notNull": true,
5426
+ "default": "now()"
5427
+ },
5428
+ "updated_at": {
5429
+ "name": "updated_at",
5430
+ "type": "timestamp",
5431
+ "primaryKey": false,
5432
+ "notNull": true,
5433
+ "default": "now()"
5434
+ }
5435
+ },
5436
+ "indexes": {},
5437
+ "foreignKeys": {
5438
+ "wiki_pages_repository_id_repositories_id_fk": {
5439
+ "name": "wiki_pages_repository_id_repositories_id_fk",
5440
+ "tableFrom": "wiki_pages",
5441
+ "tableTo": "repositories",
5442
+ "columnsFrom": [
5443
+ "repository_id"
5444
+ ],
5445
+ "columnsTo": [
5446
+ "id"
5447
+ ],
5448
+ "onDelete": "cascade",
5449
+ "onUpdate": "no action"
5450
+ },
5451
+ "wiki_pages_parent_id_wiki_pages_id_fk": {
5452
+ "name": "wiki_pages_parent_id_wiki_pages_id_fk",
5453
+ "tableFrom": "wiki_pages",
5454
+ "tableTo": "wiki_pages",
5455
+ "columnsFrom": [
5456
+ "parent_id"
5457
+ ],
5458
+ "columnsTo": [
5459
+ "id"
5460
+ ],
5461
+ "onDelete": "no action",
5462
+ "onUpdate": "no action"
5463
+ },
5464
+ "wiki_pages_last_editor_id_users_id_fk": {
5465
+ "name": "wiki_pages_last_editor_id_users_id_fk",
5466
+ "tableFrom": "wiki_pages",
5467
+ "tableTo": "users",
5468
+ "columnsFrom": [
5469
+ "last_editor_id"
5470
+ ],
5471
+ "columnsTo": [
5472
+ "id"
5473
+ ],
5474
+ "onDelete": "no action",
5475
+ "onUpdate": "no action"
5476
+ }
5477
+ },
5478
+ "compositePrimaryKeys": {},
5479
+ "uniqueConstraints": {},
5480
+ "policies": {},
5481
+ "checkConstraints": {},
5482
+ "isRLSEnabled": false
5483
+ },
5484
+ "public.wiki_revisions": {
5485
+ "name": "wiki_revisions",
5486
+ "schema": "",
5487
+ "columns": {
5488
+ "id": {
5489
+ "name": "id",
5490
+ "type": "text",
5491
+ "primaryKey": true,
5492
+ "notNull": true
5493
+ },
5494
+ "page_id": {
5495
+ "name": "page_id",
5496
+ "type": "text",
5497
+ "primaryKey": false,
5498
+ "notNull": true
5499
+ },
5500
+ "content": {
5501
+ "name": "content",
5502
+ "type": "text",
5503
+ "primaryKey": false,
5504
+ "notNull": true
5505
+ },
5506
+ "message": {
5507
+ "name": "message",
5508
+ "type": "text",
5509
+ "primaryKey": false,
5510
+ "notNull": false
5511
+ },
5512
+ "author_id": {
5513
+ "name": "author_id",
5514
+ "type": "text",
5515
+ "primaryKey": false,
5516
+ "notNull": true
5517
+ },
5518
+ "created_at": {
5519
+ "name": "created_at",
5520
+ "type": "timestamp",
5521
+ "primaryKey": false,
5522
+ "notNull": true,
5523
+ "default": "now()"
5524
+ }
5525
+ },
5526
+ "indexes": {},
5527
+ "foreignKeys": {
5528
+ "wiki_revisions_page_id_wiki_pages_id_fk": {
5529
+ "name": "wiki_revisions_page_id_wiki_pages_id_fk",
5530
+ "tableFrom": "wiki_revisions",
5531
+ "tableTo": "wiki_pages",
5532
+ "columnsFrom": [
5533
+ "page_id"
5534
+ ],
5535
+ "columnsTo": [
5536
+ "id"
5537
+ ],
5538
+ "onDelete": "cascade",
5539
+ "onUpdate": "no action"
5540
+ },
5541
+ "wiki_revisions_author_id_users_id_fk": {
5542
+ "name": "wiki_revisions_author_id_users_id_fk",
5543
+ "tableFrom": "wiki_revisions",
5544
+ "tableTo": "users",
5545
+ "columnsFrom": [
5546
+ "author_id"
5547
+ ],
5548
+ "columnsTo": [
5549
+ "id"
5550
+ ],
5551
+ "onDelete": "no action",
5552
+ "onUpdate": "no action"
5553
+ }
5554
+ },
5555
+ "compositePrimaryKeys": {},
5556
+ "uniqueConstraints": {},
5557
+ "policies": {},
5558
+ "checkConstraints": {},
5559
+ "isRLSEnabled": false
5560
+ },
5561
+ "public.organization_members": {
5562
+ "name": "organization_members",
5563
+ "schema": "",
5564
+ "columns": {
5565
+ "organization_id": {
5566
+ "name": "organization_id",
5567
+ "type": "text",
5568
+ "primaryKey": false,
5569
+ "notNull": true
5570
+ },
5571
+ "user_id": {
5572
+ "name": "user_id",
5573
+ "type": "text",
5574
+ "primaryKey": false,
5575
+ "notNull": true
5576
+ },
5577
+ "role": {
5578
+ "name": "role",
5579
+ "type": "text",
5580
+ "primaryKey": false,
5581
+ "notNull": true,
5582
+ "default": "'member'"
5583
+ },
5584
+ "custom_role_id": {
5585
+ "name": "custom_role_id",
5586
+ "type": "text",
5587
+ "primaryKey": false,
5588
+ "notNull": false
5589
+ },
5590
+ "created_at": {
5591
+ "name": "created_at",
5592
+ "type": "timestamp",
5593
+ "primaryKey": false,
5594
+ "notNull": true,
5595
+ "default": "now()"
5596
+ }
5597
+ },
5598
+ "indexes": {},
5599
+ "foreignKeys": {
5600
+ "organization_members_organization_id_organizations_id_fk": {
5601
+ "name": "organization_members_organization_id_organizations_id_fk",
5602
+ "tableFrom": "organization_members",
5603
+ "tableTo": "organizations",
5604
+ "columnsFrom": [
5605
+ "organization_id"
5606
+ ],
5607
+ "columnsTo": [
5608
+ "id"
5609
+ ],
5610
+ "onDelete": "cascade",
5611
+ "onUpdate": "no action"
5612
+ },
5613
+ "organization_members_user_id_users_id_fk": {
5614
+ "name": "organization_members_user_id_users_id_fk",
5615
+ "tableFrom": "organization_members",
5616
+ "tableTo": "users",
5617
+ "columnsFrom": [
5618
+ "user_id"
5619
+ ],
5620
+ "columnsTo": [
5621
+ "id"
5622
+ ],
5623
+ "onDelete": "cascade",
5624
+ "onUpdate": "no action"
5625
+ }
5626
+ },
5627
+ "compositePrimaryKeys": {
5628
+ "organization_members_organization_id_user_id_pk": {
5629
+ "name": "organization_members_organization_id_user_id_pk",
5630
+ "columns": [
5631
+ "organization_id",
5632
+ "user_id"
5633
+ ]
5634
+ }
5635
+ },
5636
+ "uniqueConstraints": {},
5637
+ "policies": {},
5638
+ "checkConstraints": {},
5639
+ "isRLSEnabled": false
5640
+ },
5641
+ "public.organizations": {
5642
+ "name": "organizations",
5643
+ "schema": "",
5644
+ "columns": {
5645
+ "id": {
5646
+ "name": "id",
5647
+ "type": "text",
5648
+ "primaryKey": true,
5649
+ "notNull": true
5650
+ },
5651
+ "name": {
5652
+ "name": "name",
5653
+ "type": "text",
5654
+ "primaryKey": false,
5655
+ "notNull": true
5656
+ },
5657
+ "display_name": {
5658
+ "name": "display_name",
5659
+ "type": "text",
5660
+ "primaryKey": false,
5661
+ "notNull": false
5662
+ },
5663
+ "description": {
5664
+ "name": "description",
5665
+ "type": "text",
5666
+ "primaryKey": false,
5667
+ "notNull": false
5668
+ },
5669
+ "email": {
5670
+ "name": "email",
5671
+ "type": "text",
5672
+ "primaryKey": false,
5673
+ "notNull": false
5674
+ },
5675
+ "location": {
5676
+ "name": "location",
5677
+ "type": "text",
5678
+ "primaryKey": false,
5679
+ "notNull": false
5680
+ },
5681
+ "website": {
5682
+ "name": "website",
5683
+ "type": "text",
5684
+ "primaryKey": false,
5685
+ "notNull": false
5686
+ },
5687
+ "avatar_url": {
5688
+ "name": "avatar_url",
5689
+ "type": "text",
5690
+ "primaryKey": false,
5691
+ "notNull": false
5692
+ },
5693
+ "is_verified": {
5694
+ "name": "is_verified",
5695
+ "type": "boolean",
5696
+ "primaryKey": false,
5697
+ "notNull": false,
5698
+ "default": false
5699
+ },
5700
+ "created_at": {
5701
+ "name": "created_at",
5702
+ "type": "timestamp",
5703
+ "primaryKey": false,
5704
+ "notNull": true,
5705
+ "default": "now()"
5706
+ },
5707
+ "updated_at": {
5708
+ "name": "updated_at",
5709
+ "type": "timestamp",
5710
+ "primaryKey": false,
5711
+ "notNull": true,
5712
+ "default": "now()"
5713
+ }
5714
+ },
5715
+ "indexes": {},
5716
+ "foreignKeys": {},
5717
+ "compositePrimaryKeys": {},
5718
+ "uniqueConstraints": {
5719
+ "organizations_name_unique": {
5720
+ "name": "organizations_name_unique",
5721
+ "nullsNotDistinct": false,
5722
+ "columns": [
5723
+ "name"
5724
+ ]
5725
+ }
5726
+ },
5727
+ "policies": {},
5728
+ "checkConstraints": {},
5729
+ "isRLSEnabled": false
5730
+ },
5731
+ "public.custom_roles": {
5732
+ "name": "custom_roles",
5733
+ "schema": "",
5734
+ "columns": {
5735
+ "id": {
5736
+ "name": "id",
5737
+ "type": "text",
5738
+ "primaryKey": true,
5739
+ "notNull": true
5740
+ },
5741
+ "organization_id": {
5742
+ "name": "organization_id",
5743
+ "type": "text",
5744
+ "primaryKey": false,
5745
+ "notNull": true
5746
+ },
5747
+ "name": {
5748
+ "name": "name",
5749
+ "type": "text",
5750
+ "primaryKey": false,
5751
+ "notNull": true
5752
+ },
5753
+ "description": {
5754
+ "name": "description",
5755
+ "type": "text",
5756
+ "primaryKey": false,
5757
+ "notNull": false
5758
+ },
5759
+ "permissions": {
5760
+ "name": "permissions",
5761
+ "type": "jsonb",
5762
+ "primaryKey": false,
5763
+ "notNull": true,
5764
+ "default": "'[]'::jsonb"
5765
+ },
5766
+ "created_at": {
5767
+ "name": "created_at",
5768
+ "type": "timestamp",
5769
+ "primaryKey": false,
5770
+ "notNull": true,
5771
+ "default": "now()"
5772
+ },
5773
+ "updated_at": {
5774
+ "name": "updated_at",
5775
+ "type": "timestamp",
5776
+ "primaryKey": false,
5777
+ "notNull": true,
5778
+ "default": "now()"
5779
+ }
5780
+ },
5781
+ "indexes": {},
5782
+ "foreignKeys": {
5783
+ "custom_roles_organization_id_organizations_id_fk": {
5784
+ "name": "custom_roles_organization_id_organizations_id_fk",
5785
+ "tableFrom": "custom_roles",
5786
+ "tableTo": "organizations",
5787
+ "columnsFrom": [
5788
+ "organization_id"
5789
+ ],
5790
+ "columnsTo": [
5791
+ "id"
5792
+ ],
5793
+ "onDelete": "cascade",
5794
+ "onUpdate": "no action"
5795
+ }
5796
+ },
5797
+ "compositePrimaryKeys": {},
5798
+ "uniqueConstraints": {},
5799
+ "policies": {},
5800
+ "checkConstraints": {},
5801
+ "isRLSEnabled": false
5802
+ },
5803
+ "public.team_members": {
5804
+ "name": "team_members",
5805
+ "schema": "",
5806
+ "columns": {
5807
+ "team_id": {
5808
+ "name": "team_id",
5809
+ "type": "text",
5810
+ "primaryKey": false,
5811
+ "notNull": true
5812
+ },
5813
+ "user_id": {
5814
+ "name": "user_id",
5815
+ "type": "text",
5816
+ "primaryKey": false,
5817
+ "notNull": true
5818
+ },
5819
+ "role": {
5820
+ "name": "role",
5821
+ "type": "text",
5822
+ "primaryKey": false,
5823
+ "notNull": true,
5824
+ "default": "'member'"
5825
+ },
5826
+ "created_at": {
5827
+ "name": "created_at",
5828
+ "type": "timestamp",
5829
+ "primaryKey": false,
5830
+ "notNull": true,
5831
+ "default": "now()"
5832
+ }
5833
+ },
5834
+ "indexes": {},
5835
+ "foreignKeys": {
5836
+ "team_members_team_id_teams_id_fk": {
5837
+ "name": "team_members_team_id_teams_id_fk",
5838
+ "tableFrom": "team_members",
5839
+ "tableTo": "teams",
5840
+ "columnsFrom": [
5841
+ "team_id"
5842
+ ],
5843
+ "columnsTo": [
5844
+ "id"
5845
+ ],
5846
+ "onDelete": "cascade",
5847
+ "onUpdate": "no action"
5848
+ },
5849
+ "team_members_user_id_users_id_fk": {
5850
+ "name": "team_members_user_id_users_id_fk",
5851
+ "tableFrom": "team_members",
5852
+ "tableTo": "users",
5853
+ "columnsFrom": [
5854
+ "user_id"
5855
+ ],
5856
+ "columnsTo": [
5857
+ "id"
5858
+ ],
5859
+ "onDelete": "cascade",
5860
+ "onUpdate": "no action"
5861
+ }
5862
+ },
5863
+ "compositePrimaryKeys": {
5864
+ "team_members_team_id_user_id_pk": {
5865
+ "name": "team_members_team_id_user_id_pk",
5866
+ "columns": [
5867
+ "team_id",
5868
+ "user_id"
5869
+ ]
5870
+ }
5871
+ },
5872
+ "uniqueConstraints": {},
5873
+ "policies": {},
5874
+ "checkConstraints": {},
5875
+ "isRLSEnabled": false
5876
+ },
5877
+ "public.team_repositories": {
5878
+ "name": "team_repositories",
5879
+ "schema": "",
5880
+ "columns": {
5881
+ "team_id": {
5882
+ "name": "team_id",
5883
+ "type": "text",
5884
+ "primaryKey": false,
5885
+ "notNull": true
5886
+ },
5887
+ "repository_id": {
5888
+ "name": "repository_id",
5889
+ "type": "text",
5890
+ "primaryKey": false,
5891
+ "notNull": true
5892
+ },
5893
+ "permission": {
5894
+ "name": "permission",
5895
+ "type": "text",
5896
+ "primaryKey": false,
5897
+ "notNull": true,
5898
+ "default": "'read'"
5899
+ },
5900
+ "created_at": {
5901
+ "name": "created_at",
5902
+ "type": "timestamp",
5903
+ "primaryKey": false,
5904
+ "notNull": true,
5905
+ "default": "now()"
5906
+ }
5907
+ },
5908
+ "indexes": {},
5909
+ "foreignKeys": {
5910
+ "team_repositories_team_id_teams_id_fk": {
5911
+ "name": "team_repositories_team_id_teams_id_fk",
5912
+ "tableFrom": "team_repositories",
5913
+ "tableTo": "teams",
5914
+ "columnsFrom": [
5915
+ "team_id"
5916
+ ],
5917
+ "columnsTo": [
5918
+ "id"
5919
+ ],
5920
+ "onDelete": "cascade",
5921
+ "onUpdate": "no action"
5922
+ },
5923
+ "team_repositories_repository_id_repositories_id_fk": {
5924
+ "name": "team_repositories_repository_id_repositories_id_fk",
5925
+ "tableFrom": "team_repositories",
5926
+ "tableTo": "repositories",
5927
+ "columnsFrom": [
5928
+ "repository_id"
5929
+ ],
5930
+ "columnsTo": [
5931
+ "id"
5932
+ ],
5933
+ "onDelete": "cascade",
5934
+ "onUpdate": "no action"
5935
+ }
5936
+ },
5937
+ "compositePrimaryKeys": {
5938
+ "team_repositories_team_id_repository_id_pk": {
5939
+ "name": "team_repositories_team_id_repository_id_pk",
5940
+ "columns": [
5941
+ "team_id",
5942
+ "repository_id"
5943
+ ]
5944
+ }
5945
+ },
5946
+ "uniqueConstraints": {},
5947
+ "policies": {},
5948
+ "checkConstraints": {},
5949
+ "isRLSEnabled": false
5950
+ },
5951
+ "public.teams": {
5952
+ "name": "teams",
5953
+ "schema": "",
5954
+ "columns": {
5955
+ "id": {
5956
+ "name": "id",
5957
+ "type": "text",
5958
+ "primaryKey": true,
5959
+ "notNull": true
5960
+ },
5961
+ "organization_id": {
5962
+ "name": "organization_id",
5963
+ "type": "text",
5964
+ "primaryKey": false,
5965
+ "notNull": true
5966
+ },
5967
+ "name": {
5968
+ "name": "name",
5969
+ "type": "text",
5970
+ "primaryKey": false,
5971
+ "notNull": true
5972
+ },
5973
+ "slug": {
5974
+ "name": "slug",
5975
+ "type": "text",
5976
+ "primaryKey": false,
5977
+ "notNull": true
5978
+ },
5979
+ "description": {
5980
+ "name": "description",
5981
+ "type": "text",
5982
+ "primaryKey": false,
5983
+ "notNull": false
5984
+ },
5985
+ "privacy": {
5986
+ "name": "privacy",
5987
+ "type": "text",
5988
+ "primaryKey": false,
5989
+ "notNull": false,
5990
+ "default": "'visible'"
5991
+ },
5992
+ "created_at": {
5993
+ "name": "created_at",
5994
+ "type": "timestamp",
5995
+ "primaryKey": false,
5996
+ "notNull": true,
5997
+ "default": "now()"
5998
+ },
5999
+ "updated_at": {
6000
+ "name": "updated_at",
6001
+ "type": "timestamp",
6002
+ "primaryKey": false,
6003
+ "notNull": true,
6004
+ "default": "now()"
6005
+ }
6006
+ },
6007
+ "indexes": {},
6008
+ "foreignKeys": {
6009
+ "teams_organization_id_organizations_id_fk": {
6010
+ "name": "teams_organization_id_organizations_id_fk",
6011
+ "tableFrom": "teams",
6012
+ "tableTo": "organizations",
6013
+ "columnsFrom": [
6014
+ "organization_id"
6015
+ ],
6016
+ "columnsTo": [
6017
+ "id"
6018
+ ],
6019
+ "onDelete": "cascade",
6020
+ "onUpdate": "no action"
6021
+ }
6022
+ },
6023
+ "compositePrimaryKeys": {},
6024
+ "uniqueConstraints": {},
6025
+ "policies": {},
6026
+ "checkConstraints": {},
6027
+ "isRLSEnabled": false
6028
+ },
6029
+ "public.activities": {
6030
+ "name": "activities",
6031
+ "schema": "",
6032
+ "columns": {
6033
+ "id": {
6034
+ "name": "id",
6035
+ "type": "text",
6036
+ "primaryKey": true,
6037
+ "notNull": true
6038
+ },
6039
+ "user_id": {
6040
+ "name": "user_id",
6041
+ "type": "text",
6042
+ "primaryKey": false,
6043
+ "notNull": true
6044
+ },
6045
+ "repository_id": {
6046
+ "name": "repository_id",
6047
+ "type": "text",
6048
+ "primaryKey": false,
6049
+ "notNull": false
6050
+ },
6051
+ "type": {
6052
+ "name": "type",
6053
+ "type": "text",
6054
+ "primaryKey": false,
6055
+ "notNull": true
6056
+ },
6057
+ "action": {
6058
+ "name": "action",
6059
+ "type": "text",
6060
+ "primaryKey": false,
6061
+ "notNull": true
6062
+ },
6063
+ "ref_type": {
6064
+ "name": "ref_type",
6065
+ "type": "text",
6066
+ "primaryKey": false,
6067
+ "notNull": false
6068
+ },
6069
+ "ref_name": {
6070
+ "name": "ref_name",
6071
+ "type": "text",
6072
+ "primaryKey": false,
6073
+ "notNull": false
6074
+ },
6075
+ "target_type": {
6076
+ "name": "target_type",
6077
+ "type": "text",
6078
+ "primaryKey": false,
6079
+ "notNull": false
6080
+ },
6081
+ "target_id": {
6082
+ "name": "target_id",
6083
+ "type": "text",
6084
+ "primaryKey": false,
6085
+ "notNull": false
6086
+ },
6087
+ "payload": {
6088
+ "name": "payload",
6089
+ "type": "text",
6090
+ "primaryKey": false,
6091
+ "notNull": false
6092
+ },
6093
+ "is_public": {
6094
+ "name": "is_public",
6095
+ "type": "boolean",
6096
+ "primaryKey": false,
6097
+ "notNull": false,
6098
+ "default": true
6099
+ },
6100
+ "created_at": {
6101
+ "name": "created_at",
6102
+ "type": "timestamp",
6103
+ "primaryKey": false,
6104
+ "notNull": true,
6105
+ "default": "now()"
6106
+ }
6107
+ },
6108
+ "indexes": {
6109
+ "activities_user_idx": {
6110
+ "name": "activities_user_idx",
6111
+ "columns": [
6112
+ {
6113
+ "expression": "user_id",
6114
+ "isExpression": false,
6115
+ "asc": true,
6116
+ "nulls": "last"
6117
+ }
6118
+ ],
6119
+ "isUnique": false,
6120
+ "concurrently": false,
6121
+ "method": "btree",
6122
+ "with": {}
6123
+ },
6124
+ "activities_repo_idx": {
6125
+ "name": "activities_repo_idx",
6126
+ "columns": [
6127
+ {
6128
+ "expression": "repository_id",
6129
+ "isExpression": false,
6130
+ "asc": true,
6131
+ "nulls": "last"
6132
+ }
6133
+ ],
6134
+ "isUnique": false,
6135
+ "concurrently": false,
6136
+ "method": "btree",
6137
+ "with": {}
6138
+ },
6139
+ "activities_created_idx": {
6140
+ "name": "activities_created_idx",
6141
+ "columns": [
6142
+ {
6143
+ "expression": "created_at",
6144
+ "isExpression": false,
6145
+ "asc": true,
6146
+ "nulls": "last"
6147
+ }
6148
+ ],
6149
+ "isUnique": false,
6150
+ "concurrently": false,
6151
+ "method": "btree",
6152
+ "with": {}
6153
+ }
6154
+ },
6155
+ "foreignKeys": {
6156
+ "activities_user_id_users_id_fk": {
6157
+ "name": "activities_user_id_users_id_fk",
6158
+ "tableFrom": "activities",
6159
+ "tableTo": "users",
6160
+ "columnsFrom": [
6161
+ "user_id"
6162
+ ],
6163
+ "columnsTo": [
6164
+ "id"
6165
+ ],
6166
+ "onDelete": "cascade",
6167
+ "onUpdate": "no action"
6168
+ },
6169
+ "activities_repository_id_repositories_id_fk": {
6170
+ "name": "activities_repository_id_repositories_id_fk",
6171
+ "tableFrom": "activities",
6172
+ "tableTo": "repositories",
6173
+ "columnsFrom": [
6174
+ "repository_id"
6175
+ ],
6176
+ "columnsTo": [
6177
+ "id"
6178
+ ],
6179
+ "onDelete": "cascade",
6180
+ "onUpdate": "no action"
6181
+ }
6182
+ },
6183
+ "compositePrimaryKeys": {},
6184
+ "uniqueConstraints": {},
6185
+ "policies": {},
6186
+ "checkConstraints": {},
6187
+ "isRLSEnabled": false
6188
+ },
6189
+ "public.audit_logs": {
6190
+ "name": "audit_logs",
6191
+ "schema": "",
6192
+ "columns": {
6193
+ "id": {
6194
+ "name": "id",
6195
+ "type": "text",
6196
+ "primaryKey": true,
6197
+ "notNull": true
6198
+ },
6199
+ "user_id": {
6200
+ "name": "user_id",
6201
+ "type": "text",
6202
+ "primaryKey": false,
6203
+ "notNull": false
6204
+ },
6205
+ "repository_id": {
6206
+ "name": "repository_id",
6207
+ "type": "text",
6208
+ "primaryKey": false,
6209
+ "notNull": false
6210
+ },
6211
+ "organization_id": {
6212
+ "name": "organization_id",
6213
+ "type": "text",
6214
+ "primaryKey": false,
6215
+ "notNull": false
6216
+ },
6217
+ "action": {
6218
+ "name": "action",
6219
+ "type": "text",
6220
+ "primaryKey": false,
6221
+ "notNull": true
6222
+ },
6223
+ "actor_type": {
6224
+ "name": "actor_type",
6225
+ "type": "text",
6226
+ "primaryKey": false,
6227
+ "notNull": true,
6228
+ "default": "'user'"
6229
+ },
6230
+ "actor_id": {
6231
+ "name": "actor_id",
6232
+ "type": "text",
6233
+ "primaryKey": false,
6234
+ "notNull": false
6235
+ },
6236
+ "actor_ip": {
6237
+ "name": "actor_ip",
6238
+ "type": "text",
6239
+ "primaryKey": false,
6240
+ "notNull": false
6241
+ },
6242
+ "actor_user_agent": {
6243
+ "name": "actor_user_agent",
6244
+ "type": "text",
6245
+ "primaryKey": false,
6246
+ "notNull": false
6247
+ },
6248
+ "target_type": {
6249
+ "name": "target_type",
6250
+ "type": "text",
6251
+ "primaryKey": false,
6252
+ "notNull": false
6253
+ },
6254
+ "target_id": {
6255
+ "name": "target_id",
6256
+ "type": "text",
6257
+ "primaryKey": false,
6258
+ "notNull": false
6259
+ },
6260
+ "target_name": {
6261
+ "name": "target_name",
6262
+ "type": "text",
6263
+ "primaryKey": false,
6264
+ "notNull": false
6265
+ },
6266
+ "data": {
6267
+ "name": "data",
6268
+ "type": "text",
6269
+ "primaryKey": false,
6270
+ "notNull": false
6271
+ },
6272
+ "created_at": {
6273
+ "name": "created_at",
6274
+ "type": "timestamp",
6275
+ "primaryKey": false,
6276
+ "notNull": true,
6277
+ "default": "now()"
6278
+ }
6279
+ },
6280
+ "indexes": {
6281
+ "audit_logs_action_idx": {
6282
+ "name": "audit_logs_action_idx",
6283
+ "columns": [
6284
+ {
6285
+ "expression": "action",
6286
+ "isExpression": false,
6287
+ "asc": true,
6288
+ "nulls": "last"
6289
+ }
6290
+ ],
6291
+ "isUnique": false,
6292
+ "concurrently": false,
6293
+ "method": "btree",
6294
+ "with": {}
6295
+ },
6296
+ "audit_logs_actor_idx": {
6297
+ "name": "audit_logs_actor_idx",
6298
+ "columns": [
6299
+ {
6300
+ "expression": "actor_id",
6301
+ "isExpression": false,
6302
+ "asc": true,
6303
+ "nulls": "last"
6304
+ }
6305
+ ],
6306
+ "isUnique": false,
6307
+ "concurrently": false,
6308
+ "method": "btree",
6309
+ "with": {}
6310
+ },
6311
+ "audit_logs_created_idx": {
6312
+ "name": "audit_logs_created_idx",
6313
+ "columns": [
6314
+ {
6315
+ "expression": "created_at",
6316
+ "isExpression": false,
6317
+ "asc": true,
6318
+ "nulls": "last"
6319
+ }
6320
+ ],
6321
+ "isUnique": false,
6322
+ "concurrently": false,
6323
+ "method": "btree",
6324
+ "with": {}
6325
+ },
6326
+ "audit_logs_target_idx": {
6327
+ "name": "audit_logs_target_idx",
6328
+ "columns": [
6329
+ {
6330
+ "expression": "target_type",
6331
+ "isExpression": false,
6332
+ "asc": true,
6333
+ "nulls": "last"
6334
+ },
6335
+ {
6336
+ "expression": "target_id",
6337
+ "isExpression": false,
6338
+ "asc": true,
6339
+ "nulls": "last"
6340
+ }
6341
+ ],
6342
+ "isUnique": false,
6343
+ "concurrently": false,
6344
+ "method": "btree",
6345
+ "with": {}
6346
+ }
6347
+ },
6348
+ "foreignKeys": {
6349
+ "audit_logs_user_id_users_id_fk": {
6350
+ "name": "audit_logs_user_id_users_id_fk",
6351
+ "tableFrom": "audit_logs",
6352
+ "tableTo": "users",
6353
+ "columnsFrom": [
6354
+ "user_id"
6355
+ ],
6356
+ "columnsTo": [
6357
+ "id"
6358
+ ],
6359
+ "onDelete": "no action",
6360
+ "onUpdate": "no action"
6361
+ },
6362
+ "audit_logs_repository_id_repositories_id_fk": {
6363
+ "name": "audit_logs_repository_id_repositories_id_fk",
6364
+ "tableFrom": "audit_logs",
6365
+ "tableTo": "repositories",
6366
+ "columnsFrom": [
6367
+ "repository_id"
6368
+ ],
6369
+ "columnsTo": [
6370
+ "id"
6371
+ ],
6372
+ "onDelete": "no action",
6373
+ "onUpdate": "no action"
6374
+ }
6375
+ },
6376
+ "compositePrimaryKeys": {},
6377
+ "uniqueConstraints": {},
6378
+ "policies": {},
6379
+ "checkConstraints": {},
6380
+ "isRLSEnabled": false
6381
+ },
6382
+ "public.notifications": {
6383
+ "name": "notifications",
6384
+ "schema": "",
6385
+ "columns": {
6386
+ "id": {
6387
+ "name": "id",
6388
+ "type": "text",
6389
+ "primaryKey": true,
6390
+ "notNull": true
6391
+ },
6392
+ "user_id": {
6393
+ "name": "user_id",
6394
+ "type": "text",
6395
+ "primaryKey": false,
6396
+ "notNull": true
6397
+ },
6398
+ "repository_id": {
6399
+ "name": "repository_id",
6400
+ "type": "text",
6401
+ "primaryKey": false,
6402
+ "notNull": false
6403
+ },
6404
+ "type": {
6405
+ "name": "type",
6406
+ "type": "text",
6407
+ "primaryKey": false,
6408
+ "notNull": true
6409
+ },
6410
+ "title": {
6411
+ "name": "title",
6412
+ "type": "text",
6413
+ "primaryKey": false,
6414
+ "notNull": true
6415
+ },
6416
+ "body": {
6417
+ "name": "body",
6418
+ "type": "text",
6419
+ "primaryKey": false,
6420
+ "notNull": false
6421
+ },
6422
+ "url": {
6423
+ "name": "url",
6424
+ "type": "text",
6425
+ "primaryKey": false,
6426
+ "notNull": false
6427
+ },
6428
+ "actor_id": {
6429
+ "name": "actor_id",
6430
+ "type": "text",
6431
+ "primaryKey": false,
6432
+ "notNull": false
6433
+ },
6434
+ "subject_type": {
6435
+ "name": "subject_type",
6436
+ "type": "text",
6437
+ "primaryKey": false,
6438
+ "notNull": false
6439
+ },
6440
+ "subject_id": {
6441
+ "name": "subject_id",
6442
+ "type": "text",
6443
+ "primaryKey": false,
6444
+ "notNull": false
6445
+ },
6446
+ "reason": {
6447
+ "name": "reason",
6448
+ "type": "text",
6449
+ "primaryKey": false,
6450
+ "notNull": true
6451
+ },
6452
+ "is_read": {
6453
+ "name": "is_read",
6454
+ "type": "boolean",
6455
+ "primaryKey": false,
6456
+ "notNull": false,
6457
+ "default": false
6458
+ },
6459
+ "read_at": {
6460
+ "name": "read_at",
6461
+ "type": "timestamp",
6462
+ "primaryKey": false,
6463
+ "notNull": false
6464
+ },
6465
+ "is_archived": {
6466
+ "name": "is_archived",
6467
+ "type": "boolean",
6468
+ "primaryKey": false,
6469
+ "notNull": false,
6470
+ "default": false
6471
+ },
6472
+ "archived_at": {
6473
+ "name": "archived_at",
6474
+ "type": "timestamp",
6475
+ "primaryKey": false,
6476
+ "notNull": false
6477
+ },
6478
+ "created_at": {
6479
+ "name": "created_at",
6480
+ "type": "timestamp",
6481
+ "primaryKey": false,
6482
+ "notNull": true,
6483
+ "default": "now()"
6484
+ },
6485
+ "updated_at": {
6486
+ "name": "updated_at",
6487
+ "type": "timestamp",
6488
+ "primaryKey": false,
6489
+ "notNull": true,
6490
+ "default": "now()"
6491
+ }
6492
+ },
6493
+ "indexes": {
6494
+ "notifications_user_read_idx": {
6495
+ "name": "notifications_user_read_idx",
6496
+ "columns": [
6497
+ {
6498
+ "expression": "user_id",
6499
+ "isExpression": false,
6500
+ "asc": true,
6501
+ "nulls": "last"
6502
+ },
6503
+ {
6504
+ "expression": "is_read",
6505
+ "isExpression": false,
6506
+ "asc": true,
6507
+ "nulls": "last"
6508
+ }
6509
+ ],
6510
+ "isUnique": false,
6511
+ "concurrently": false,
6512
+ "method": "btree",
6513
+ "with": {}
6514
+ },
6515
+ "notifications_user_idx": {
6516
+ "name": "notifications_user_idx",
6517
+ "columns": [
6518
+ {
6519
+ "expression": "user_id",
6520
+ "isExpression": false,
6521
+ "asc": true,
6522
+ "nulls": "last"
6523
+ }
6524
+ ],
6525
+ "isUnique": false,
6526
+ "concurrently": false,
6527
+ "method": "btree",
6528
+ "with": {}
6529
+ }
6530
+ },
6531
+ "foreignKeys": {
6532
+ "notifications_user_id_users_id_fk": {
6533
+ "name": "notifications_user_id_users_id_fk",
6534
+ "tableFrom": "notifications",
6535
+ "tableTo": "users",
6536
+ "columnsFrom": [
6537
+ "user_id"
6538
+ ],
6539
+ "columnsTo": [
6540
+ "id"
6541
+ ],
6542
+ "onDelete": "cascade",
6543
+ "onUpdate": "no action"
6544
+ },
6545
+ "notifications_repository_id_repositories_id_fk": {
6546
+ "name": "notifications_repository_id_repositories_id_fk",
6547
+ "tableFrom": "notifications",
6548
+ "tableTo": "repositories",
6549
+ "columnsFrom": [
6550
+ "repository_id"
6551
+ ],
6552
+ "columnsTo": [
6553
+ "id"
6554
+ ],
6555
+ "onDelete": "no action",
6556
+ "onUpdate": "no action"
6557
+ },
6558
+ "notifications_actor_id_users_id_fk": {
6559
+ "name": "notifications_actor_id_users_id_fk",
6560
+ "tableFrom": "notifications",
6561
+ "tableTo": "users",
6562
+ "columnsFrom": [
6563
+ "actor_id"
6564
+ ],
6565
+ "columnsTo": [
6566
+ "id"
6567
+ ],
6568
+ "onDelete": "no action",
6569
+ "onUpdate": "no action"
6570
+ }
6571
+ },
6572
+ "compositePrimaryKeys": {},
6573
+ "uniqueConstraints": {},
6574
+ "policies": {},
6575
+ "checkConstraints": {},
6576
+ "isRLSEnabled": false
6577
+ },
6578
+ "public.security_scans": {
6579
+ "name": "security_scans",
6580
+ "schema": "",
6581
+ "columns": {
6582
+ "id": {
6583
+ "name": "id",
6584
+ "type": "text",
6585
+ "primaryKey": true,
6586
+ "notNull": true
6587
+ },
6588
+ "repository_id": {
6589
+ "name": "repository_id",
6590
+ "type": "text",
6591
+ "primaryKey": false,
6592
+ "notNull": true
6593
+ },
6594
+ "status": {
6595
+ "name": "status",
6596
+ "type": "text",
6597
+ "primaryKey": false,
6598
+ "notNull": true,
6599
+ "default": "'queued'"
6600
+ },
6601
+ "started_at": {
6602
+ "name": "started_at",
6603
+ "type": "timestamp",
6604
+ "primaryKey": false,
6605
+ "notNull": false
6606
+ },
6607
+ "completed_at": {
6608
+ "name": "completed_at",
6609
+ "type": "timestamp",
6610
+ "primaryKey": false,
6611
+ "notNull": false
6612
+ },
6613
+ "critical_count": {
6614
+ "name": "critical_count",
6615
+ "type": "integer",
6616
+ "primaryKey": false,
6617
+ "notNull": false,
6618
+ "default": 0
6619
+ },
6620
+ "high_count": {
6621
+ "name": "high_count",
6622
+ "type": "integer",
6623
+ "primaryKey": false,
6624
+ "notNull": false,
6625
+ "default": 0
6626
+ },
6627
+ "medium_count": {
6628
+ "name": "medium_count",
6629
+ "type": "integer",
6630
+ "primaryKey": false,
6631
+ "notNull": false,
6632
+ "default": 0
6633
+ },
6634
+ "low_count": {
6635
+ "name": "low_count",
6636
+ "type": "integer",
6637
+ "primaryKey": false,
6638
+ "notNull": false,
6639
+ "default": 0
6640
+ },
6641
+ "unknown_count": {
6642
+ "name": "unknown_count",
6643
+ "type": "integer",
6644
+ "primaryKey": false,
6645
+ "notNull": false,
6646
+ "default": 0
6647
+ },
6648
+ "logs": {
6649
+ "name": "logs",
6650
+ "type": "text",
6651
+ "primaryKey": false,
6652
+ "notNull": false
6653
+ }
6654
+ },
6655
+ "indexes": {},
6656
+ "foreignKeys": {
6657
+ "security_scans_repository_id_repositories_id_fk": {
6658
+ "name": "security_scans_repository_id_repositories_id_fk",
6659
+ "tableFrom": "security_scans",
6660
+ "tableTo": "repositories",
6661
+ "columnsFrom": [
6662
+ "repository_id"
6663
+ ],
6664
+ "columnsTo": [
6665
+ "id"
6666
+ ],
6667
+ "onDelete": "cascade",
6668
+ "onUpdate": "no action"
6669
+ }
6670
+ },
6671
+ "compositePrimaryKeys": {},
6672
+ "uniqueConstraints": {},
6673
+ "policies": {},
6674
+ "checkConstraints": {},
6675
+ "isRLSEnabled": false
6676
+ },
6677
+ "public.security_vulnerabilities": {
6678
+ "name": "security_vulnerabilities",
6679
+ "schema": "",
6680
+ "columns": {
6681
+ "id": {
6682
+ "name": "id",
6683
+ "type": "text",
6684
+ "primaryKey": true,
6685
+ "notNull": true
6686
+ },
6687
+ "scan_id": {
6688
+ "name": "scan_id",
6689
+ "type": "text",
6690
+ "primaryKey": false,
6691
+ "notNull": true
6692
+ },
6693
+ "vulnerability_id": {
6694
+ "name": "vulnerability_id",
6695
+ "type": "text",
6696
+ "primaryKey": false,
6697
+ "notNull": true
6698
+ },
6699
+ "pkg_name": {
6700
+ "name": "pkg_name",
6701
+ "type": "text",
6702
+ "primaryKey": false,
6703
+ "notNull": true
6704
+ },
6705
+ "installed_version": {
6706
+ "name": "installed_version",
6707
+ "type": "text",
6708
+ "primaryKey": false,
6709
+ "notNull": false
6710
+ },
6711
+ "fixed_version": {
6712
+ "name": "fixed_version",
6713
+ "type": "text",
6714
+ "primaryKey": false,
6715
+ "notNull": false
6716
+ },
6717
+ "severity": {
6718
+ "name": "severity",
6719
+ "type": "text",
6720
+ "primaryKey": false,
6721
+ "notNull": true
6722
+ },
6723
+ "title": {
6724
+ "name": "title",
6725
+ "type": "text",
6726
+ "primaryKey": false,
6727
+ "notNull": false
6728
+ },
6729
+ "description": {
6730
+ "name": "description",
6731
+ "type": "text",
6732
+ "primaryKey": false,
6733
+ "notNull": false
6734
+ },
6735
+ "target": {
6736
+ "name": "target",
6737
+ "type": "text",
6738
+ "primaryKey": false,
6739
+ "notNull": false
6740
+ },
6741
+ "class": {
6742
+ "name": "class",
6743
+ "type": "text",
6744
+ "primaryKey": false,
6745
+ "notNull": false
6746
+ }
6747
+ },
6748
+ "indexes": {},
6749
+ "foreignKeys": {
6750
+ "security_vulnerabilities_scan_id_security_scans_id_fk": {
6751
+ "name": "security_vulnerabilities_scan_id_security_scans_id_fk",
6752
+ "tableFrom": "security_vulnerabilities",
6753
+ "tableTo": "security_scans",
6754
+ "columnsFrom": [
6755
+ "scan_id"
6756
+ ],
6757
+ "columnsTo": [
6758
+ "id"
6759
+ ],
6760
+ "onDelete": "cascade",
6761
+ "onUpdate": "no action"
6762
+ }
6763
+ },
6764
+ "compositePrimaryKeys": {},
6765
+ "uniqueConstraints": {},
6766
+ "policies": {},
6767
+ "checkConstraints": {},
6768
+ "isRLSEnabled": false
6769
+ },
6770
+ "public.security_policies": {
6771
+ "name": "security_policies",
6772
+ "schema": "",
6773
+ "columns": {
6774
+ "id": {
6775
+ "name": "id",
6776
+ "type": "text",
6777
+ "primaryKey": true,
6778
+ "notNull": true
6779
+ },
6780
+ "repository_id": {
6781
+ "name": "repository_id",
6782
+ "type": "text",
6783
+ "primaryKey": false,
6784
+ "notNull": true
6785
+ },
6786
+ "enforcement_mode": {
6787
+ "name": "enforcement_mode",
6788
+ "type": "text",
6789
+ "primaryKey": false,
6790
+ "notNull": true,
6791
+ "default": "'warn'"
6792
+ },
6793
+ "secret_blocked_types": {
6794
+ "name": "secret_blocked_types",
6795
+ "type": "text",
6796
+ "primaryKey": false,
6797
+ "notNull": true,
6798
+ "default": "'[]'"
6799
+ },
6800
+ "secret_min_severity": {
6801
+ "name": "secret_min_severity",
6802
+ "type": "text",
6803
+ "primaryKey": false,
6804
+ "notNull": true,
6805
+ "default": "'HIGH'"
6806
+ },
6807
+ "license_allowed_types": {
6808
+ "name": "license_allowed_types",
6809
+ "type": "text",
6810
+ "primaryKey": false,
6811
+ "notNull": true,
6812
+ "default": "'[\"permissive\"]'"
6813
+ },
6814
+ "license_blocked_licenses": {
6815
+ "name": "license_blocked_licenses",
6816
+ "type": "text",
6817
+ "primaryKey": false,
6818
+ "notNull": true,
6819
+ "default": "'[]'"
6820
+ },
6821
+ "is_enabled": {
6822
+ "name": "is_enabled",
6823
+ "type": "boolean",
6824
+ "primaryKey": false,
6825
+ "notNull": true,
6826
+ "default": true
6827
+ },
6828
+ "updated_by_id": {
6829
+ "name": "updated_by_id",
6830
+ "type": "text",
6831
+ "primaryKey": false,
6832
+ "notNull": false
6833
+ },
6834
+ "created_at": {
6835
+ "name": "created_at",
6836
+ "type": "timestamp",
6837
+ "primaryKey": false,
6838
+ "notNull": true,
6839
+ "default": "now()"
6840
+ },
6841
+ "updated_at": {
6842
+ "name": "updated_at",
6843
+ "type": "timestamp",
6844
+ "primaryKey": false,
6845
+ "notNull": true,
6846
+ "default": "now()"
6847
+ }
6848
+ },
6849
+ "indexes": {},
6850
+ "foreignKeys": {
6851
+ "security_policies_repository_id_repositories_id_fk": {
6852
+ "name": "security_policies_repository_id_repositories_id_fk",
6853
+ "tableFrom": "security_policies",
6854
+ "tableTo": "repositories",
6855
+ "columnsFrom": [
6856
+ "repository_id"
6857
+ ],
6858
+ "columnsTo": [
6859
+ "id"
6860
+ ],
6861
+ "onDelete": "cascade",
6862
+ "onUpdate": "no action"
6863
+ },
6864
+ "security_policies_updated_by_id_users_id_fk": {
6865
+ "name": "security_policies_updated_by_id_users_id_fk",
6866
+ "tableFrom": "security_policies",
6867
+ "tableTo": "users",
6868
+ "columnsFrom": [
6869
+ "updated_by_id"
6870
+ ],
6871
+ "columnsTo": [
6872
+ "id"
6873
+ ],
6874
+ "onDelete": "no action",
6875
+ "onUpdate": "no action"
6876
+ }
6877
+ },
6878
+ "compositePrimaryKeys": {},
6879
+ "uniqueConstraints": {},
6880
+ "policies": {},
6881
+ "checkConstraints": {},
6882
+ "isRLSEnabled": false
6883
+ },
6884
+ "public.pipeline_runners": {
6885
+ "name": "pipeline_runners",
6886
+ "schema": "",
6887
+ "columns": {
6888
+ "id": {
6889
+ "name": "id",
6890
+ "type": "text",
6891
+ "primaryKey": true,
6892
+ "notNull": true
6893
+ },
6894
+ "repository_id": {
6895
+ "name": "repository_id",
6896
+ "type": "text",
6897
+ "primaryKey": false,
6898
+ "notNull": false
6899
+ },
6900
+ "token": {
6901
+ "name": "token",
6902
+ "type": "text",
6903
+ "primaryKey": false,
6904
+ "notNull": true
6905
+ },
6906
+ "name": {
6907
+ "name": "name",
6908
+ "type": "text",
6909
+ "primaryKey": false,
6910
+ "notNull": true
6911
+ },
6912
+ "os": {
6913
+ "name": "os",
6914
+ "type": "text",
6915
+ "primaryKey": false,
6916
+ "notNull": false
6917
+ },
6918
+ "arch": {
6919
+ "name": "arch",
6920
+ "type": "text",
6921
+ "primaryKey": false,
6922
+ "notNull": false
6923
+ },
6924
+ "version": {
6925
+ "name": "version",
6926
+ "type": "text",
6927
+ "primaryKey": false,
6928
+ "notNull": false
6929
+ },
6930
+ "status": {
6931
+ "name": "status",
6932
+ "type": "text",
6933
+ "primaryKey": false,
6934
+ "notNull": true,
6935
+ "default": "'offline'"
6936
+ },
6937
+ "last_seen_at": {
6938
+ "name": "last_seen_at",
6939
+ "type": "timestamp",
6940
+ "primaryKey": false,
6941
+ "notNull": false
6942
+ },
6943
+ "created_at": {
6944
+ "name": "created_at",
6945
+ "type": "timestamp",
6946
+ "primaryKey": false,
6947
+ "notNull": true,
6948
+ "default": "now()"
6949
+ }
6950
+ },
6951
+ "indexes": {},
6952
+ "foreignKeys": {
6953
+ "pipeline_runners_repository_id_repositories_id_fk": {
6954
+ "name": "pipeline_runners_repository_id_repositories_id_fk",
6955
+ "tableFrom": "pipeline_runners",
6956
+ "tableTo": "repositories",
6957
+ "columnsFrom": [
6958
+ "repository_id"
6959
+ ],
6960
+ "columnsTo": [
6961
+ "id"
6962
+ ],
6963
+ "onDelete": "cascade",
6964
+ "onUpdate": "no action"
6965
+ }
6966
+ },
6967
+ "compositePrimaryKeys": {},
6968
+ "uniqueConstraints": {},
6969
+ "policies": {},
6970
+ "checkConstraints": {},
6971
+ "isRLSEnabled": false
6972
+ },
6973
+ "public.pr_stack_entries": {
6974
+ "name": "pr_stack_entries",
6975
+ "schema": "",
6976
+ "columns": {
6977
+ "id": {
6978
+ "name": "id",
6979
+ "type": "text",
6980
+ "primaryKey": true,
6981
+ "notNull": true
6982
+ },
6983
+ "stack_id": {
6984
+ "name": "stack_id",
6985
+ "type": "text",
6986
+ "primaryKey": false,
6987
+ "notNull": true
6988
+ },
6989
+ "pull_request_id": {
6990
+ "name": "pull_request_id",
6991
+ "type": "text",
6992
+ "primaryKey": false,
6993
+ "notNull": true
6994
+ },
6995
+ "stack_order": {
6996
+ "name": "stack_order",
6997
+ "type": "integer",
6998
+ "primaryKey": false,
6999
+ "notNull": true
7000
+ },
7001
+ "parent_pr_id": {
7002
+ "name": "parent_pr_id",
7003
+ "type": "text",
7004
+ "primaryKey": false,
7005
+ "notNull": false
7006
+ },
7007
+ "created_at": {
7008
+ "name": "created_at",
7009
+ "type": "timestamp",
7010
+ "primaryKey": false,
7011
+ "notNull": true,
7012
+ "default": "now()"
7013
+ }
7014
+ },
7015
+ "indexes": {
7016
+ "pr_stack_entries_stack_idx": {
7017
+ "name": "pr_stack_entries_stack_idx",
7018
+ "columns": [
7019
+ {
7020
+ "expression": "stack_id",
7021
+ "isExpression": false,
7022
+ "asc": true,
7023
+ "nulls": "last"
7024
+ }
7025
+ ],
7026
+ "isUnique": false,
7027
+ "concurrently": false,
7028
+ "method": "btree",
7029
+ "with": {}
7030
+ },
7031
+ "pr_stack_entries_pr_idx": {
7032
+ "name": "pr_stack_entries_pr_idx",
7033
+ "columns": [
7034
+ {
7035
+ "expression": "pull_request_id",
7036
+ "isExpression": false,
7037
+ "asc": true,
7038
+ "nulls": "last"
7039
+ }
7040
+ ],
7041
+ "isUnique": false,
7042
+ "concurrently": false,
7043
+ "method": "btree",
7044
+ "with": {}
7045
+ },
7046
+ "pr_stack_entries_parent_pr_idx": {
7047
+ "name": "pr_stack_entries_parent_pr_idx",
7048
+ "columns": [
7049
+ {
7050
+ "expression": "parent_pr_id",
7051
+ "isExpression": false,
7052
+ "asc": true,
7053
+ "nulls": "last"
7054
+ }
7055
+ ],
7056
+ "isUnique": false,
7057
+ "concurrently": false,
7058
+ "method": "btree",
7059
+ "with": {}
7060
+ }
7061
+ },
7062
+ "foreignKeys": {
7063
+ "pr_stack_entries_stack_id_pr_stacks_id_fk": {
7064
+ "name": "pr_stack_entries_stack_id_pr_stacks_id_fk",
7065
+ "tableFrom": "pr_stack_entries",
7066
+ "tableTo": "pr_stacks",
7067
+ "columnsFrom": [
7068
+ "stack_id"
7069
+ ],
7070
+ "columnsTo": [
7071
+ "id"
7072
+ ],
7073
+ "onDelete": "cascade",
7074
+ "onUpdate": "no action"
7075
+ },
7076
+ "pr_stack_entries_pull_request_id_pull_requests_id_fk": {
7077
+ "name": "pr_stack_entries_pull_request_id_pull_requests_id_fk",
7078
+ "tableFrom": "pr_stack_entries",
7079
+ "tableTo": "pull_requests",
7080
+ "columnsFrom": [
7081
+ "pull_request_id"
7082
+ ],
7083
+ "columnsTo": [
7084
+ "id"
7085
+ ],
7086
+ "onDelete": "cascade",
7087
+ "onUpdate": "no action"
7088
+ },
7089
+ "pr_stack_entries_parent_pr_id_pull_requests_id_fk": {
7090
+ "name": "pr_stack_entries_parent_pr_id_pull_requests_id_fk",
7091
+ "tableFrom": "pr_stack_entries",
7092
+ "tableTo": "pull_requests",
7093
+ "columnsFrom": [
7094
+ "parent_pr_id"
7095
+ ],
7096
+ "columnsTo": [
7097
+ "id"
7098
+ ],
7099
+ "onDelete": "no action",
7100
+ "onUpdate": "no action"
7101
+ }
7102
+ },
7103
+ "compositePrimaryKeys": {},
7104
+ "uniqueConstraints": {},
7105
+ "policies": {},
7106
+ "checkConstraints": {},
7107
+ "isRLSEnabled": false
7108
+ },
7109
+ "public.pr_stacks": {
7110
+ "name": "pr_stacks",
7111
+ "schema": "",
7112
+ "columns": {
7113
+ "id": {
7114
+ "name": "id",
7115
+ "type": "text",
7116
+ "primaryKey": true,
7117
+ "notNull": true
7118
+ },
7119
+ "repository_id": {
7120
+ "name": "repository_id",
7121
+ "type": "text",
7122
+ "primaryKey": false,
7123
+ "notNull": true
7124
+ },
7125
+ "name": {
7126
+ "name": "name",
7127
+ "type": "text",
7128
+ "primaryKey": false,
7129
+ "notNull": false
7130
+ },
7131
+ "base_branch": {
7132
+ "name": "base_branch",
7133
+ "type": "text",
7134
+ "primaryKey": false,
7135
+ "notNull": true
7136
+ },
7137
+ "status": {
7138
+ "name": "status",
7139
+ "type": "text",
7140
+ "primaryKey": false,
7141
+ "notNull": true,
7142
+ "default": "'active'"
7143
+ },
7144
+ "created_by_id": {
7145
+ "name": "created_by_id",
7146
+ "type": "text",
7147
+ "primaryKey": false,
7148
+ "notNull": true
7149
+ },
7150
+ "created_at": {
7151
+ "name": "created_at",
7152
+ "type": "timestamp",
7153
+ "primaryKey": false,
7154
+ "notNull": true,
7155
+ "default": "now()"
7156
+ },
7157
+ "updated_at": {
7158
+ "name": "updated_at",
7159
+ "type": "timestamp",
7160
+ "primaryKey": false,
7161
+ "notNull": true,
7162
+ "default": "now()"
7163
+ }
7164
+ },
7165
+ "indexes": {
7166
+ "pr_stacks_repo_idx": {
7167
+ "name": "pr_stacks_repo_idx",
7168
+ "columns": [
7169
+ {
7170
+ "expression": "repository_id",
7171
+ "isExpression": false,
7172
+ "asc": true,
7173
+ "nulls": "last"
7174
+ }
7175
+ ],
7176
+ "isUnique": false,
7177
+ "concurrently": false,
7178
+ "method": "btree",
7179
+ "with": {}
7180
+ }
7181
+ },
7182
+ "foreignKeys": {
7183
+ "pr_stacks_repository_id_repositories_id_fk": {
7184
+ "name": "pr_stacks_repository_id_repositories_id_fk",
7185
+ "tableFrom": "pr_stacks",
7186
+ "tableTo": "repositories",
7187
+ "columnsFrom": [
7188
+ "repository_id"
7189
+ ],
7190
+ "columnsTo": [
7191
+ "id"
7192
+ ],
7193
+ "onDelete": "cascade",
7194
+ "onUpdate": "no action"
7195
+ },
7196
+ "pr_stacks_created_by_id_users_id_fk": {
7197
+ "name": "pr_stacks_created_by_id_users_id_fk",
7198
+ "tableFrom": "pr_stacks",
7199
+ "tableTo": "users",
7200
+ "columnsFrom": [
7201
+ "created_by_id"
7202
+ ],
7203
+ "columnsTo": [
7204
+ "id"
7205
+ ],
7206
+ "onDelete": "no action",
7207
+ "onUpdate": "no action"
7208
+ }
7209
+ },
7210
+ "compositePrimaryKeys": {},
7211
+ "uniqueConstraints": {},
7212
+ "policies": {},
7213
+ "checkConstraints": {},
7214
+ "isRLSEnabled": false
7215
+ },
7216
+ "public.merge_queue": {
7217
+ "name": "merge_queue",
7218
+ "schema": "",
7219
+ "columns": {
7220
+ "id": {
7221
+ "name": "id",
7222
+ "type": "text",
7223
+ "primaryKey": true,
7224
+ "notNull": true
7225
+ },
7226
+ "repository_id": {
7227
+ "name": "repository_id",
7228
+ "type": "text",
7229
+ "primaryKey": false,
7230
+ "notNull": true
7231
+ },
7232
+ "pull_request_id": {
7233
+ "name": "pull_request_id",
7234
+ "type": "text",
7235
+ "primaryKey": false,
7236
+ "notNull": true
7237
+ },
7238
+ "stack_id": {
7239
+ "name": "stack_id",
7240
+ "type": "text",
7241
+ "primaryKey": false,
7242
+ "notNull": false
7243
+ },
7244
+ "status": {
7245
+ "name": "status",
7246
+ "type": "text",
7247
+ "primaryKey": false,
7248
+ "notNull": true,
7249
+ "default": "'pending'"
7250
+ },
7251
+ "priority": {
7252
+ "name": "priority",
7253
+ "type": "integer",
7254
+ "primaryKey": false,
7255
+ "notNull": false,
7256
+ "default": 0
7257
+ },
7258
+ "position": {
7259
+ "name": "position",
7260
+ "type": "integer",
7261
+ "primaryKey": false,
7262
+ "notNull": false,
7263
+ "default": 0
7264
+ },
7265
+ "ci_status": {
7266
+ "name": "ci_status",
7267
+ "type": "text",
7268
+ "primaryKey": false,
7269
+ "notNull": false,
7270
+ "default": "'pending'"
7271
+ },
7272
+ "merge_method": {
7273
+ "name": "merge_method",
7274
+ "type": "text",
7275
+ "primaryKey": false,
7276
+ "notNull": false,
7277
+ "default": "'merge'"
7278
+ },
7279
+ "delete_on_merge": {
7280
+ "name": "delete_on_merge",
7281
+ "type": "boolean",
7282
+ "primaryKey": false,
7283
+ "notNull": false,
7284
+ "default": true
7285
+ },
7286
+ "execution_branch": {
7287
+ "name": "execution_branch",
7288
+ "type": "text",
7289
+ "primaryKey": false,
7290
+ "notNull": false
7291
+ },
7292
+ "attempt_count": {
7293
+ "name": "attempt_count",
7294
+ "type": "integer",
7295
+ "primaryKey": false,
7296
+ "notNull": false,
7297
+ "default": 0
7298
+ },
7299
+ "last_attempt_at": {
7300
+ "name": "last_attempt_at",
7301
+ "type": "timestamp",
7302
+ "primaryKey": false,
7303
+ "notNull": false
7304
+ },
7305
+ "added_by_id": {
7306
+ "name": "added_by_id",
7307
+ "type": "text",
7308
+ "primaryKey": false,
7309
+ "notNull": false
7310
+ },
7311
+ "added_at": {
7312
+ "name": "added_at",
7313
+ "type": "timestamp",
7314
+ "primaryKey": false,
7315
+ "notNull": true,
7316
+ "default": "now()"
7317
+ },
7318
+ "queued_at": {
7319
+ "name": "queued_at",
7320
+ "type": "timestamp",
7321
+ "primaryKey": false,
7322
+ "notNull": true,
7323
+ "default": "now()"
7324
+ },
7325
+ "started_at": {
7326
+ "name": "started_at",
7327
+ "type": "timestamp",
7328
+ "primaryKey": false,
7329
+ "notNull": false
7330
+ },
7331
+ "completed_at": {
7332
+ "name": "completed_at",
7333
+ "type": "timestamp",
7334
+ "primaryKey": false,
7335
+ "notNull": false
7336
+ },
7337
+ "failure_reason": {
7338
+ "name": "failure_reason",
7339
+ "type": "text",
7340
+ "primaryKey": false,
7341
+ "notNull": false
7342
+ }
7343
+ },
7344
+ "indexes": {
7345
+ "merge_queue_repo_idx": {
7346
+ "name": "merge_queue_repo_idx",
7347
+ "columns": [
7348
+ {
7349
+ "expression": "repository_id",
7350
+ "isExpression": false,
7351
+ "asc": true,
7352
+ "nulls": "last"
7353
+ }
7354
+ ],
7355
+ "isUnique": false,
7356
+ "concurrently": false,
7357
+ "method": "btree",
7358
+ "with": {}
7359
+ },
7360
+ "merge_queue_status_idx": {
7361
+ "name": "merge_queue_status_idx",
7362
+ "columns": [
7363
+ {
7364
+ "expression": "status",
7365
+ "isExpression": false,
7366
+ "asc": true,
7367
+ "nulls": "last"
7368
+ }
7369
+ ],
7370
+ "isUnique": false,
7371
+ "concurrently": false,
7372
+ "method": "btree",
7373
+ "with": {}
7374
+ },
7375
+ "merge_queue_pr_idx": {
7376
+ "name": "merge_queue_pr_idx",
7377
+ "columns": [
7378
+ {
7379
+ "expression": "pull_request_id",
7380
+ "isExpression": false,
7381
+ "asc": true,
7382
+ "nulls": "last"
7383
+ }
7384
+ ],
7385
+ "isUnique": false,
7386
+ "concurrently": false,
7387
+ "method": "btree",
7388
+ "with": {}
7389
+ }
7390
+ },
7391
+ "foreignKeys": {
7392
+ "merge_queue_repository_id_repositories_id_fk": {
7393
+ "name": "merge_queue_repository_id_repositories_id_fk",
7394
+ "tableFrom": "merge_queue",
7395
+ "tableTo": "repositories",
7396
+ "columnsFrom": [
7397
+ "repository_id"
7398
+ ],
7399
+ "columnsTo": [
7400
+ "id"
7401
+ ],
7402
+ "onDelete": "cascade",
7403
+ "onUpdate": "no action"
7404
+ },
7405
+ "merge_queue_pull_request_id_pull_requests_id_fk": {
7406
+ "name": "merge_queue_pull_request_id_pull_requests_id_fk",
7407
+ "tableFrom": "merge_queue",
7408
+ "tableTo": "pull_requests",
7409
+ "columnsFrom": [
7410
+ "pull_request_id"
7411
+ ],
7412
+ "columnsTo": [
7413
+ "id"
7414
+ ],
7415
+ "onDelete": "cascade",
7416
+ "onUpdate": "no action"
7417
+ },
7418
+ "merge_queue_added_by_id_users_id_fk": {
7419
+ "name": "merge_queue_added_by_id_users_id_fk",
7420
+ "tableFrom": "merge_queue",
7421
+ "tableTo": "users",
7422
+ "columnsFrom": [
7423
+ "added_by_id"
7424
+ ],
7425
+ "columnsTo": [
7426
+ "id"
7427
+ ],
7428
+ "onDelete": "no action",
7429
+ "onUpdate": "no action"
7430
+ }
7431
+ },
7432
+ "compositePrimaryKeys": {},
7433
+ "uniqueConstraints": {},
7434
+ "policies": {},
7435
+ "checkConstraints": {},
7436
+ "isRLSEnabled": false
7437
+ },
7438
+ "public.merge_queue_speculative_runs": {
7439
+ "name": "merge_queue_speculative_runs",
7440
+ "schema": "",
7441
+ "columns": {
7442
+ "id": {
7443
+ "name": "id",
7444
+ "type": "text",
7445
+ "primaryKey": true,
7446
+ "notNull": true
7447
+ },
7448
+ "repository_id": {
7449
+ "name": "repository_id",
7450
+ "type": "text",
7451
+ "primaryKey": false,
7452
+ "notNull": true
7453
+ },
7454
+ "pull_request_ids": {
7455
+ "name": "pull_request_ids",
7456
+ "type": "text",
7457
+ "primaryKey": false,
7458
+ "notNull": true
7459
+ },
7460
+ "branch_name": {
7461
+ "name": "branch_name",
7462
+ "type": "text",
7463
+ "primaryKey": false,
7464
+ "notNull": true
7465
+ },
7466
+ "base_branch": {
7467
+ "name": "base_branch",
7468
+ "type": "text",
7469
+ "primaryKey": false,
7470
+ "notNull": true
7471
+ },
7472
+ "status": {
7473
+ "name": "status",
7474
+ "type": "text",
7475
+ "primaryKey": false,
7476
+ "notNull": true,
7477
+ "default": "'pending'"
7478
+ },
7479
+ "ci_url": {
7480
+ "name": "ci_url",
7481
+ "type": "text",
7482
+ "primaryKey": false,
7483
+ "notNull": false
7484
+ },
7485
+ "created_at": {
7486
+ "name": "created_at",
7487
+ "type": "timestamp",
7488
+ "primaryKey": false,
7489
+ "notNull": true,
7490
+ "default": "now()"
7491
+ },
7492
+ "started_at": {
7493
+ "name": "started_at",
7494
+ "type": "timestamp",
7495
+ "primaryKey": false,
7496
+ "notNull": false
7497
+ },
7498
+ "completed_at": {
7499
+ "name": "completed_at",
7500
+ "type": "timestamp",
7501
+ "primaryKey": false,
7502
+ "notNull": false
7503
+ },
7504
+ "failure_reason": {
7505
+ "name": "failure_reason",
7506
+ "type": "text",
7507
+ "primaryKey": false,
7508
+ "notNull": false
7509
+ },
7510
+ "commit_sha": {
7511
+ "name": "commit_sha",
7512
+ "type": "text",
7513
+ "primaryKey": false,
7514
+ "notNull": false
7515
+ }
7516
+ },
7517
+ "indexes": {},
7518
+ "foreignKeys": {
7519
+ "merge_queue_speculative_runs_repository_id_repositories_id_fk": {
7520
+ "name": "merge_queue_speculative_runs_repository_id_repositories_id_fk",
7521
+ "tableFrom": "merge_queue_speculative_runs",
7522
+ "tableTo": "repositories",
7523
+ "columnsFrom": [
7524
+ "repository_id"
7525
+ ],
7526
+ "columnsTo": [
7527
+ "id"
7528
+ ],
7529
+ "onDelete": "cascade",
7530
+ "onUpdate": "no action"
7531
+ }
7532
+ },
7533
+ "compositePrimaryKeys": {},
7534
+ "uniqueConstraints": {},
7535
+ "policies": {},
7536
+ "checkConstraints": {},
7537
+ "isRLSEnabled": false
7538
+ },
7539
+ "public.ai_review_suggestions": {
7540
+ "name": "ai_review_suggestions",
7541
+ "schema": "",
7542
+ "columns": {
7543
+ "id": {
7544
+ "name": "id",
7545
+ "type": "text",
7546
+ "primaryKey": true,
7547
+ "notNull": true
7548
+ },
7549
+ "ai_review_id": {
7550
+ "name": "ai_review_id",
7551
+ "type": "text",
7552
+ "primaryKey": false,
7553
+ "notNull": true
7554
+ },
7555
+ "path": {
7556
+ "name": "path",
7557
+ "type": "text",
7558
+ "primaryKey": false,
7559
+ "notNull": true
7560
+ },
7561
+ "line": {
7562
+ "name": "line",
7563
+ "type": "integer",
7564
+ "primaryKey": false,
7565
+ "notNull": false
7566
+ },
7567
+ "end_line": {
7568
+ "name": "end_line",
7569
+ "type": "integer",
7570
+ "primaryKey": false,
7571
+ "notNull": false
7572
+ },
7573
+ "severity": {
7574
+ "name": "severity",
7575
+ "type": "text",
7576
+ "primaryKey": false,
7577
+ "notNull": true
7578
+ },
7579
+ "type": {
7580
+ "name": "type",
7581
+ "type": "text",
7582
+ "primaryKey": false,
7583
+ "notNull": true
7584
+ },
7585
+ "category": {
7586
+ "name": "category",
7587
+ "type": "text",
7588
+ "primaryKey": false,
7589
+ "notNull": false
7590
+ },
7591
+ "title": {
7592
+ "name": "title",
7593
+ "type": "text",
7594
+ "primaryKey": false,
7595
+ "notNull": true
7596
+ },
7597
+ "message": {
7598
+ "name": "message",
7599
+ "type": "text",
7600
+ "primaryKey": false,
7601
+ "notNull": true
7602
+ },
7603
+ "suggested_fix": {
7604
+ "name": "suggested_fix",
7605
+ "type": "text",
7606
+ "primaryKey": false,
7607
+ "notNull": false
7608
+ },
7609
+ "explanation": {
7610
+ "name": "explanation",
7611
+ "type": "text",
7612
+ "primaryKey": false,
7613
+ "notNull": false
7614
+ },
7615
+ "is_applied": {
7616
+ "name": "is_applied",
7617
+ "type": "boolean",
7618
+ "primaryKey": false,
7619
+ "notNull": false,
7620
+ "default": false
7621
+ },
7622
+ "is_dismissed": {
7623
+ "name": "is_dismissed",
7624
+ "type": "boolean",
7625
+ "primaryKey": false,
7626
+ "notNull": false,
7627
+ "default": false
7628
+ },
7629
+ "applied_at": {
7630
+ "name": "applied_at",
7631
+ "type": "timestamp",
7632
+ "primaryKey": false,
7633
+ "notNull": false
7634
+ },
7635
+ "applied_by_id": {
7636
+ "name": "applied_by_id",
7637
+ "type": "text",
7638
+ "primaryKey": false,
7639
+ "notNull": false
7640
+ },
7641
+ "dismissed_at": {
7642
+ "name": "dismissed_at",
7643
+ "type": "timestamp",
7644
+ "primaryKey": false,
7645
+ "notNull": false
7646
+ },
7647
+ "dismissed_by_id": {
7648
+ "name": "dismissed_by_id",
7649
+ "type": "text",
7650
+ "primaryKey": false,
7651
+ "notNull": false
7652
+ },
7653
+ "dismiss_reason": {
7654
+ "name": "dismiss_reason",
7655
+ "type": "text",
7656
+ "primaryKey": false,
7657
+ "notNull": false
7658
+ },
7659
+ "created_at": {
7660
+ "name": "created_at",
7661
+ "type": "timestamp",
7662
+ "primaryKey": false,
7663
+ "notNull": true,
7664
+ "default": "now()"
7665
+ }
7666
+ },
7667
+ "indexes": {},
7668
+ "foreignKeys": {
7669
+ "ai_review_suggestions_ai_review_id_ai_reviews_id_fk": {
7670
+ "name": "ai_review_suggestions_ai_review_id_ai_reviews_id_fk",
7671
+ "tableFrom": "ai_review_suggestions",
7672
+ "tableTo": "ai_reviews",
7673
+ "columnsFrom": [
7674
+ "ai_review_id"
7675
+ ],
7676
+ "columnsTo": [
7677
+ "id"
7678
+ ],
7679
+ "onDelete": "cascade",
7680
+ "onUpdate": "no action"
7681
+ },
7682
+ "ai_review_suggestions_applied_by_id_users_id_fk": {
7683
+ "name": "ai_review_suggestions_applied_by_id_users_id_fk",
7684
+ "tableFrom": "ai_review_suggestions",
7685
+ "tableTo": "users",
7686
+ "columnsFrom": [
7687
+ "applied_by_id"
7688
+ ],
7689
+ "columnsTo": [
7690
+ "id"
7691
+ ],
7692
+ "onDelete": "no action",
7693
+ "onUpdate": "no action"
7694
+ },
7695
+ "ai_review_suggestions_dismissed_by_id_users_id_fk": {
7696
+ "name": "ai_review_suggestions_dismissed_by_id_users_id_fk",
7697
+ "tableFrom": "ai_review_suggestions",
7698
+ "tableTo": "users",
7699
+ "columnsFrom": [
7700
+ "dismissed_by_id"
7701
+ ],
7702
+ "columnsTo": [
7703
+ "id"
7704
+ ],
7705
+ "onDelete": "no action",
7706
+ "onUpdate": "no action"
7707
+ }
7708
+ },
7709
+ "compositePrimaryKeys": {},
7710
+ "uniqueConstraints": {},
7711
+ "policies": {},
7712
+ "checkConstraints": {},
7713
+ "isRLSEnabled": false
7714
+ },
7715
+ "public.ai_reviews": {
7716
+ "name": "ai_reviews",
7717
+ "schema": "",
7718
+ "columns": {
7719
+ "id": {
7720
+ "name": "id",
7721
+ "type": "text",
7722
+ "primaryKey": true,
7723
+ "notNull": true
7724
+ },
7725
+ "pull_request_id": {
7726
+ "name": "pull_request_id",
7727
+ "type": "text",
7728
+ "primaryKey": false,
7729
+ "notNull": true
7730
+ },
7731
+ "status": {
7732
+ "name": "status",
7733
+ "type": "text",
7734
+ "primaryKey": false,
7735
+ "notNull": true,
7736
+ "default": "'pending'"
7737
+ },
7738
+ "model": {
7739
+ "name": "model",
7740
+ "type": "text",
7741
+ "primaryKey": false,
7742
+ "notNull": true
7743
+ },
7744
+ "provider": {
7745
+ "name": "provider",
7746
+ "type": "text",
7747
+ "primaryKey": false,
7748
+ "notNull": true
7749
+ },
7750
+ "stack_context": {
7751
+ "name": "stack_context",
7752
+ "type": "text",
7753
+ "primaryKey": false,
7754
+ "notNull": false
7755
+ },
7756
+ "includes_stack_context": {
7757
+ "name": "includes_stack_context",
7758
+ "type": "boolean",
7759
+ "primaryKey": false,
7760
+ "notNull": false,
7761
+ "default": false
7762
+ },
7763
+ "summary": {
7764
+ "name": "summary",
7765
+ "type": "text",
7766
+ "primaryKey": false,
7767
+ "notNull": false
7768
+ },
7769
+ "overall_severity": {
7770
+ "name": "overall_severity",
7771
+ "type": "text",
7772
+ "primaryKey": false,
7773
+ "notNull": false
7774
+ },
7775
+ "suggestions_count": {
7776
+ "name": "suggestions_count",
7777
+ "type": "integer",
7778
+ "primaryKey": false,
7779
+ "notNull": false,
7780
+ "default": 0
7781
+ },
7782
+ "tokens_used": {
7783
+ "name": "tokens_used",
7784
+ "type": "integer",
7785
+ "primaryKey": false,
7786
+ "notNull": false
7787
+ },
7788
+ "prompt_tokens": {
7789
+ "name": "prompt_tokens",
7790
+ "type": "integer",
7791
+ "primaryKey": false,
7792
+ "notNull": false
7793
+ },
7794
+ "completion_tokens": {
7795
+ "name": "completion_tokens",
7796
+ "type": "integer",
7797
+ "primaryKey": false,
7798
+ "notNull": false
7799
+ },
7800
+ "cost_cents": {
7801
+ "name": "cost_cents",
7802
+ "type": "integer",
7803
+ "primaryKey": false,
7804
+ "notNull": false
7805
+ },
7806
+ "raw_response": {
7807
+ "name": "raw_response",
7808
+ "type": "text",
7809
+ "primaryKey": false,
7810
+ "notNull": false
7811
+ },
7812
+ "triggered_by_id": {
7813
+ "name": "triggered_by_id",
7814
+ "type": "text",
7815
+ "primaryKey": false,
7816
+ "notNull": false
7817
+ },
7818
+ "created_at": {
7819
+ "name": "created_at",
7820
+ "type": "timestamp",
7821
+ "primaryKey": false,
7822
+ "notNull": true,
7823
+ "default": "now()"
7824
+ },
7825
+ "started_at": {
7826
+ "name": "started_at",
7827
+ "type": "timestamp",
7828
+ "primaryKey": false,
7829
+ "notNull": false
7830
+ },
7831
+ "completed_at": {
7832
+ "name": "completed_at",
7833
+ "type": "timestamp",
7834
+ "primaryKey": false,
7835
+ "notNull": false
7836
+ },
7837
+ "error_message": {
7838
+ "name": "error_message",
7839
+ "type": "text",
7840
+ "primaryKey": false,
7841
+ "notNull": false
7842
+ }
7843
+ },
7844
+ "indexes": {
7845
+ "ai_reviews_pull_request_id_idx": {
7846
+ "name": "ai_reviews_pull_request_id_idx",
7847
+ "columns": [
7848
+ {
7849
+ "expression": "pull_request_id",
7850
+ "isExpression": false,
7851
+ "asc": true,
7852
+ "nulls": "last"
7853
+ }
7854
+ ],
7855
+ "isUnique": false,
7856
+ "concurrently": false,
7857
+ "method": "btree",
7858
+ "with": {}
7859
+ }
7860
+ },
7861
+ "foreignKeys": {
7862
+ "ai_reviews_pull_request_id_pull_requests_id_fk": {
7863
+ "name": "ai_reviews_pull_request_id_pull_requests_id_fk",
7864
+ "tableFrom": "ai_reviews",
7865
+ "tableTo": "pull_requests",
7866
+ "columnsFrom": [
7867
+ "pull_request_id"
7868
+ ],
7869
+ "columnsTo": [
7870
+ "id"
7871
+ ],
7872
+ "onDelete": "cascade",
7873
+ "onUpdate": "no action"
7874
+ },
7875
+ "ai_reviews_triggered_by_id_users_id_fk": {
7876
+ "name": "ai_reviews_triggered_by_id_users_id_fk",
7877
+ "tableFrom": "ai_reviews",
7878
+ "tableTo": "users",
7879
+ "columnsFrom": [
7880
+ "triggered_by_id"
7881
+ ],
7882
+ "columnsTo": [
7883
+ "id"
7884
+ ],
7885
+ "onDelete": "no action",
7886
+ "onUpdate": "no action"
7887
+ }
7888
+ },
7889
+ "compositePrimaryKeys": {},
7890
+ "uniqueConstraints": {},
7891
+ "policies": {},
7892
+ "checkConstraints": {},
7893
+ "isRLSEnabled": false
7894
+ },
7895
+ "public.pr_metrics": {
7896
+ "name": "pr_metrics",
7897
+ "schema": "",
7898
+ "columns": {
7899
+ "id": {
7900
+ "name": "id",
7901
+ "type": "text",
7902
+ "primaryKey": true,
7903
+ "notNull": true
7904
+ },
7905
+ "pull_request_id": {
7906
+ "name": "pull_request_id",
7907
+ "type": "text",
7908
+ "primaryKey": false,
7909
+ "notNull": true
7910
+ },
7911
+ "repository_id": {
7912
+ "name": "repository_id",
7913
+ "type": "text",
7914
+ "primaryKey": false,
7915
+ "notNull": true
7916
+ },
7917
+ "author_id": {
7918
+ "name": "author_id",
7919
+ "type": "text",
7920
+ "primaryKey": false,
7921
+ "notNull": true
7922
+ },
7923
+ "time_to_first_review": {
7924
+ "name": "time_to_first_review",
7925
+ "type": "integer",
7926
+ "primaryKey": false,
7927
+ "notNull": false
7928
+ },
7929
+ "time_to_approval": {
7930
+ "name": "time_to_approval",
7931
+ "type": "integer",
7932
+ "primaryKey": false,
7933
+ "notNull": false
7934
+ },
7935
+ "time_to_merge": {
7936
+ "name": "time_to_merge",
7937
+ "type": "integer",
7938
+ "primaryKey": false,
7939
+ "notNull": false
7940
+ },
7941
+ "total_cycle_time": {
7942
+ "name": "total_cycle_time",
7943
+ "type": "integer",
7944
+ "primaryKey": false,
7945
+ "notNull": false
7946
+ },
7947
+ "review_rounds": {
7948
+ "name": "review_rounds",
7949
+ "type": "integer",
7950
+ "primaryKey": false,
7951
+ "notNull": false,
7952
+ "default": 1
7953
+ },
7954
+ "reviewers_count": {
7955
+ "name": "reviewers_count",
7956
+ "type": "integer",
7957
+ "primaryKey": false,
7958
+ "notNull": false,
7959
+ "default": 0
7960
+ },
7961
+ "comments_count": {
7962
+ "name": "comments_count",
7963
+ "type": "integer",
7964
+ "primaryKey": false,
7965
+ "notNull": false,
7966
+ "default": 0
7967
+ },
7968
+ "changes_requested_count": {
7969
+ "name": "changes_requested_count",
7970
+ "type": "integer",
7971
+ "primaryKey": false,
7972
+ "notNull": false,
7973
+ "default": 0
7974
+ },
7975
+ "lines_added": {
7976
+ "name": "lines_added",
7977
+ "type": "integer",
7978
+ "primaryKey": false,
7979
+ "notNull": false,
7980
+ "default": 0
7981
+ },
7982
+ "lines_removed": {
7983
+ "name": "lines_removed",
7984
+ "type": "integer",
7985
+ "primaryKey": false,
7986
+ "notNull": false,
7987
+ "default": 0
7988
+ },
7989
+ "files_changed": {
7990
+ "name": "files_changed",
7991
+ "type": "integer",
7992
+ "primaryKey": false,
7993
+ "notNull": false,
7994
+ "default": 0
7995
+ },
7996
+ "commits": {
7997
+ "name": "commits",
7998
+ "type": "integer",
7999
+ "primaryKey": false,
8000
+ "notNull": false,
8001
+ "default": 1
8002
+ },
8003
+ "is_stacked": {
8004
+ "name": "is_stacked",
8005
+ "type": "boolean",
8006
+ "primaryKey": false,
8007
+ "notNull": false,
8008
+ "default": false
8009
+ },
8010
+ "stack_position": {
8011
+ "name": "stack_position",
8012
+ "type": "integer",
8013
+ "primaryKey": false,
8014
+ "notNull": false
8015
+ },
8016
+ "pr_created_at": {
8017
+ "name": "pr_created_at",
8018
+ "type": "timestamp",
8019
+ "primaryKey": false,
8020
+ "notNull": false
8021
+ },
8022
+ "first_review_at": {
8023
+ "name": "first_review_at",
8024
+ "type": "timestamp",
8025
+ "primaryKey": false,
8026
+ "notNull": false
8027
+ },
8028
+ "approved_at": {
8029
+ "name": "approved_at",
8030
+ "type": "timestamp",
8031
+ "primaryKey": false,
8032
+ "notNull": false
8033
+ },
8034
+ "merged_at": {
8035
+ "name": "merged_at",
8036
+ "type": "timestamp",
8037
+ "primaryKey": false,
8038
+ "notNull": false
8039
+ },
8040
+ "created_at": {
8041
+ "name": "created_at",
8042
+ "type": "timestamp",
8043
+ "primaryKey": false,
8044
+ "notNull": true,
8045
+ "default": "now()"
8046
+ },
8047
+ "updated_at": {
8048
+ "name": "updated_at",
8049
+ "type": "timestamp",
8050
+ "primaryKey": false,
8051
+ "notNull": true,
8052
+ "default": "now()"
8053
+ }
8054
+ },
8055
+ "indexes": {},
8056
+ "foreignKeys": {
8057
+ "pr_metrics_pull_request_id_pull_requests_id_fk": {
8058
+ "name": "pr_metrics_pull_request_id_pull_requests_id_fk",
8059
+ "tableFrom": "pr_metrics",
8060
+ "tableTo": "pull_requests",
8061
+ "columnsFrom": [
8062
+ "pull_request_id"
8063
+ ],
8064
+ "columnsTo": [
8065
+ "id"
8066
+ ],
8067
+ "onDelete": "cascade",
8068
+ "onUpdate": "no action"
8069
+ },
8070
+ "pr_metrics_repository_id_repositories_id_fk": {
8071
+ "name": "pr_metrics_repository_id_repositories_id_fk",
8072
+ "tableFrom": "pr_metrics",
8073
+ "tableTo": "repositories",
8074
+ "columnsFrom": [
8075
+ "repository_id"
8076
+ ],
8077
+ "columnsTo": [
8078
+ "id"
8079
+ ],
8080
+ "onDelete": "cascade",
8081
+ "onUpdate": "no action"
8082
+ },
8083
+ "pr_metrics_author_id_users_id_fk": {
8084
+ "name": "pr_metrics_author_id_users_id_fk",
8085
+ "tableFrom": "pr_metrics",
8086
+ "tableTo": "users",
8087
+ "columnsFrom": [
8088
+ "author_id"
8089
+ ],
8090
+ "columnsTo": [
8091
+ "id"
8092
+ ],
8093
+ "onDelete": "no action",
8094
+ "onUpdate": "no action"
8095
+ }
8096
+ },
8097
+ "compositePrimaryKeys": {},
8098
+ "uniqueConstraints": {},
8099
+ "policies": {},
8100
+ "checkConstraints": {},
8101
+ "isRLSEnabled": false
8102
+ },
8103
+ "public.repo_metrics": {
8104
+ "name": "repo_metrics",
8105
+ "schema": "",
8106
+ "columns": {
8107
+ "id": {
8108
+ "name": "id",
8109
+ "type": "text",
8110
+ "primaryKey": true,
8111
+ "notNull": true
8112
+ },
8113
+ "repository_id": {
8114
+ "name": "repository_id",
8115
+ "type": "text",
8116
+ "primaryKey": false,
8117
+ "notNull": true
8118
+ },
8119
+ "week_of": {
8120
+ "name": "week_of",
8121
+ "type": "text",
8122
+ "primaryKey": false,
8123
+ "notNull": true
8124
+ },
8125
+ "prs_opened": {
8126
+ "name": "prs_opened",
8127
+ "type": "integer",
8128
+ "primaryKey": false,
8129
+ "notNull": false,
8130
+ "default": 0
8131
+ },
8132
+ "prs_merged": {
8133
+ "name": "prs_merged",
8134
+ "type": "integer",
8135
+ "primaryKey": false,
8136
+ "notNull": false,
8137
+ "default": 0
8138
+ },
8139
+ "prs_closed": {
8140
+ "name": "prs_closed",
8141
+ "type": "integer",
8142
+ "primaryKey": false,
8143
+ "notNull": false,
8144
+ "default": 0
8145
+ },
8146
+ "avg_time_to_first_review": {
8147
+ "name": "avg_time_to_first_review",
8148
+ "type": "integer",
8149
+ "primaryKey": false,
8150
+ "notNull": false
8151
+ },
8152
+ "avg_time_to_merge": {
8153
+ "name": "avg_time_to_merge",
8154
+ "type": "integer",
8155
+ "primaryKey": false,
8156
+ "notNull": false
8157
+ },
8158
+ "avg_review_rounds": {
8159
+ "name": "avg_review_rounds",
8160
+ "type": "integer",
8161
+ "primaryKey": false,
8162
+ "notNull": false
8163
+ },
8164
+ "avg_lines_changed": {
8165
+ "name": "avg_lines_changed",
8166
+ "type": "integer",
8167
+ "primaryKey": false,
8168
+ "notNull": false
8169
+ },
8170
+ "avg_files_changed": {
8171
+ "name": "avg_files_changed",
8172
+ "type": "integer",
8173
+ "primaryKey": false,
8174
+ "notNull": false
8175
+ },
8176
+ "stacked_prs": {
8177
+ "name": "stacked_prs",
8178
+ "type": "integer",
8179
+ "primaryKey": false,
8180
+ "notNull": false,
8181
+ "default": 0
8182
+ },
8183
+ "stacked_prs_percentage": {
8184
+ "name": "stacked_prs_percentage",
8185
+ "type": "integer",
8186
+ "primaryKey": false,
8187
+ "notNull": false,
8188
+ "default": 0
8189
+ },
8190
+ "active_authors": {
8191
+ "name": "active_authors",
8192
+ "type": "integer",
8193
+ "primaryKey": false,
8194
+ "notNull": false,
8195
+ "default": 0
8196
+ },
8197
+ "active_reviewers": {
8198
+ "name": "active_reviewers",
8199
+ "type": "integer",
8200
+ "primaryKey": false,
8201
+ "notNull": false,
8202
+ "default": 0
8203
+ },
8204
+ "created_at": {
8205
+ "name": "created_at",
8206
+ "type": "timestamp",
8207
+ "primaryKey": false,
8208
+ "notNull": true,
8209
+ "default": "now()"
8210
+ }
8211
+ },
8212
+ "indexes": {},
8213
+ "foreignKeys": {
8214
+ "repo_metrics_repository_id_repositories_id_fk": {
8215
+ "name": "repo_metrics_repository_id_repositories_id_fk",
8216
+ "tableFrom": "repo_metrics",
8217
+ "tableTo": "repositories",
8218
+ "columnsFrom": [
8219
+ "repository_id"
8220
+ ],
8221
+ "columnsTo": [
8222
+ "id"
8223
+ ],
8224
+ "onDelete": "cascade",
8225
+ "onUpdate": "no action"
8226
+ }
8227
+ },
8228
+ "compositePrimaryKeys": {},
8229
+ "uniqueConstraints": {},
8230
+ "policies": {},
8231
+ "checkConstraints": {},
8232
+ "isRLSEnabled": false
8233
+ },
8234
+ "public.review_metrics": {
8235
+ "name": "review_metrics",
8236
+ "schema": "",
8237
+ "columns": {
8238
+ "id": {
8239
+ "name": "id",
8240
+ "type": "text",
8241
+ "primaryKey": true,
8242
+ "notNull": true
8243
+ },
8244
+ "user_id": {
8245
+ "name": "user_id",
8246
+ "type": "text",
8247
+ "primaryKey": false,
8248
+ "notNull": true
8249
+ },
8250
+ "repository_id": {
8251
+ "name": "repository_id",
8252
+ "type": "text",
8253
+ "primaryKey": false,
8254
+ "notNull": false
8255
+ },
8256
+ "week_of": {
8257
+ "name": "week_of",
8258
+ "type": "text",
8259
+ "primaryKey": false,
8260
+ "notNull": true
8261
+ },
8262
+ "prs_authored": {
8263
+ "name": "prs_authored",
8264
+ "type": "integer",
8265
+ "primaryKey": false,
8266
+ "notNull": false,
8267
+ "default": 0
8268
+ },
8269
+ "prs_authored_merged": {
8270
+ "name": "prs_authored_merged",
8271
+ "type": "integer",
8272
+ "primaryKey": false,
8273
+ "notNull": false,
8274
+ "default": 0
8275
+ },
8276
+ "avg_time_to_merge_authored": {
8277
+ "name": "avg_time_to_merge_authored",
8278
+ "type": "integer",
8279
+ "primaryKey": false,
8280
+ "notNull": false
8281
+ },
8282
+ "lines_authored_added": {
8283
+ "name": "lines_authored_added",
8284
+ "type": "integer",
8285
+ "primaryKey": false,
8286
+ "notNull": false,
8287
+ "default": 0
8288
+ },
8289
+ "lines_authored_removed": {
8290
+ "name": "lines_authored_removed",
8291
+ "type": "integer",
8292
+ "primaryKey": false,
8293
+ "notNull": false,
8294
+ "default": 0
8295
+ },
8296
+ "prs_reviewed": {
8297
+ "name": "prs_reviewed",
8298
+ "type": "integer",
8299
+ "primaryKey": false,
8300
+ "notNull": false,
8301
+ "default": 0
8302
+ },
8303
+ "avg_time_to_review": {
8304
+ "name": "avg_time_to_review",
8305
+ "type": "integer",
8306
+ "primaryKey": false,
8307
+ "notNull": false
8308
+ },
8309
+ "comments_given": {
8310
+ "name": "comments_given",
8311
+ "type": "integer",
8312
+ "primaryKey": false,
8313
+ "notNull": false,
8314
+ "default": 0
8315
+ },
8316
+ "approvals_given": {
8317
+ "name": "approvals_given",
8318
+ "type": "integer",
8319
+ "primaryKey": false,
8320
+ "notNull": false,
8321
+ "default": 0
8322
+ },
8323
+ "changes_requested_given": {
8324
+ "name": "changes_requested_given",
8325
+ "type": "integer",
8326
+ "primaryKey": false,
8327
+ "notNull": false,
8328
+ "default": 0
8329
+ },
8330
+ "created_at": {
8331
+ "name": "created_at",
8332
+ "type": "timestamp",
8333
+ "primaryKey": false,
8334
+ "notNull": true,
8335
+ "default": "now()"
8336
+ },
8337
+ "updated_at": {
8338
+ "name": "updated_at",
8339
+ "type": "timestamp",
8340
+ "primaryKey": false,
8341
+ "notNull": true,
8342
+ "default": "now()"
8343
+ }
8344
+ },
8345
+ "indexes": {},
8346
+ "foreignKeys": {
8347
+ "review_metrics_user_id_users_id_fk": {
8348
+ "name": "review_metrics_user_id_users_id_fk",
8349
+ "tableFrom": "review_metrics",
8350
+ "tableTo": "users",
8351
+ "columnsFrom": [
8352
+ "user_id"
8353
+ ],
8354
+ "columnsTo": [
8355
+ "id"
8356
+ ],
8357
+ "onDelete": "cascade",
8358
+ "onUpdate": "no action"
8359
+ },
8360
+ "review_metrics_repository_id_repositories_id_fk": {
8361
+ "name": "review_metrics_repository_id_repositories_id_fk",
8362
+ "tableFrom": "review_metrics",
8363
+ "tableTo": "repositories",
8364
+ "columnsFrom": [
8365
+ "repository_id"
8366
+ ],
8367
+ "columnsTo": [
8368
+ "id"
8369
+ ],
8370
+ "onDelete": "cascade",
8371
+ "onUpdate": "no action"
8372
+ }
8373
+ },
8374
+ "compositePrimaryKeys": {},
8375
+ "uniqueConstraints": {},
8376
+ "policies": {},
8377
+ "checkConstraints": {},
8378
+ "isRLSEnabled": false
8379
+ },
8380
+ "public.slack_channel_mappings": {
8381
+ "name": "slack_channel_mappings",
8382
+ "schema": "",
8383
+ "columns": {
8384
+ "id": {
8385
+ "name": "id",
8386
+ "type": "text",
8387
+ "primaryKey": true,
8388
+ "notNull": true
8389
+ },
8390
+ "workspace_id": {
8391
+ "name": "workspace_id",
8392
+ "type": "text",
8393
+ "primaryKey": false,
8394
+ "notNull": true
8395
+ },
8396
+ "repository_id": {
8397
+ "name": "repository_id",
8398
+ "type": "text",
8399
+ "primaryKey": false,
8400
+ "notNull": true
8401
+ },
8402
+ "channel_id": {
8403
+ "name": "channel_id",
8404
+ "type": "text",
8405
+ "primaryKey": false,
8406
+ "notNull": true
8407
+ },
8408
+ "channel_name": {
8409
+ "name": "channel_name",
8410
+ "type": "text",
8411
+ "primaryKey": false,
8412
+ "notNull": false
8413
+ },
8414
+ "notify_on": {
8415
+ "name": "notify_on",
8416
+ "type": "text",
8417
+ "primaryKey": false,
8418
+ "notNull": false,
8419
+ "default": "'[\"pr_created\",\"pr_merged\",\"review_requested\",\"ci_failed\"]'"
8420
+ },
8421
+ "notify_branches": {
8422
+ "name": "notify_branches",
8423
+ "type": "text",
8424
+ "primaryKey": false,
8425
+ "notNull": false
8426
+ },
8427
+ "notify_authors": {
8428
+ "name": "notify_authors",
8429
+ "type": "text",
8430
+ "primaryKey": false,
8431
+ "notNull": false
8432
+ },
8433
+ "is_active": {
8434
+ "name": "is_active",
8435
+ "type": "boolean",
8436
+ "primaryKey": false,
8437
+ "notNull": false,
8438
+ "default": true
8439
+ },
8440
+ "created_at": {
8441
+ "name": "created_at",
8442
+ "type": "timestamp",
8443
+ "primaryKey": false,
8444
+ "notNull": true,
8445
+ "default": "now()"
8446
+ },
8447
+ "updated_at": {
8448
+ "name": "updated_at",
8449
+ "type": "timestamp",
8450
+ "primaryKey": false,
8451
+ "notNull": true,
8452
+ "default": "now()"
8453
+ }
8454
+ },
8455
+ "indexes": {},
8456
+ "foreignKeys": {
8457
+ "slack_channel_mappings_workspace_id_slack_workspaces_id_fk": {
8458
+ "name": "slack_channel_mappings_workspace_id_slack_workspaces_id_fk",
8459
+ "tableFrom": "slack_channel_mappings",
8460
+ "tableTo": "slack_workspaces",
8461
+ "columnsFrom": [
8462
+ "workspace_id"
8463
+ ],
8464
+ "columnsTo": [
8465
+ "id"
8466
+ ],
8467
+ "onDelete": "cascade",
8468
+ "onUpdate": "no action"
8469
+ },
8470
+ "slack_channel_mappings_repository_id_repositories_id_fk": {
8471
+ "name": "slack_channel_mappings_repository_id_repositories_id_fk",
8472
+ "tableFrom": "slack_channel_mappings",
8473
+ "tableTo": "repositories",
8474
+ "columnsFrom": [
8475
+ "repository_id"
8476
+ ],
8477
+ "columnsTo": [
8478
+ "id"
8479
+ ],
8480
+ "onDelete": "cascade",
8481
+ "onUpdate": "no action"
8482
+ }
8483
+ },
8484
+ "compositePrimaryKeys": {},
8485
+ "uniqueConstraints": {},
8486
+ "policies": {},
8487
+ "checkConstraints": {},
8488
+ "isRLSEnabled": false
8489
+ },
8490
+ "public.slack_user_mappings": {
8491
+ "name": "slack_user_mappings",
8492
+ "schema": "",
8493
+ "columns": {
8494
+ "id": {
8495
+ "name": "id",
8496
+ "type": "text",
8497
+ "primaryKey": true,
8498
+ "notNull": true
8499
+ },
8500
+ "user_id": {
8501
+ "name": "user_id",
8502
+ "type": "text",
8503
+ "primaryKey": false,
8504
+ "notNull": true
8505
+ },
8506
+ "workspace_id": {
8507
+ "name": "workspace_id",
8508
+ "type": "text",
8509
+ "primaryKey": false,
8510
+ "notNull": true
8511
+ },
8512
+ "slack_user_id": {
8513
+ "name": "slack_user_id",
8514
+ "type": "text",
8515
+ "primaryKey": false,
8516
+ "notNull": true
8517
+ },
8518
+ "slack_username": {
8519
+ "name": "slack_username",
8520
+ "type": "text",
8521
+ "primaryKey": false,
8522
+ "notNull": false
8523
+ },
8524
+ "dm_preferences": {
8525
+ "name": "dm_preferences",
8526
+ "type": "text",
8527
+ "primaryKey": false,
8528
+ "notNull": false,
8529
+ "default": "'{\"review_requested\":true,\"pr_approved\":true,\"ci_failed\":true}'"
8530
+ },
8531
+ "dnd_enabled": {
8532
+ "name": "dnd_enabled",
8533
+ "type": "boolean",
8534
+ "primaryKey": false,
8535
+ "notNull": false,
8536
+ "default": false
8537
+ },
8538
+ "dnd_start": {
8539
+ "name": "dnd_start",
8540
+ "type": "text",
8541
+ "primaryKey": false,
8542
+ "notNull": false
8543
+ },
8544
+ "dnd_end": {
8545
+ "name": "dnd_end",
8546
+ "type": "text",
8547
+ "primaryKey": false,
8548
+ "notNull": false
8549
+ },
8550
+ "dnd_timezone": {
8551
+ "name": "dnd_timezone",
8552
+ "type": "text",
8553
+ "primaryKey": false,
8554
+ "notNull": false
8555
+ },
8556
+ "is_active": {
8557
+ "name": "is_active",
8558
+ "type": "boolean",
8559
+ "primaryKey": false,
8560
+ "notNull": false,
8561
+ "default": true
8562
+ },
8563
+ "created_at": {
8564
+ "name": "created_at",
8565
+ "type": "timestamp",
8566
+ "primaryKey": false,
8567
+ "notNull": true,
8568
+ "default": "now()"
8569
+ }
8570
+ },
8571
+ "indexes": {},
8572
+ "foreignKeys": {
8573
+ "slack_user_mappings_user_id_users_id_fk": {
8574
+ "name": "slack_user_mappings_user_id_users_id_fk",
8575
+ "tableFrom": "slack_user_mappings",
8576
+ "tableTo": "users",
8577
+ "columnsFrom": [
8578
+ "user_id"
8579
+ ],
8580
+ "columnsTo": [
8581
+ "id"
8582
+ ],
8583
+ "onDelete": "cascade",
8584
+ "onUpdate": "no action"
8585
+ },
8586
+ "slack_user_mappings_workspace_id_slack_workspaces_id_fk": {
8587
+ "name": "slack_user_mappings_workspace_id_slack_workspaces_id_fk",
8588
+ "tableFrom": "slack_user_mappings",
8589
+ "tableTo": "slack_workspaces",
8590
+ "columnsFrom": [
8591
+ "workspace_id"
8592
+ ],
8593
+ "columnsTo": [
8594
+ "id"
8595
+ ],
8596
+ "onDelete": "cascade",
8597
+ "onUpdate": "no action"
8598
+ }
8599
+ },
8600
+ "compositePrimaryKeys": {},
8601
+ "uniqueConstraints": {},
8602
+ "policies": {},
8603
+ "checkConstraints": {},
8604
+ "isRLSEnabled": false
8605
+ },
8606
+ "public.slack_workspaces": {
8607
+ "name": "slack_workspaces",
8608
+ "schema": "",
8609
+ "columns": {
8610
+ "id": {
8611
+ "name": "id",
8612
+ "type": "text",
8613
+ "primaryKey": true,
8614
+ "notNull": true
8615
+ },
8616
+ "team_id": {
8617
+ "name": "team_id",
8618
+ "type": "text",
8619
+ "primaryKey": false,
8620
+ "notNull": true
8621
+ },
8622
+ "team_name": {
8623
+ "name": "team_name",
8624
+ "type": "text",
8625
+ "primaryKey": false,
8626
+ "notNull": false
8627
+ },
8628
+ "team_domain": {
8629
+ "name": "team_domain",
8630
+ "type": "text",
8631
+ "primaryKey": false,
8632
+ "notNull": false
8633
+ },
8634
+ "access_token": {
8635
+ "name": "access_token",
8636
+ "type": "text",
8637
+ "primaryKey": false,
8638
+ "notNull": true
8639
+ },
8640
+ "bot_user_id": {
8641
+ "name": "bot_user_id",
8642
+ "type": "text",
8643
+ "primaryKey": false,
8644
+ "notNull": false
8645
+ },
8646
+ "bot_access_token": {
8647
+ "name": "bot_access_token",
8648
+ "type": "text",
8649
+ "primaryKey": false,
8650
+ "notNull": false
8651
+ },
8652
+ "scopes": {
8653
+ "name": "scopes",
8654
+ "type": "text",
8655
+ "primaryKey": false,
8656
+ "notNull": false
8657
+ },
8658
+ "installed_by_id": {
8659
+ "name": "installed_by_id",
8660
+ "type": "text",
8661
+ "primaryKey": false,
8662
+ "notNull": true
8663
+ },
8664
+ "installed_at": {
8665
+ "name": "installed_at",
8666
+ "type": "timestamp",
8667
+ "primaryKey": false,
8668
+ "notNull": true,
8669
+ "default": "now()"
8670
+ },
8671
+ "is_active": {
8672
+ "name": "is_active",
8673
+ "type": "boolean",
8674
+ "primaryKey": false,
8675
+ "notNull": false,
8676
+ "default": true
8677
+ },
8678
+ "last_used_at": {
8679
+ "name": "last_used_at",
8680
+ "type": "timestamp",
8681
+ "primaryKey": false,
8682
+ "notNull": false
8683
+ }
8684
+ },
8685
+ "indexes": {},
8686
+ "foreignKeys": {
8687
+ "slack_workspaces_installed_by_id_users_id_fk": {
8688
+ "name": "slack_workspaces_installed_by_id_users_id_fk",
8689
+ "tableFrom": "slack_workspaces",
8690
+ "tableTo": "users",
8691
+ "columnsFrom": [
8692
+ "installed_by_id"
8693
+ ],
8694
+ "columnsTo": [
8695
+ "id"
8696
+ ],
8697
+ "onDelete": "no action",
8698
+ "onUpdate": "no action"
8699
+ }
8700
+ },
8701
+ "compositePrimaryKeys": {},
8702
+ "uniqueConstraints": {},
8703
+ "policies": {},
8704
+ "checkConstraints": {},
8705
+ "isRLSEnabled": false
8706
+ },
8707
+ "public.webhook_deliveries": {
8708
+ "name": "webhook_deliveries",
8709
+ "schema": "",
8710
+ "columns": {
8711
+ "id": {
8712
+ "name": "id",
8713
+ "type": "text",
8714
+ "primaryKey": true,
8715
+ "notNull": true
8716
+ },
8717
+ "webhook_id": {
8718
+ "name": "webhook_id",
8719
+ "type": "text",
8720
+ "primaryKey": false,
8721
+ "notNull": true
8722
+ },
8723
+ "event": {
8724
+ "name": "event",
8725
+ "type": "text",
8726
+ "primaryKey": false,
8727
+ "notNull": true
8728
+ },
8729
+ "payload": {
8730
+ "name": "payload",
8731
+ "type": "text",
8732
+ "primaryKey": false,
8733
+ "notNull": true
8734
+ },
8735
+ "status": {
8736
+ "name": "status",
8737
+ "type": "text",
8738
+ "primaryKey": false,
8739
+ "notNull": true
8740
+ },
8741
+ "response_code": {
8742
+ "name": "response_code",
8743
+ "type": "integer",
8744
+ "primaryKey": false,
8745
+ "notNull": false
8746
+ },
8747
+ "response_body": {
8748
+ "name": "response_body",
8749
+ "type": "text",
8750
+ "primaryKey": false,
8751
+ "notNull": false
8752
+ },
8753
+ "duration_ms": {
8754
+ "name": "duration_ms",
8755
+ "type": "integer",
8756
+ "primaryKey": false,
8757
+ "notNull": false
8758
+ },
8759
+ "error": {
8760
+ "name": "error",
8761
+ "type": "text",
8762
+ "primaryKey": false,
8763
+ "notNull": false
8764
+ },
8765
+ "request_headers": {
8766
+ "name": "request_headers",
8767
+ "type": "text",
8768
+ "primaryKey": false,
8769
+ "notNull": false
8770
+ },
8771
+ "response_headers": {
8772
+ "name": "response_headers",
8773
+ "type": "text",
8774
+ "primaryKey": false,
8775
+ "notNull": false
8776
+ },
8777
+ "created_at": {
8778
+ "name": "created_at",
8779
+ "type": "timestamp",
8780
+ "primaryKey": false,
8781
+ "notNull": true,
8782
+ "default": "now()"
8783
+ }
8784
+ },
8785
+ "indexes": {
8786
+ "webhook_deliveries_webhook_idx": {
8787
+ "name": "webhook_deliveries_webhook_idx",
8788
+ "columns": [
8789
+ {
8790
+ "expression": "webhook_id",
8791
+ "isExpression": false,
8792
+ "asc": true,
8793
+ "nulls": "last"
8794
+ }
8795
+ ],
8796
+ "isUnique": false,
8797
+ "concurrently": false,
8798
+ "method": "btree",
8799
+ "with": {}
8800
+ },
8801
+ "webhook_deliveries_created_idx": {
8802
+ "name": "webhook_deliveries_created_idx",
8803
+ "columns": [
8804
+ {
8805
+ "expression": "created_at",
8806
+ "isExpression": false,
8807
+ "asc": true,
8808
+ "nulls": "last"
8809
+ }
8810
+ ],
8811
+ "isUnique": false,
8812
+ "concurrently": false,
8813
+ "method": "btree",
8814
+ "with": {}
8815
+ }
8816
+ },
8817
+ "foreignKeys": {
8818
+ "webhook_deliveries_webhook_id_webhooks_id_fk": {
8819
+ "name": "webhook_deliveries_webhook_id_webhooks_id_fk",
8820
+ "tableFrom": "webhook_deliveries",
8821
+ "tableTo": "webhooks",
8822
+ "columnsFrom": [
8823
+ "webhook_id"
8824
+ ],
8825
+ "columnsTo": [
8826
+ "id"
8827
+ ],
8828
+ "onDelete": "cascade",
8829
+ "onUpdate": "no action"
8830
+ }
8831
+ },
8832
+ "compositePrimaryKeys": {},
8833
+ "uniqueConstraints": {},
8834
+ "policies": {},
8835
+ "checkConstraints": {},
8836
+ "isRLSEnabled": false
8837
+ },
8838
+ "public.webhooks": {
8839
+ "name": "webhooks",
8840
+ "schema": "",
8841
+ "columns": {
8842
+ "id": {
8843
+ "name": "id",
8844
+ "type": "text",
8845
+ "primaryKey": true,
8846
+ "notNull": true
8847
+ },
8848
+ "repository_id": {
8849
+ "name": "repository_id",
8850
+ "type": "text",
8851
+ "primaryKey": false,
8852
+ "notNull": true
8853
+ },
8854
+ "provider": {
8855
+ "name": "provider",
8856
+ "type": "text",
8857
+ "primaryKey": false,
8858
+ "notNull": false,
8859
+ "default": "'generic'"
8860
+ },
8861
+ "name": {
8862
+ "name": "name",
8863
+ "type": "text",
8864
+ "primaryKey": false,
8865
+ "notNull": false
8866
+ },
8867
+ "url": {
8868
+ "name": "url",
8869
+ "type": "text",
8870
+ "primaryKey": false,
8871
+ "notNull": true
8872
+ },
8873
+ "secret": {
8874
+ "name": "secret",
8875
+ "type": "text",
8876
+ "primaryKey": false,
8877
+ "notNull": false
8878
+ },
8879
+ "events": {
8880
+ "name": "events",
8881
+ "type": "text",
8882
+ "primaryKey": false,
8883
+ "notNull": true
8884
+ },
8885
+ "active": {
8886
+ "name": "active",
8887
+ "type": "boolean",
8888
+ "primaryKey": false,
8889
+ "notNull": true,
8890
+ "default": true
8891
+ },
8892
+ "enabled": {
8893
+ "name": "enabled",
8894
+ "type": "boolean",
8895
+ "primaryKey": false,
8896
+ "notNull": true,
8897
+ "default": true
8898
+ },
8899
+ "content_type": {
8900
+ "name": "content_type",
8901
+ "type": "text",
8902
+ "primaryKey": false,
8903
+ "notNull": true,
8904
+ "default": "'json'"
8905
+ },
8906
+ "delivery_count": {
8907
+ "name": "delivery_count",
8908
+ "type": "integer",
8909
+ "primaryKey": false,
8910
+ "notNull": false,
8911
+ "default": 0
8912
+ },
8913
+ "last_delivery_status": {
8914
+ "name": "last_delivery_status",
8915
+ "type": "text",
8916
+ "primaryKey": false,
8917
+ "notNull": false
8918
+ },
8919
+ "last_delivery_at": {
8920
+ "name": "last_delivery_at",
8921
+ "type": "timestamp",
8922
+ "primaryKey": false,
8923
+ "notNull": false
8924
+ },
8925
+ "created_at": {
8926
+ "name": "created_at",
8927
+ "type": "timestamp",
8928
+ "primaryKey": false,
8929
+ "notNull": true,
8930
+ "default": "now()"
8931
+ },
8932
+ "updated_at": {
8933
+ "name": "updated_at",
8934
+ "type": "timestamp",
8935
+ "primaryKey": false,
8936
+ "notNull": true,
8937
+ "default": "now()"
8938
+ },
8939
+ "created_by_id": {
8940
+ "name": "created_by_id",
8941
+ "type": "text",
8942
+ "primaryKey": false,
8943
+ "notNull": false
8944
+ }
8945
+ },
8946
+ "indexes": {
8947
+ "webhooks_repo_idx": {
8948
+ "name": "webhooks_repo_idx",
8949
+ "columns": [
8950
+ {
8951
+ "expression": "repository_id",
8952
+ "isExpression": false,
8953
+ "asc": true,
8954
+ "nulls": "last"
8955
+ }
8956
+ ],
8957
+ "isUnique": false,
8958
+ "concurrently": false,
8959
+ "method": "btree",
8960
+ "with": {}
8961
+ }
8962
+ },
8963
+ "foreignKeys": {
8964
+ "webhooks_repository_id_repositories_id_fk": {
8965
+ "name": "webhooks_repository_id_repositories_id_fk",
8966
+ "tableFrom": "webhooks",
8967
+ "tableTo": "repositories",
8968
+ "columnsFrom": [
8969
+ "repository_id"
8970
+ ],
8971
+ "columnsTo": [
8972
+ "id"
8973
+ ],
8974
+ "onDelete": "cascade",
8975
+ "onUpdate": "no action"
8976
+ },
8977
+ "webhooks_created_by_id_users_id_fk": {
8978
+ "name": "webhooks_created_by_id_users_id_fk",
8979
+ "tableFrom": "webhooks",
8980
+ "tableTo": "users",
8981
+ "columnsFrom": [
8982
+ "created_by_id"
8983
+ ],
8984
+ "columnsTo": [
8985
+ "id"
8986
+ ],
8987
+ "onDelete": "no action",
8988
+ "onUpdate": "no action"
8989
+ }
8990
+ },
8991
+ "compositePrimaryKeys": {},
8992
+ "uniqueConstraints": {},
8993
+ "policies": {},
8994
+ "checkConstraints": {},
8995
+ "isRLSEnabled": false
8996
+ },
8997
+ "public.branch_protection": {
8998
+ "name": "branch_protection",
8999
+ "schema": "",
9000
+ "columns": {
9001
+ "id": {
9002
+ "name": "id",
9003
+ "type": "text",
9004
+ "primaryKey": true,
9005
+ "notNull": true
9006
+ },
9007
+ "repository_id": {
9008
+ "name": "repository_id",
9009
+ "type": "text",
9010
+ "primaryKey": false,
9011
+ "notNull": true
9012
+ },
9013
+ "pattern": {
9014
+ "name": "pattern",
9015
+ "type": "text",
9016
+ "primaryKey": false,
9017
+ "notNull": true
9018
+ },
9019
+ "active": {
9020
+ "name": "active",
9021
+ "type": "boolean",
9022
+ "primaryKey": false,
9023
+ "notNull": false,
9024
+ "default": true
9025
+ },
9026
+ "requires_pr": {
9027
+ "name": "requires_pr",
9028
+ "type": "boolean",
9029
+ "primaryKey": false,
9030
+ "notNull": false,
9031
+ "default": false
9032
+ },
9033
+ "required_approvals": {
9034
+ "name": "required_approvals",
9035
+ "type": "integer",
9036
+ "primaryKey": false,
9037
+ "notNull": false,
9038
+ "default": 1
9039
+ },
9040
+ "dismiss_stale_reviews": {
9041
+ "name": "dismiss_stale_reviews",
9042
+ "type": "boolean",
9043
+ "primaryKey": false,
9044
+ "notNull": false,
9045
+ "default": false
9046
+ },
9047
+ "require_code_owner_reviews": {
9048
+ "name": "require_code_owner_reviews",
9049
+ "type": "boolean",
9050
+ "primaryKey": false,
9051
+ "notNull": false,
9052
+ "default": false
9053
+ },
9054
+ "allow_force_pushes": {
9055
+ "name": "allow_force_pushes",
9056
+ "type": "boolean",
9057
+ "primaryKey": false,
9058
+ "notNull": false,
9059
+ "default": false
9060
+ },
9061
+ "created_at": {
9062
+ "name": "created_at",
9063
+ "type": "timestamp",
9064
+ "primaryKey": false,
9065
+ "notNull": true,
9066
+ "default": "now()"
9067
+ },
9068
+ "updated_at": {
9069
+ "name": "updated_at",
9070
+ "type": "timestamp",
9071
+ "primaryKey": false,
9072
+ "notNull": true,
9073
+ "default": "now()"
9074
+ },
9075
+ "created_by_id": {
9076
+ "name": "created_by_id",
9077
+ "type": "text",
9078
+ "primaryKey": false,
9079
+ "notNull": false
9080
+ }
9081
+ },
9082
+ "indexes": {
9083
+ "branch_protection_repository_id_idx": {
9084
+ "name": "branch_protection_repository_id_idx",
9085
+ "columns": [
9086
+ {
9087
+ "expression": "repository_id",
9088
+ "isExpression": false,
9089
+ "asc": true,
9090
+ "nulls": "last"
9091
+ }
9092
+ ],
9093
+ "isUnique": false,
9094
+ "concurrently": false,
9095
+ "method": "btree",
9096
+ "with": {}
9097
+ }
9098
+ },
9099
+ "foreignKeys": {
9100
+ "branch_protection_repository_id_repositories_id_fk": {
9101
+ "name": "branch_protection_repository_id_repositories_id_fk",
9102
+ "tableFrom": "branch_protection",
9103
+ "tableTo": "repositories",
9104
+ "columnsFrom": [
9105
+ "repository_id"
9106
+ ],
9107
+ "columnsTo": [
9108
+ "id"
9109
+ ],
9110
+ "onDelete": "cascade",
9111
+ "onUpdate": "no action"
9112
+ },
9113
+ "branch_protection_created_by_id_users_id_fk": {
9114
+ "name": "branch_protection_created_by_id_users_id_fk",
9115
+ "tableFrom": "branch_protection",
9116
+ "tableTo": "users",
9117
+ "columnsFrom": [
9118
+ "created_by_id"
9119
+ ],
9120
+ "columnsTo": [
9121
+ "id"
9122
+ ],
9123
+ "onDelete": "no action",
9124
+ "onUpdate": "no action"
9125
+ }
9126
+ },
9127
+ "compositePrimaryKeys": {},
9128
+ "uniqueConstraints": {},
9129
+ "policies": {},
9130
+ "checkConstraints": {},
9131
+ "isRLSEnabled": false
9132
+ },
9133
+ "public.system_config": {
9134
+ "name": "system_config",
9135
+ "schema": "",
9136
+ "columns": {
9137
+ "key": {
9138
+ "name": "key",
9139
+ "type": "text",
9140
+ "primaryKey": true,
9141
+ "notNull": true
9142
+ },
9143
+ "value": {
9144
+ "name": "value",
9145
+ "type": "text",
9146
+ "primaryKey": false,
9147
+ "notNull": true
9148
+ },
9149
+ "updated_at": {
9150
+ "name": "updated_at",
9151
+ "type": "timestamp",
9152
+ "primaryKey": false,
9153
+ "notNull": true,
9154
+ "default": "now()"
9155
+ },
9156
+ "updated_by_id": {
9157
+ "name": "updated_by_id",
9158
+ "type": "text",
9159
+ "primaryKey": false,
9160
+ "notNull": false
9161
+ }
9162
+ },
9163
+ "indexes": {},
9164
+ "foreignKeys": {
9165
+ "system_config_updated_by_id_users_id_fk": {
9166
+ "name": "system_config_updated_by_id_users_id_fk",
9167
+ "tableFrom": "system_config",
9168
+ "tableTo": "users",
9169
+ "columnsFrom": [
9170
+ "updated_by_id"
9171
+ ],
9172
+ "columnsTo": [
9173
+ "id"
9174
+ ],
9175
+ "onDelete": "no action",
9176
+ "onUpdate": "no action"
9177
+ }
9178
+ },
9179
+ "compositePrimaryKeys": {},
9180
+ "uniqueConstraints": {},
9181
+ "policies": {},
9182
+ "checkConstraints": {},
9183
+ "isRLSEnabled": false
9184
+ },
9185
+ "public.inbox_sections": {
9186
+ "name": "inbox_sections",
9187
+ "schema": "",
9188
+ "columns": {
9189
+ "id": {
9190
+ "name": "id",
9191
+ "type": "text",
9192
+ "primaryKey": true,
9193
+ "notNull": true
9194
+ },
9195
+ "user_id": {
9196
+ "name": "user_id",
9197
+ "type": "text",
9198
+ "primaryKey": false,
9199
+ "notNull": true
9200
+ },
9201
+ "name": {
9202
+ "name": "name",
9203
+ "type": "text",
9204
+ "primaryKey": false,
9205
+ "notNull": true
9206
+ },
9207
+ "icon": {
9208
+ "name": "icon",
9209
+ "type": "text",
9210
+ "primaryKey": false,
9211
+ "notNull": false
9212
+ },
9213
+ "color": {
9214
+ "name": "color",
9215
+ "type": "text",
9216
+ "primaryKey": false,
9217
+ "notNull": false
9218
+ },
9219
+ "filters": {
9220
+ "name": "filters",
9221
+ "type": "text",
9222
+ "primaryKey": false,
9223
+ "notNull": false
9224
+ },
9225
+ "position": {
9226
+ "name": "position",
9227
+ "type": "integer",
9228
+ "primaryKey": false,
9229
+ "notNull": true,
9230
+ "default": 0
9231
+ },
9232
+ "is_default": {
9233
+ "name": "is_default",
9234
+ "type": "boolean",
9235
+ "primaryKey": false,
9236
+ "notNull": false,
9237
+ "default": false
9238
+ },
9239
+ "is_collapsed": {
9240
+ "name": "is_collapsed",
9241
+ "type": "boolean",
9242
+ "primaryKey": false,
9243
+ "notNull": false,
9244
+ "default": false
9245
+ },
9246
+ "show_count": {
9247
+ "name": "show_count",
9248
+ "type": "boolean",
9249
+ "primaryKey": false,
9250
+ "notNull": false,
9251
+ "default": true
9252
+ },
9253
+ "created_at": {
9254
+ "name": "created_at",
9255
+ "type": "timestamp",
9256
+ "primaryKey": false,
9257
+ "notNull": true,
9258
+ "default": "now()"
9259
+ },
9260
+ "updated_at": {
9261
+ "name": "updated_at",
9262
+ "type": "timestamp",
9263
+ "primaryKey": false,
9264
+ "notNull": true,
9265
+ "default": "now()"
9266
+ }
9267
+ },
9268
+ "indexes": {},
9269
+ "foreignKeys": {
9270
+ "inbox_sections_user_id_users_id_fk": {
9271
+ "name": "inbox_sections_user_id_users_id_fk",
9272
+ "tableFrom": "inbox_sections",
9273
+ "tableTo": "users",
9274
+ "columnsFrom": [
9275
+ "user_id"
9276
+ ],
9277
+ "columnsTo": [
9278
+ "id"
9279
+ ],
9280
+ "onDelete": "cascade",
9281
+ "onUpdate": "no action"
9282
+ }
9283
+ },
9284
+ "compositePrimaryKeys": {},
9285
+ "uniqueConstraints": {},
9286
+ "policies": {},
9287
+ "checkConstraints": {},
9288
+ "isRLSEnabled": false
9289
+ },
9290
+ "public.shared_inbox_sections": {
9291
+ "name": "shared_inbox_sections",
9292
+ "schema": "",
9293
+ "columns": {
9294
+ "id": {
9295
+ "name": "id",
9296
+ "type": "text",
9297
+ "primaryKey": true,
9298
+ "notNull": true
9299
+ },
9300
+ "section_id": {
9301
+ "name": "section_id",
9302
+ "type": "text",
9303
+ "primaryKey": false,
9304
+ "notNull": true
9305
+ },
9306
+ "shared_with_user_id": {
9307
+ "name": "shared_with_user_id",
9308
+ "type": "text",
9309
+ "primaryKey": false,
9310
+ "notNull": false
9311
+ },
9312
+ "shared_with_team_id": {
9313
+ "name": "shared_with_team_id",
9314
+ "type": "text",
9315
+ "primaryKey": false,
9316
+ "notNull": false
9317
+ },
9318
+ "permission": {
9319
+ "name": "permission",
9320
+ "type": "text",
9321
+ "primaryKey": false,
9322
+ "notNull": true,
9323
+ "default": "'view'"
9324
+ },
9325
+ "created_at": {
9326
+ "name": "created_at",
9327
+ "type": "timestamp",
9328
+ "primaryKey": false,
9329
+ "notNull": true,
9330
+ "default": "now()"
9331
+ }
9332
+ },
9333
+ "indexes": {},
9334
+ "foreignKeys": {
9335
+ "shared_inbox_sections_section_id_inbox_sections_id_fk": {
9336
+ "name": "shared_inbox_sections_section_id_inbox_sections_id_fk",
9337
+ "tableFrom": "shared_inbox_sections",
9338
+ "tableTo": "inbox_sections",
9339
+ "columnsFrom": [
9340
+ "section_id"
9341
+ ],
9342
+ "columnsTo": [
9343
+ "id"
9344
+ ],
9345
+ "onDelete": "cascade",
9346
+ "onUpdate": "no action"
9347
+ },
9348
+ "shared_inbox_sections_shared_with_user_id_users_id_fk": {
9349
+ "name": "shared_inbox_sections_shared_with_user_id_users_id_fk",
9350
+ "tableFrom": "shared_inbox_sections",
9351
+ "tableTo": "users",
9352
+ "columnsFrom": [
9353
+ "shared_with_user_id"
9354
+ ],
9355
+ "columnsTo": [
9356
+ "id"
9357
+ ],
9358
+ "onDelete": "cascade",
9359
+ "onUpdate": "no action"
9360
+ }
9361
+ },
9362
+ "compositePrimaryKeys": {},
9363
+ "uniqueConstraints": {},
9364
+ "policies": {},
9365
+ "checkConstraints": {},
9366
+ "isRLSEnabled": false
9367
+ },
9368
+ "public.automation_executions": {
9369
+ "name": "automation_executions",
9370
+ "schema": "",
9371
+ "columns": {
9372
+ "id": {
9373
+ "name": "id",
9374
+ "type": "text",
9375
+ "primaryKey": true,
9376
+ "notNull": true
9377
+ },
9378
+ "rule_id": {
9379
+ "name": "rule_id",
9380
+ "type": "text",
9381
+ "primaryKey": false,
9382
+ "notNull": true
9383
+ },
9384
+ "triggered_by_id": {
9385
+ "name": "triggered_by_id",
9386
+ "type": "text",
9387
+ "primaryKey": false,
9388
+ "notNull": false
9389
+ },
9390
+ "triggered_by_type": {
9391
+ "name": "triggered_by_type",
9392
+ "type": "text",
9393
+ "primaryKey": false,
9394
+ "notNull": false
9395
+ },
9396
+ "trigger_event": {
9397
+ "name": "trigger_event",
9398
+ "type": "text",
9399
+ "primaryKey": false,
9400
+ "notNull": true
9401
+ },
9402
+ "conditions_matched": {
9403
+ "name": "conditions_matched",
9404
+ "type": "boolean",
9405
+ "primaryKey": false,
9406
+ "notNull": false
9407
+ },
9408
+ "actions_executed": {
9409
+ "name": "actions_executed",
9410
+ "type": "text",
9411
+ "primaryKey": false,
9412
+ "notNull": false
9413
+ },
9414
+ "status": {
9415
+ "name": "status",
9416
+ "type": "text",
9417
+ "primaryKey": false,
9418
+ "notNull": true,
9419
+ "default": "'pending'"
9420
+ },
9421
+ "error_message": {
9422
+ "name": "error_message",
9423
+ "type": "text",
9424
+ "primaryKey": false,
9425
+ "notNull": false
9426
+ },
9427
+ "duration_ms": {
9428
+ "name": "duration_ms",
9429
+ "type": "integer",
9430
+ "primaryKey": false,
9431
+ "notNull": false
9432
+ },
9433
+ "created_at": {
9434
+ "name": "created_at",
9435
+ "type": "timestamp",
9436
+ "primaryKey": false,
9437
+ "notNull": true,
9438
+ "default": "now()"
9439
+ }
9440
+ },
9441
+ "indexes": {},
9442
+ "foreignKeys": {
9443
+ "automation_executions_rule_id_automation_rules_id_fk": {
9444
+ "name": "automation_executions_rule_id_automation_rules_id_fk",
9445
+ "tableFrom": "automation_executions",
9446
+ "tableTo": "automation_rules",
9447
+ "columnsFrom": [
9448
+ "rule_id"
9449
+ ],
9450
+ "columnsTo": [
9451
+ "id"
9452
+ ],
9453
+ "onDelete": "cascade",
9454
+ "onUpdate": "no action"
9455
+ }
9456
+ },
9457
+ "compositePrimaryKeys": {},
9458
+ "uniqueConstraints": {},
9459
+ "policies": {},
9460
+ "checkConstraints": {},
9461
+ "isRLSEnabled": false
9462
+ },
9463
+ "public.automation_rules": {
9464
+ "name": "automation_rules",
9465
+ "schema": "",
9466
+ "columns": {
9467
+ "id": {
9468
+ "name": "id",
9469
+ "type": "text",
9470
+ "primaryKey": true,
9471
+ "notNull": true
9472
+ },
9473
+ "repository_id": {
9474
+ "name": "repository_id",
9475
+ "type": "text",
9476
+ "primaryKey": false,
9477
+ "notNull": false
9478
+ },
9479
+ "organization_id": {
9480
+ "name": "organization_id",
9481
+ "type": "text",
9482
+ "primaryKey": false,
9483
+ "notNull": false
9484
+ },
9485
+ "created_by_id": {
9486
+ "name": "created_by_id",
9487
+ "type": "text",
9488
+ "primaryKey": false,
9489
+ "notNull": true
9490
+ },
9491
+ "name": {
9492
+ "name": "name",
9493
+ "type": "text",
9494
+ "primaryKey": false,
9495
+ "notNull": true
9496
+ },
9497
+ "description": {
9498
+ "name": "description",
9499
+ "type": "text",
9500
+ "primaryKey": false,
9501
+ "notNull": false
9502
+ },
9503
+ "trigger": {
9504
+ "name": "trigger",
9505
+ "type": "text",
9506
+ "primaryKey": false,
9507
+ "notNull": true
9508
+ },
9509
+ "conditions": {
9510
+ "name": "conditions",
9511
+ "type": "text",
9512
+ "primaryKey": false,
9513
+ "notNull": false
9514
+ },
9515
+ "actions": {
9516
+ "name": "actions",
9517
+ "type": "text",
9518
+ "primaryKey": false,
9519
+ "notNull": true
9520
+ },
9521
+ "is_enabled": {
9522
+ "name": "is_enabled",
9523
+ "type": "boolean",
9524
+ "primaryKey": false,
9525
+ "notNull": false,
9526
+ "default": true
9527
+ },
9528
+ "priority": {
9529
+ "name": "priority",
9530
+ "type": "integer",
9531
+ "primaryKey": false,
9532
+ "notNull": false,
9533
+ "default": 0
9534
+ },
9535
+ "run_count": {
9536
+ "name": "run_count",
9537
+ "type": "integer",
9538
+ "primaryKey": false,
9539
+ "notNull": false,
9540
+ "default": 0
9541
+ },
9542
+ "last_run_at": {
9543
+ "name": "last_run_at",
9544
+ "type": "timestamp",
9545
+ "primaryKey": false,
9546
+ "notNull": false
9547
+ },
9548
+ "created_at": {
9549
+ "name": "created_at",
9550
+ "type": "timestamp",
9551
+ "primaryKey": false,
9552
+ "notNull": true,
9553
+ "default": "now()"
9554
+ },
9555
+ "updated_at": {
9556
+ "name": "updated_at",
9557
+ "type": "timestamp",
9558
+ "primaryKey": false,
9559
+ "notNull": true,
9560
+ "default": "now()"
9561
+ }
9562
+ },
9563
+ "indexes": {
9564
+ "automation_rules_repository_id_idx": {
9565
+ "name": "automation_rules_repository_id_idx",
9566
+ "columns": [
9567
+ {
9568
+ "expression": "repository_id",
9569
+ "isExpression": false,
9570
+ "asc": true,
9571
+ "nulls": "last"
9572
+ }
9573
+ ],
9574
+ "isUnique": false,
9575
+ "concurrently": false,
9576
+ "method": "btree",
9577
+ "with": {}
9578
+ }
9579
+ },
9580
+ "foreignKeys": {
9581
+ "automation_rules_repository_id_repositories_id_fk": {
9582
+ "name": "automation_rules_repository_id_repositories_id_fk",
9583
+ "tableFrom": "automation_rules",
9584
+ "tableTo": "repositories",
9585
+ "columnsFrom": [
9586
+ "repository_id"
9587
+ ],
9588
+ "columnsTo": [
9589
+ "id"
9590
+ ],
9591
+ "onDelete": "cascade",
9592
+ "onUpdate": "no action"
9593
+ },
9594
+ "automation_rules_created_by_id_users_id_fk": {
9595
+ "name": "automation_rules_created_by_id_users_id_fk",
9596
+ "tableFrom": "automation_rules",
9597
+ "tableTo": "users",
9598
+ "columnsFrom": [
9599
+ "created_by_id"
9600
+ ],
9601
+ "columnsTo": [
9602
+ "id"
9603
+ ],
9604
+ "onDelete": "no action",
9605
+ "onUpdate": "no action"
9606
+ }
9607
+ },
9608
+ "compositePrimaryKeys": {},
9609
+ "uniqueConstraints": {},
9610
+ "policies": {},
9611
+ "checkConstraints": {},
9612
+ "isRLSEnabled": false
9613
+ },
9614
+ "public.ai_codebase_context": {
9615
+ "name": "ai_codebase_context",
9616
+ "schema": "",
9617
+ "columns": {
9618
+ "id": {
9619
+ "name": "id",
9620
+ "type": "text",
9621
+ "primaryKey": true,
9622
+ "notNull": true
9623
+ },
9624
+ "repository_id": {
9625
+ "name": "repository_id",
9626
+ "type": "text",
9627
+ "primaryKey": false,
9628
+ "notNull": true
9629
+ },
9630
+ "context_type": {
9631
+ "name": "context_type",
9632
+ "type": "text",
9633
+ "primaryKey": false,
9634
+ "notNull": true
9635
+ },
9636
+ "name": {
9637
+ "name": "name",
9638
+ "type": "text",
9639
+ "primaryKey": false,
9640
+ "notNull": true
9641
+ },
9642
+ "description": {
9643
+ "name": "description",
9644
+ "type": "text",
9645
+ "primaryKey": false,
9646
+ "notNull": false
9647
+ },
9648
+ "examples": {
9649
+ "name": "examples",
9650
+ "type": "text",
9651
+ "primaryKey": false,
9652
+ "notNull": false
9653
+ },
9654
+ "anti_patterns": {
9655
+ "name": "anti_patterns",
9656
+ "type": "text",
9657
+ "primaryKey": false,
9658
+ "notNull": false
9659
+ },
9660
+ "is_auto_detected": {
9661
+ "name": "is_auto_detected",
9662
+ "type": "boolean",
9663
+ "primaryKey": false,
9664
+ "notNull": false,
9665
+ "default": false
9666
+ },
9667
+ "confidence": {
9668
+ "name": "confidence",
9669
+ "type": "integer",
9670
+ "primaryKey": false,
9671
+ "notNull": false
9672
+ },
9673
+ "created_at": {
9674
+ "name": "created_at",
9675
+ "type": "timestamp",
9676
+ "primaryKey": false,
9677
+ "notNull": true,
9678
+ "default": "now()"
9679
+ },
9680
+ "updated_at": {
9681
+ "name": "updated_at",
9682
+ "type": "timestamp",
9683
+ "primaryKey": false,
9684
+ "notNull": true,
9685
+ "default": "now()"
9686
+ }
9687
+ },
9688
+ "indexes": {},
9689
+ "foreignKeys": {
9690
+ "ai_codebase_context_repository_id_repositories_id_fk": {
9691
+ "name": "ai_codebase_context_repository_id_repositories_id_fk",
9692
+ "tableFrom": "ai_codebase_context",
9693
+ "tableTo": "repositories",
9694
+ "columnsFrom": [
9695
+ "repository_id"
9696
+ ],
9697
+ "columnsTo": [
9698
+ "id"
9699
+ ],
9700
+ "onDelete": "cascade",
9701
+ "onUpdate": "no action"
9702
+ }
9703
+ },
9704
+ "compositePrimaryKeys": {},
9705
+ "uniqueConstraints": {},
9706
+ "policies": {},
9707
+ "checkConstraints": {},
9708
+ "isRLSEnabled": false
9709
+ },
9710
+ "public.ai_review_rule_templates": {
9711
+ "name": "ai_review_rule_templates",
9712
+ "schema": "",
9713
+ "columns": {
9714
+ "id": {
9715
+ "name": "id",
9716
+ "type": "text",
9717
+ "primaryKey": true,
9718
+ "notNull": true
9719
+ },
9720
+ "name": {
9721
+ "name": "name",
9722
+ "type": "text",
9723
+ "primaryKey": false,
9724
+ "notNull": true
9725
+ },
9726
+ "description": {
9727
+ "name": "description",
9728
+ "type": "text",
9729
+ "primaryKey": false,
9730
+ "notNull": false
9731
+ },
9732
+ "rule_type": {
9733
+ "name": "rule_type",
9734
+ "type": "text",
9735
+ "primaryKey": false,
9736
+ "notNull": true
9737
+ },
9738
+ "ai_prompt": {
9739
+ "name": "ai_prompt",
9740
+ "type": "text",
9741
+ "primaryKey": false,
9742
+ "notNull": false
9743
+ },
9744
+ "regex_pattern": {
9745
+ "name": "regex_pattern",
9746
+ "type": "text",
9747
+ "primaryKey": false,
9748
+ "notNull": false
9749
+ },
9750
+ "severity": {
9751
+ "name": "severity",
9752
+ "type": "text",
9753
+ "primaryKey": false,
9754
+ "notNull": true
9755
+ },
9756
+ "category": {
9757
+ "name": "category",
9758
+ "type": "text",
9759
+ "primaryKey": false,
9760
+ "notNull": false
9761
+ },
9762
+ "file_globs": {
9763
+ "name": "file_globs",
9764
+ "type": "text",
9765
+ "primaryKey": false,
9766
+ "notNull": false
9767
+ },
9768
+ "languages": {
9769
+ "name": "languages",
9770
+ "type": "text",
9771
+ "primaryKey": false,
9772
+ "notNull": false
9773
+ },
9774
+ "is_built_in": {
9775
+ "name": "is_built_in",
9776
+ "type": "boolean",
9777
+ "primaryKey": false,
9778
+ "notNull": false,
9779
+ "default": false
9780
+ },
9781
+ "usage_count": {
9782
+ "name": "usage_count",
9783
+ "type": "integer",
9784
+ "primaryKey": false,
9785
+ "notNull": false,
9786
+ "default": 0
9787
+ },
9788
+ "created_at": {
9789
+ "name": "created_at",
9790
+ "type": "timestamp",
9791
+ "primaryKey": false,
9792
+ "notNull": true,
9793
+ "default": "now()"
9794
+ }
9795
+ },
9796
+ "indexes": {},
9797
+ "foreignKeys": {},
9798
+ "compositePrimaryKeys": {},
9799
+ "uniqueConstraints": {},
9800
+ "policies": {},
9801
+ "checkConstraints": {},
9802
+ "isRLSEnabled": false
9803
+ },
9804
+ "public.ai_review_rules": {
9805
+ "name": "ai_review_rules",
9806
+ "schema": "",
9807
+ "columns": {
9808
+ "id": {
9809
+ "name": "id",
9810
+ "type": "text",
9811
+ "primaryKey": true,
9812
+ "notNull": true
9813
+ },
9814
+ "repository_id": {
9815
+ "name": "repository_id",
9816
+ "type": "text",
9817
+ "primaryKey": false,
9818
+ "notNull": false
9819
+ },
9820
+ "organization_id": {
9821
+ "name": "organization_id",
9822
+ "type": "text",
9823
+ "primaryKey": false,
9824
+ "notNull": false
9825
+ },
9826
+ "created_by_id": {
9827
+ "name": "created_by_id",
9828
+ "type": "text",
9829
+ "primaryKey": false,
9830
+ "notNull": true
9831
+ },
9832
+ "name": {
9833
+ "name": "name",
9834
+ "type": "text",
9835
+ "primaryKey": false,
9836
+ "notNull": true
9837
+ },
9838
+ "description": {
9839
+ "name": "description",
9840
+ "type": "text",
9841
+ "primaryKey": false,
9842
+ "notNull": false
9843
+ },
9844
+ "rule_type": {
9845
+ "name": "rule_type",
9846
+ "type": "text",
9847
+ "primaryKey": false,
9848
+ "notNull": true,
9849
+ "default": "'ai_prompt'"
9850
+ },
9851
+ "ai_prompt": {
9852
+ "name": "ai_prompt",
9853
+ "type": "text",
9854
+ "primaryKey": false,
9855
+ "notNull": false
9856
+ },
9857
+ "regex_pattern": {
9858
+ "name": "regex_pattern",
9859
+ "type": "text",
9860
+ "primaryKey": false,
9861
+ "notNull": false
9862
+ },
9863
+ "severity": {
9864
+ "name": "severity",
9865
+ "type": "text",
9866
+ "primaryKey": false,
9867
+ "notNull": true,
9868
+ "default": "'info'"
9869
+ },
9870
+ "category": {
9871
+ "name": "category",
9872
+ "type": "text",
9873
+ "primaryKey": false,
9874
+ "notNull": false
9875
+ },
9876
+ "file_globs": {
9877
+ "name": "file_globs",
9878
+ "type": "text",
9879
+ "primaryKey": false,
9880
+ "notNull": false
9881
+ },
9882
+ "exclude_globs": {
9883
+ "name": "exclude_globs",
9884
+ "type": "text",
9885
+ "primaryKey": false,
9886
+ "notNull": false
9887
+ },
9888
+ "languages": {
9889
+ "name": "languages",
9890
+ "type": "text",
9891
+ "primaryKey": false,
9892
+ "notNull": false
9893
+ },
9894
+ "is_enabled": {
9895
+ "name": "is_enabled",
9896
+ "type": "boolean",
9897
+ "primaryKey": false,
9898
+ "notNull": false,
9899
+ "default": true
9900
+ },
9901
+ "is_auto_fix": {
9902
+ "name": "is_auto_fix",
9903
+ "type": "boolean",
9904
+ "primaryKey": false,
9905
+ "notNull": false,
9906
+ "default": false
9907
+ },
9908
+ "priority": {
9909
+ "name": "priority",
9910
+ "type": "integer",
9911
+ "primaryKey": false,
9912
+ "notNull": false,
9913
+ "default": 0
9914
+ },
9915
+ "match_count": {
9916
+ "name": "match_count",
9917
+ "type": "integer",
9918
+ "primaryKey": false,
9919
+ "notNull": false,
9920
+ "default": 0
9921
+ },
9922
+ "last_match_at": {
9923
+ "name": "last_match_at",
9924
+ "type": "timestamp",
9925
+ "primaryKey": false,
9926
+ "notNull": false
9927
+ },
9928
+ "created_at": {
9929
+ "name": "created_at",
9930
+ "type": "timestamp",
9931
+ "primaryKey": false,
9932
+ "notNull": true,
9933
+ "default": "now()"
9934
+ },
9935
+ "updated_at": {
9936
+ "name": "updated_at",
9937
+ "type": "timestamp",
9938
+ "primaryKey": false,
9939
+ "notNull": true,
9940
+ "default": "now()"
9941
+ }
9942
+ },
9943
+ "indexes": {},
9944
+ "foreignKeys": {
9945
+ "ai_review_rules_repository_id_repositories_id_fk": {
9946
+ "name": "ai_review_rules_repository_id_repositories_id_fk",
9947
+ "tableFrom": "ai_review_rules",
9948
+ "tableTo": "repositories",
9949
+ "columnsFrom": [
9950
+ "repository_id"
9951
+ ],
9952
+ "columnsTo": [
9953
+ "id"
9954
+ ],
9955
+ "onDelete": "cascade",
9956
+ "onUpdate": "no action"
9957
+ },
9958
+ "ai_review_rules_created_by_id_users_id_fk": {
9959
+ "name": "ai_review_rules_created_by_id_users_id_fk",
9960
+ "tableFrom": "ai_review_rules",
9961
+ "tableTo": "users",
9962
+ "columnsFrom": [
9963
+ "created_by_id"
9964
+ ],
9965
+ "columnsTo": [
9966
+ "id"
9967
+ ],
9968
+ "onDelete": "no action",
9969
+ "onUpdate": "no action"
9970
+ }
9971
+ },
9972
+ "compositePrimaryKeys": {},
9973
+ "uniqueConstraints": {},
9974
+ "policies": {},
9975
+ "checkConstraints": {},
9976
+ "isRLSEnabled": false
9977
+ },
9978
+ "public.email_digest_settings": {
9979
+ "name": "email_digest_settings",
9980
+ "schema": "",
9981
+ "columns": {
9982
+ "id": {
9983
+ "name": "id",
9984
+ "type": "text",
9985
+ "primaryKey": true,
9986
+ "notNull": true
9987
+ },
9988
+ "user_id": {
9989
+ "name": "user_id",
9990
+ "type": "text",
9991
+ "primaryKey": false,
9992
+ "notNull": true
9993
+ },
9994
+ "digest_type": {
9995
+ "name": "digest_type",
9996
+ "type": "text",
9997
+ "primaryKey": false,
9998
+ "notNull": true,
9999
+ "default": "'none'"
10000
+ },
10001
+ "digest_time": {
10002
+ "name": "digest_time",
10003
+ "type": "text",
10004
+ "primaryKey": false,
10005
+ "notNull": false,
10006
+ "default": "'09:00'"
10007
+ },
10008
+ "digest_day": {
10009
+ "name": "digest_day",
10010
+ "type": "integer",
10011
+ "primaryKey": false,
10012
+ "notNull": false,
10013
+ "default": 1
10014
+ },
10015
+ "timezone": {
10016
+ "name": "timezone",
10017
+ "type": "text",
10018
+ "primaryKey": false,
10019
+ "notNull": true,
10020
+ "default": "'UTC'"
10021
+ },
10022
+ "last_sent_at": {
10023
+ "name": "last_sent_at",
10024
+ "type": "timestamp",
10025
+ "primaryKey": false,
10026
+ "notNull": false
10027
+ },
10028
+ "created_at": {
10029
+ "name": "created_at",
10030
+ "type": "timestamp",
10031
+ "primaryKey": false,
10032
+ "notNull": true,
10033
+ "default": "now()"
10034
+ },
10035
+ "updated_at": {
10036
+ "name": "updated_at",
10037
+ "type": "timestamp",
10038
+ "primaryKey": false,
10039
+ "notNull": true,
10040
+ "default": "now()"
10041
+ }
10042
+ },
10043
+ "indexes": {},
10044
+ "foreignKeys": {
10045
+ "email_digest_settings_user_id_users_id_fk": {
10046
+ "name": "email_digest_settings_user_id_users_id_fk",
10047
+ "tableFrom": "email_digest_settings",
10048
+ "tableTo": "users",
10049
+ "columnsFrom": [
10050
+ "user_id"
10051
+ ],
10052
+ "columnsTo": [
10053
+ "id"
10054
+ ],
10055
+ "onDelete": "cascade",
10056
+ "onUpdate": "no action"
10057
+ }
10058
+ },
10059
+ "compositePrimaryKeys": {},
10060
+ "uniqueConstraints": {},
10061
+ "policies": {},
10062
+ "checkConstraints": {},
10063
+ "isRLSEnabled": false
10064
+ },
10065
+ "public.notification_preferences": {
10066
+ "name": "notification_preferences",
10067
+ "schema": "",
10068
+ "columns": {
10069
+ "id": {
10070
+ "name": "id",
10071
+ "type": "text",
10072
+ "primaryKey": true,
10073
+ "notNull": true
10074
+ },
10075
+ "user_id": {
10076
+ "name": "user_id",
10077
+ "type": "text",
10078
+ "primaryKey": false,
10079
+ "notNull": true
10080
+ },
10081
+ "event_type": {
10082
+ "name": "event_type",
10083
+ "type": "text",
10084
+ "primaryKey": false,
10085
+ "notNull": true
10086
+ },
10087
+ "email_enabled": {
10088
+ "name": "email_enabled",
10089
+ "type": "boolean",
10090
+ "primaryKey": false,
10091
+ "notNull": false,
10092
+ "default": true
10093
+ },
10094
+ "slack_enabled": {
10095
+ "name": "slack_enabled",
10096
+ "type": "boolean",
10097
+ "primaryKey": false,
10098
+ "notNull": false,
10099
+ "default": false
10100
+ },
10101
+ "in_app_enabled": {
10102
+ "name": "in_app_enabled",
10103
+ "type": "boolean",
10104
+ "primaryKey": false,
10105
+ "notNull": false,
10106
+ "default": true
10107
+ },
10108
+ "browser_push_enabled": {
10109
+ "name": "browser_push_enabled",
10110
+ "type": "boolean",
10111
+ "primaryKey": false,
10112
+ "notNull": false,
10113
+ "default": false
10114
+ },
10115
+ "repository_id": {
10116
+ "name": "repository_id",
10117
+ "type": "text",
10118
+ "primaryKey": false,
10119
+ "notNull": false
10120
+ },
10121
+ "created_at": {
10122
+ "name": "created_at",
10123
+ "type": "timestamp",
10124
+ "primaryKey": false,
10125
+ "notNull": true,
10126
+ "default": "now()"
10127
+ },
10128
+ "updated_at": {
10129
+ "name": "updated_at",
10130
+ "type": "timestamp",
10131
+ "primaryKey": false,
10132
+ "notNull": true,
10133
+ "default": "now()"
10134
+ }
10135
+ },
10136
+ "indexes": {},
10137
+ "foreignKeys": {
10138
+ "notification_preferences_user_id_users_id_fk": {
10139
+ "name": "notification_preferences_user_id_users_id_fk",
10140
+ "tableFrom": "notification_preferences",
10141
+ "tableTo": "users",
10142
+ "columnsFrom": [
10143
+ "user_id"
10144
+ ],
10145
+ "columnsTo": [
10146
+ "id"
10147
+ ],
10148
+ "onDelete": "cascade",
10149
+ "onUpdate": "no action"
10150
+ },
10151
+ "notification_preferences_repository_id_repositories_id_fk": {
10152
+ "name": "notification_preferences_repository_id_repositories_id_fk",
10153
+ "tableFrom": "notification_preferences",
10154
+ "tableTo": "repositories",
10155
+ "columnsFrom": [
10156
+ "repository_id"
10157
+ ],
10158
+ "columnsTo": [
10159
+ "id"
10160
+ ],
10161
+ "onDelete": "cascade",
10162
+ "onUpdate": "no action"
10163
+ }
10164
+ },
10165
+ "compositePrimaryKeys": {},
10166
+ "uniqueConstraints": {},
10167
+ "policies": {},
10168
+ "checkConstraints": {},
10169
+ "isRLSEnabled": false
10170
+ },
10171
+ "public.notification_quiet_hours": {
10172
+ "name": "notification_quiet_hours",
10173
+ "schema": "",
10174
+ "columns": {
10175
+ "id": {
10176
+ "name": "id",
10177
+ "type": "text",
10178
+ "primaryKey": true,
10179
+ "notNull": true
10180
+ },
10181
+ "user_id": {
10182
+ "name": "user_id",
10183
+ "type": "text",
10184
+ "primaryKey": false,
10185
+ "notNull": true
10186
+ },
10187
+ "is_enabled": {
10188
+ "name": "is_enabled",
10189
+ "type": "boolean",
10190
+ "primaryKey": false,
10191
+ "notNull": false,
10192
+ "default": false
10193
+ },
10194
+ "start_time": {
10195
+ "name": "start_time",
10196
+ "type": "text",
10197
+ "primaryKey": false,
10198
+ "notNull": true,
10199
+ "default": "'22:00'"
10200
+ },
10201
+ "end_time": {
10202
+ "name": "end_time",
10203
+ "type": "text",
10204
+ "primaryKey": false,
10205
+ "notNull": true,
10206
+ "default": "'08:00'"
10207
+ },
10208
+ "timezone": {
10209
+ "name": "timezone",
10210
+ "type": "text",
10211
+ "primaryKey": false,
10212
+ "notNull": true,
10213
+ "default": "'UTC'"
10214
+ },
10215
+ "days_of_week": {
10216
+ "name": "days_of_week",
10217
+ "type": "text",
10218
+ "primaryKey": false,
10219
+ "notNull": false,
10220
+ "default": "'0,1,2,3,4,5,6'"
10221
+ },
10222
+ "allow_urgent": {
10223
+ "name": "allow_urgent",
10224
+ "type": "boolean",
10225
+ "primaryKey": false,
10226
+ "notNull": false,
10227
+ "default": true
10228
+ },
10229
+ "created_at": {
10230
+ "name": "created_at",
10231
+ "type": "timestamp",
10232
+ "primaryKey": false,
10233
+ "notNull": true,
10234
+ "default": "now()"
10235
+ },
10236
+ "updated_at": {
10237
+ "name": "updated_at",
10238
+ "type": "timestamp",
10239
+ "primaryKey": false,
10240
+ "notNull": true,
10241
+ "default": "now()"
10242
+ }
10243
+ },
10244
+ "indexes": {},
10245
+ "foreignKeys": {
10246
+ "notification_quiet_hours_user_id_users_id_fk": {
10247
+ "name": "notification_quiet_hours_user_id_users_id_fk",
10248
+ "tableFrom": "notification_quiet_hours",
10249
+ "tableTo": "users",
10250
+ "columnsFrom": [
10251
+ "user_id"
10252
+ ],
10253
+ "columnsTo": [
10254
+ "id"
10255
+ ],
10256
+ "onDelete": "cascade",
10257
+ "onUpdate": "no action"
10258
+ }
10259
+ },
10260
+ "compositePrimaryKeys": {},
10261
+ "uniqueConstraints": {},
10262
+ "policies": {},
10263
+ "checkConstraints": {},
10264
+ "isRLSEnabled": false
10265
+ },
10266
+ "public.push_subscriptions": {
10267
+ "name": "push_subscriptions",
10268
+ "schema": "",
10269
+ "columns": {
10270
+ "id": {
10271
+ "name": "id",
10272
+ "type": "text",
10273
+ "primaryKey": true,
10274
+ "notNull": true
10275
+ },
10276
+ "user_id": {
10277
+ "name": "user_id",
10278
+ "type": "text",
10279
+ "primaryKey": false,
10280
+ "notNull": true
10281
+ },
10282
+ "endpoint": {
10283
+ "name": "endpoint",
10284
+ "type": "text",
10285
+ "primaryKey": false,
10286
+ "notNull": true
10287
+ },
10288
+ "p256dh_key": {
10289
+ "name": "p256dh_key",
10290
+ "type": "text",
10291
+ "primaryKey": false,
10292
+ "notNull": true
10293
+ },
10294
+ "auth_key": {
10295
+ "name": "auth_key",
10296
+ "type": "text",
10297
+ "primaryKey": false,
10298
+ "notNull": true
10299
+ },
10300
+ "user_agent": {
10301
+ "name": "user_agent",
10302
+ "type": "text",
10303
+ "primaryKey": false,
10304
+ "notNull": false
10305
+ },
10306
+ "is_active": {
10307
+ "name": "is_active",
10308
+ "type": "boolean",
10309
+ "primaryKey": false,
10310
+ "notNull": false,
10311
+ "default": true
10312
+ },
10313
+ "last_used_at": {
10314
+ "name": "last_used_at",
10315
+ "type": "timestamp",
10316
+ "primaryKey": false,
10317
+ "notNull": false
10318
+ },
10319
+ "created_at": {
10320
+ "name": "created_at",
10321
+ "type": "timestamp",
10322
+ "primaryKey": false,
10323
+ "notNull": true,
10324
+ "default": "now()"
10325
+ }
10326
+ },
10327
+ "indexes": {},
10328
+ "foreignKeys": {
10329
+ "push_subscriptions_user_id_users_id_fk": {
10330
+ "name": "push_subscriptions_user_id_users_id_fk",
10331
+ "tableFrom": "push_subscriptions",
10332
+ "tableTo": "users",
10333
+ "columnsFrom": [
10334
+ "user_id"
10335
+ ],
10336
+ "columnsTo": [
10337
+ "id"
10338
+ ],
10339
+ "onDelete": "cascade",
10340
+ "onUpdate": "no action"
10341
+ }
10342
+ },
10343
+ "compositePrimaryKeys": {},
10344
+ "uniqueConstraints": {},
10345
+ "policies": {},
10346
+ "checkConstraints": {},
10347
+ "isRLSEnabled": false
10348
+ },
10349
+ "public.sso_configs": {
10350
+ "name": "sso_configs",
10351
+ "schema": "",
10352
+ "columns": {
10353
+ "id": {
10354
+ "name": "id",
10355
+ "type": "text",
10356
+ "primaryKey": true,
10357
+ "notNull": true
10358
+ },
10359
+ "name": {
10360
+ "name": "name",
10361
+ "type": "text",
10362
+ "primaryKey": false,
10363
+ "notNull": true
10364
+ },
10365
+ "type": {
10366
+ "name": "type",
10367
+ "type": "text",
10368
+ "primaryKey": false,
10369
+ "notNull": true,
10370
+ "default": "'oidc'"
10371
+ },
10372
+ "issuer": {
10373
+ "name": "issuer",
10374
+ "type": "text",
10375
+ "primaryKey": false,
10376
+ "notNull": true
10377
+ },
10378
+ "client_id": {
10379
+ "name": "client_id",
10380
+ "type": "text",
10381
+ "primaryKey": false,
10382
+ "notNull": true
10383
+ },
10384
+ "client_secret": {
10385
+ "name": "client_secret",
10386
+ "type": "text",
10387
+ "primaryKey": false,
10388
+ "notNull": true
10389
+ },
10390
+ "scopes": {
10391
+ "name": "scopes",
10392
+ "type": "text",
10393
+ "primaryKey": false,
10394
+ "notNull": false,
10395
+ "default": "'openid,profile,email'"
10396
+ },
10397
+ "authorization_url": {
10398
+ "name": "authorization_url",
10399
+ "type": "text",
10400
+ "primaryKey": false,
10401
+ "notNull": false
10402
+ },
10403
+ "token_url": {
10404
+ "name": "token_url",
10405
+ "type": "text",
10406
+ "primaryKey": false,
10407
+ "notNull": false
10408
+ },
10409
+ "userinfo_url": {
10410
+ "name": "userinfo_url",
10411
+ "type": "text",
10412
+ "primaryKey": false,
10413
+ "notNull": false
10414
+ },
10415
+ "jwks_uri": {
10416
+ "name": "jwks_uri",
10417
+ "type": "text",
10418
+ "primaryKey": false,
10419
+ "notNull": false
10420
+ },
10421
+ "enabled": {
10422
+ "name": "enabled",
10423
+ "type": "boolean",
10424
+ "primaryKey": false,
10425
+ "notNull": false,
10426
+ "default": false
10427
+ },
10428
+ "auto_create_users": {
10429
+ "name": "auto_create_users",
10430
+ "type": "boolean",
10431
+ "primaryKey": false,
10432
+ "notNull": false,
10433
+ "default": true
10434
+ },
10435
+ "allowed_domains": {
10436
+ "name": "allowed_domains",
10437
+ "type": "text",
10438
+ "primaryKey": false,
10439
+ "notNull": false
10440
+ },
10441
+ "default_role": {
10442
+ "name": "default_role",
10443
+ "type": "text",
10444
+ "primaryKey": false,
10445
+ "notNull": false,
10446
+ "default": "'member'"
10447
+ },
10448
+ "organization_id": {
10449
+ "name": "organization_id",
10450
+ "type": "text",
10451
+ "primaryKey": false,
10452
+ "notNull": false
10453
+ },
10454
+ "created_at": {
10455
+ "name": "created_at",
10456
+ "type": "timestamp",
10457
+ "primaryKey": false,
10458
+ "notNull": true,
10459
+ "default": "now()"
10460
+ },
10461
+ "updated_at": {
10462
+ "name": "updated_at",
10463
+ "type": "timestamp",
10464
+ "primaryKey": false,
10465
+ "notNull": true,
10466
+ "default": "now()"
10467
+ },
10468
+ "created_by_id": {
10469
+ "name": "created_by_id",
10470
+ "type": "text",
10471
+ "primaryKey": false,
10472
+ "notNull": false
10473
+ }
10474
+ },
10475
+ "indexes": {},
10476
+ "foreignKeys": {
10477
+ "sso_configs_organization_id_organizations_id_fk": {
10478
+ "name": "sso_configs_organization_id_organizations_id_fk",
10479
+ "tableFrom": "sso_configs",
10480
+ "tableTo": "organizations",
10481
+ "columnsFrom": [
10482
+ "organization_id"
10483
+ ],
10484
+ "columnsTo": [
10485
+ "id"
10486
+ ],
10487
+ "onDelete": "cascade",
10488
+ "onUpdate": "no action"
10489
+ }
10490
+ },
10491
+ "compositePrimaryKeys": {},
10492
+ "uniqueConstraints": {},
10493
+ "policies": {},
10494
+ "checkConstraints": {},
10495
+ "isRLSEnabled": false
10496
+ },
10497
+ "public.repository_path_permissions": {
10498
+ "name": "repository_path_permissions",
10499
+ "schema": "",
10500
+ "columns": {
10501
+ "id": {
10502
+ "name": "id",
10503
+ "type": "text",
10504
+ "primaryKey": true,
10505
+ "notNull": true
10506
+ },
10507
+ "repository_id": {
10508
+ "name": "repository_id",
10509
+ "type": "text",
10510
+ "primaryKey": false,
10511
+ "notNull": true
10512
+ },
10513
+ "path_pattern": {
10514
+ "name": "path_pattern",
10515
+ "type": "text",
10516
+ "primaryKey": false,
10517
+ "notNull": true
10518
+ },
10519
+ "user_id": {
10520
+ "name": "user_id",
10521
+ "type": "text",
10522
+ "primaryKey": false,
10523
+ "notNull": false
10524
+ },
10525
+ "team_id": {
10526
+ "name": "team_id",
10527
+ "type": "text",
10528
+ "primaryKey": false,
10529
+ "notNull": false
10530
+ },
10531
+ "permission": {
10532
+ "name": "permission",
10533
+ "type": "text",
10534
+ "primaryKey": false,
10535
+ "notNull": true,
10536
+ "default": "'write'"
10537
+ },
10538
+ "require_approval": {
10539
+ "name": "require_approval",
10540
+ "type": "text",
10541
+ "primaryKey": false,
10542
+ "notNull": false,
10543
+ "default": "'false'"
10544
+ },
10545
+ "created_at": {
10546
+ "name": "created_at",
10547
+ "type": "timestamp",
10548
+ "primaryKey": false,
10549
+ "notNull": true,
10550
+ "default": "now()"
10551
+ },
10552
+ "updated_at": {
10553
+ "name": "updated_at",
10554
+ "type": "timestamp",
10555
+ "primaryKey": false,
10556
+ "notNull": true,
10557
+ "default": "now()"
10558
+ }
10559
+ },
10560
+ "indexes": {},
10561
+ "foreignKeys": {
10562
+ "repository_path_permissions_repository_id_repositories_id_fk": {
10563
+ "name": "repository_path_permissions_repository_id_repositories_id_fk",
10564
+ "tableFrom": "repository_path_permissions",
10565
+ "tableTo": "repositories",
10566
+ "columnsFrom": [
10567
+ "repository_id"
10568
+ ],
10569
+ "columnsTo": [
10570
+ "id"
10571
+ ],
10572
+ "onDelete": "cascade",
10573
+ "onUpdate": "no action"
10574
+ },
10575
+ "repository_path_permissions_user_id_users_id_fk": {
10576
+ "name": "repository_path_permissions_user_id_users_id_fk",
10577
+ "tableFrom": "repository_path_permissions",
10578
+ "tableTo": "users",
10579
+ "columnsFrom": [
10580
+ "user_id"
10581
+ ],
10582
+ "columnsTo": [
10583
+ "id"
10584
+ ],
10585
+ "onDelete": "cascade",
10586
+ "onUpdate": "no action"
10587
+ },
10588
+ "repository_path_permissions_team_id_teams_id_fk": {
10589
+ "name": "repository_path_permissions_team_id_teams_id_fk",
10590
+ "tableFrom": "repository_path_permissions",
10591
+ "tableTo": "teams",
10592
+ "columnsFrom": [
10593
+ "team_id"
10594
+ ],
10595
+ "columnsTo": [
10596
+ "id"
10597
+ ],
10598
+ "onDelete": "cascade",
10599
+ "onUpdate": "no action"
10600
+ }
10601
+ },
10602
+ "compositePrimaryKeys": {},
10603
+ "uniqueConstraints": {},
10604
+ "policies": {},
10605
+ "checkConstraints": {},
10606
+ "isRLSEnabled": false
10607
+ },
10608
+ "public.pr_state_definitions": {
10609
+ "name": "pr_state_definitions",
10610
+ "schema": "",
10611
+ "columns": {
10612
+ "id": {
10613
+ "name": "id",
10614
+ "type": "text",
10615
+ "primaryKey": true,
10616
+ "notNull": true
10617
+ },
10618
+ "repository_id": {
10619
+ "name": "repository_id",
10620
+ "type": "text",
10621
+ "primaryKey": false,
10622
+ "notNull": true
10623
+ },
10624
+ "name": {
10625
+ "name": "name",
10626
+ "type": "text",
10627
+ "primaryKey": false,
10628
+ "notNull": true
10629
+ },
10630
+ "display_name": {
10631
+ "name": "display_name",
10632
+ "type": "text",
10633
+ "primaryKey": false,
10634
+ "notNull": true
10635
+ },
10636
+ "description": {
10637
+ "name": "description",
10638
+ "type": "text",
10639
+ "primaryKey": false,
10640
+ "notNull": false
10641
+ },
10642
+ "color": {
10643
+ "name": "color",
10644
+ "type": "text",
10645
+ "primaryKey": false,
10646
+ "notNull": true,
10647
+ "default": "'#6B7280'"
10648
+ },
10649
+ "icon": {
10650
+ "name": "icon",
10651
+ "type": "text",
10652
+ "primaryKey": false,
10653
+ "notNull": false
10654
+ },
10655
+ "order": {
10656
+ "name": "order",
10657
+ "type": "integer",
10658
+ "primaryKey": false,
10659
+ "notNull": true,
10660
+ "default": 0
10661
+ },
10662
+ "is_default": {
10663
+ "name": "is_default",
10664
+ "type": "boolean",
10665
+ "primaryKey": false,
10666
+ "notNull": false,
10667
+ "default": false
10668
+ },
10669
+ "is_final": {
10670
+ "name": "is_final",
10671
+ "type": "boolean",
10672
+ "primaryKey": false,
10673
+ "notNull": false,
10674
+ "default": false
10675
+ },
10676
+ "allow_merge": {
10677
+ "name": "allow_merge",
10678
+ "type": "boolean",
10679
+ "primaryKey": false,
10680
+ "notNull": false,
10681
+ "default": false
10682
+ },
10683
+ "require_code_owner": {
10684
+ "name": "require_code_owner",
10685
+ "type": "boolean",
10686
+ "primaryKey": false,
10687
+ "notNull": false,
10688
+ "default": false
10689
+ },
10690
+ "created_at": {
10691
+ "name": "created_at",
10692
+ "type": "timestamp",
10693
+ "primaryKey": false,
10694
+ "notNull": true,
10695
+ "default": "now()"
10696
+ },
10697
+ "updated_at": {
10698
+ "name": "updated_at",
10699
+ "type": "timestamp",
10700
+ "primaryKey": false,
10701
+ "notNull": true,
10702
+ "default": "now()"
10703
+ }
10704
+ },
10705
+ "indexes": {},
10706
+ "foreignKeys": {
10707
+ "pr_state_definitions_repository_id_repositories_id_fk": {
10708
+ "name": "pr_state_definitions_repository_id_repositories_id_fk",
10709
+ "tableFrom": "pr_state_definitions",
10710
+ "tableTo": "repositories",
10711
+ "columnsFrom": [
10712
+ "repository_id"
10713
+ ],
10714
+ "columnsTo": [
10715
+ "id"
10716
+ ],
10717
+ "onDelete": "cascade",
10718
+ "onUpdate": "no action"
10719
+ }
10720
+ },
10721
+ "compositePrimaryKeys": {},
10722
+ "uniqueConstraints": {},
10723
+ "policies": {},
10724
+ "checkConstraints": {},
10725
+ "isRLSEnabled": false
10726
+ },
10727
+ "public.pr_state_reviewers": {
10728
+ "name": "pr_state_reviewers",
10729
+ "schema": "",
10730
+ "columns": {
10731
+ "id": {
10732
+ "name": "id",
10733
+ "type": "text",
10734
+ "primaryKey": true,
10735
+ "notNull": true
10736
+ },
10737
+ "state_definition_id": {
10738
+ "name": "state_definition_id",
10739
+ "type": "text",
10740
+ "primaryKey": false,
10741
+ "notNull": true
10742
+ },
10743
+ "user_id": {
10744
+ "name": "user_id",
10745
+ "type": "text",
10746
+ "primaryKey": false,
10747
+ "notNull": false
10748
+ },
10749
+ "team_id": {
10750
+ "name": "team_id",
10751
+ "type": "text",
10752
+ "primaryKey": false,
10753
+ "notNull": false
10754
+ },
10755
+ "required_count": {
10756
+ "name": "required_count",
10757
+ "type": "integer",
10758
+ "primaryKey": false,
10759
+ "notNull": false,
10760
+ "default": 1
10761
+ },
10762
+ "created_at": {
10763
+ "name": "created_at",
10764
+ "type": "timestamp",
10765
+ "primaryKey": false,
10766
+ "notNull": true,
10767
+ "default": "now()"
10768
+ }
10769
+ },
10770
+ "indexes": {},
10771
+ "foreignKeys": {
10772
+ "pr_state_reviewers_state_definition_id_pr_state_definitions_id_fk": {
10773
+ "name": "pr_state_reviewers_state_definition_id_pr_state_definitions_id_fk",
10774
+ "tableFrom": "pr_state_reviewers",
10775
+ "tableTo": "pr_state_definitions",
10776
+ "columnsFrom": [
10777
+ "state_definition_id"
10778
+ ],
10779
+ "columnsTo": [
10780
+ "id"
10781
+ ],
10782
+ "onDelete": "cascade",
10783
+ "onUpdate": "no action"
10784
+ },
10785
+ "pr_state_reviewers_user_id_users_id_fk": {
10786
+ "name": "pr_state_reviewers_user_id_users_id_fk",
10787
+ "tableFrom": "pr_state_reviewers",
10788
+ "tableTo": "users",
10789
+ "columnsFrom": [
10790
+ "user_id"
10791
+ ],
10792
+ "columnsTo": [
10793
+ "id"
10794
+ ],
10795
+ "onDelete": "cascade",
10796
+ "onUpdate": "no action"
10797
+ },
10798
+ "pr_state_reviewers_team_id_teams_id_fk": {
10799
+ "name": "pr_state_reviewers_team_id_teams_id_fk",
10800
+ "tableFrom": "pr_state_reviewers",
10801
+ "tableTo": "teams",
10802
+ "columnsFrom": [
10803
+ "team_id"
10804
+ ],
10805
+ "columnsTo": [
10806
+ "id"
10807
+ ],
10808
+ "onDelete": "cascade",
10809
+ "onUpdate": "no action"
10810
+ }
10811
+ },
10812
+ "compositePrimaryKeys": {},
10813
+ "uniqueConstraints": {},
10814
+ "policies": {},
10815
+ "checkConstraints": {},
10816
+ "isRLSEnabled": false
10817
+ },
10818
+ "public.pr_state_transitions": {
10819
+ "name": "pr_state_transitions",
10820
+ "schema": "",
10821
+ "columns": {
10822
+ "id": {
10823
+ "name": "id",
10824
+ "type": "text",
10825
+ "primaryKey": true,
10826
+ "notNull": true
10827
+ },
10828
+ "pull_request_id": {
10829
+ "name": "pull_request_id",
10830
+ "type": "text",
10831
+ "primaryKey": false,
10832
+ "notNull": true
10833
+ },
10834
+ "from_state": {
10835
+ "name": "from_state",
10836
+ "type": "text",
10837
+ "primaryKey": false,
10838
+ "notNull": false
10839
+ },
10840
+ "to_state": {
10841
+ "name": "to_state",
10842
+ "type": "text",
10843
+ "primaryKey": false,
10844
+ "notNull": true
10845
+ },
10846
+ "changed_by_id": {
10847
+ "name": "changed_by_id",
10848
+ "type": "text",
10849
+ "primaryKey": false,
10850
+ "notNull": true
10851
+ },
10852
+ "reason": {
10853
+ "name": "reason",
10854
+ "type": "text",
10855
+ "primaryKey": false,
10856
+ "notNull": false
10857
+ },
10858
+ "created_at": {
10859
+ "name": "created_at",
10860
+ "type": "timestamp",
10861
+ "primaryKey": false,
10862
+ "notNull": true,
10863
+ "default": "now()"
10864
+ }
10865
+ },
10866
+ "indexes": {},
10867
+ "foreignKeys": {
10868
+ "pr_state_transitions_changed_by_id_users_id_fk": {
10869
+ "name": "pr_state_transitions_changed_by_id_users_id_fk",
10870
+ "tableFrom": "pr_state_transitions",
10871
+ "tableTo": "users",
10872
+ "columnsFrom": [
10873
+ "changed_by_id"
10874
+ ],
10875
+ "columnsTo": [
10876
+ "id"
10877
+ ],
10878
+ "onDelete": "no action",
10879
+ "onUpdate": "no action"
10880
+ }
10881
+ },
10882
+ "compositePrimaryKeys": {},
10883
+ "uniqueConstraints": {},
10884
+ "policies": {},
10885
+ "checkConstraints": {},
10886
+ "isRLSEnabled": false
10887
+ },
10888
+ "public.issue_statuses": {
10889
+ "name": "issue_statuses",
10890
+ "schema": "",
10891
+ "columns": {
10892
+ "id": {
10893
+ "name": "id",
10894
+ "type": "text",
10895
+ "primaryKey": true,
10896
+ "notNull": true
10897
+ },
10898
+ "repository_id": {
10899
+ "name": "repository_id",
10900
+ "type": "text",
10901
+ "primaryKey": false,
10902
+ "notNull": true
10903
+ },
10904
+ "name": {
10905
+ "name": "name",
10906
+ "type": "text",
10907
+ "primaryKey": false,
10908
+ "notNull": true
10909
+ },
10910
+ "color": {
10911
+ "name": "color",
10912
+ "type": "text",
10913
+ "primaryKey": false,
10914
+ "notNull": true,
10915
+ "default": "'#808080'"
10916
+ },
10917
+ "order": {
10918
+ "name": "order",
10919
+ "type": "integer",
10920
+ "primaryKey": false,
10921
+ "notNull": true,
10922
+ "default": 0
10923
+ },
10924
+ "type": {
10925
+ "name": "type",
10926
+ "type": "text",
10927
+ "primaryKey": false,
10928
+ "notNull": true,
10929
+ "default": "'open'"
10930
+ },
10931
+ "is_default": {
10932
+ "name": "is_default",
10933
+ "type": "integer",
10934
+ "primaryKey": false,
10935
+ "notNull": false,
10936
+ "default": 0
10937
+ },
10938
+ "created_at": {
10939
+ "name": "created_at",
10940
+ "type": "timestamp",
10941
+ "primaryKey": false,
10942
+ "notNull": true,
10943
+ "default": "now()"
10944
+ },
10945
+ "updated_at": {
10946
+ "name": "updated_at",
10947
+ "type": "timestamp",
10948
+ "primaryKey": false,
10949
+ "notNull": true,
10950
+ "default": "now()"
10951
+ }
10952
+ },
10953
+ "indexes": {},
10954
+ "foreignKeys": {
10955
+ "issue_statuses_repository_id_repositories_id_fk": {
10956
+ "name": "issue_statuses_repository_id_repositories_id_fk",
10957
+ "tableFrom": "issue_statuses",
10958
+ "tableTo": "repositories",
10959
+ "columnsFrom": [
10960
+ "repository_id"
10961
+ ],
10962
+ "columnsTo": [
10963
+ "id"
10964
+ ],
10965
+ "onDelete": "cascade",
10966
+ "onUpdate": "no action"
10967
+ }
10968
+ },
10969
+ "compositePrimaryKeys": {},
10970
+ "uniqueConstraints": {},
10971
+ "policies": {},
10972
+ "checkConstraints": {},
10973
+ "isRLSEnabled": false
10974
+ },
10975
+ "public.custom_field_definitions": {
10976
+ "name": "custom_field_definitions",
10977
+ "schema": "",
10978
+ "columns": {
10979
+ "id": {
10980
+ "name": "id",
10981
+ "type": "text",
10982
+ "primaryKey": true,
10983
+ "notNull": true
10984
+ },
10985
+ "repository_id": {
10986
+ "name": "repository_id",
10987
+ "type": "text",
10988
+ "primaryKey": false,
10989
+ "notNull": true
10990
+ },
10991
+ "name": {
10992
+ "name": "name",
10993
+ "type": "text",
10994
+ "primaryKey": false,
10995
+ "notNull": true
10996
+ },
10997
+ "description": {
10998
+ "name": "description",
10999
+ "type": "text",
11000
+ "primaryKey": false,
11001
+ "notNull": false
11002
+ },
11003
+ "type": {
11004
+ "name": "type",
11005
+ "type": "text",
11006
+ "primaryKey": false,
11007
+ "notNull": true
11008
+ },
11009
+ "options": {
11010
+ "name": "options",
11011
+ "type": "json",
11012
+ "primaryKey": false,
11013
+ "notNull": false
11014
+ },
11015
+ "required": {
11016
+ "name": "required",
11017
+ "type": "boolean",
11018
+ "primaryKey": false,
11019
+ "notNull": false,
11020
+ "default": false
11021
+ },
11022
+ "order": {
11023
+ "name": "order",
11024
+ "type": "integer",
11025
+ "primaryKey": false,
11026
+ "notNull": false,
11027
+ "default": 0
11028
+ },
11029
+ "created_at": {
11030
+ "name": "created_at",
11031
+ "type": "timestamp",
11032
+ "primaryKey": false,
11033
+ "notNull": true,
11034
+ "default": "now()"
11035
+ },
11036
+ "updated_at": {
11037
+ "name": "updated_at",
11038
+ "type": "timestamp",
11039
+ "primaryKey": false,
11040
+ "notNull": true,
11041
+ "default": "now()"
11042
+ }
11043
+ },
11044
+ "indexes": {},
11045
+ "foreignKeys": {
11046
+ "custom_field_definitions_repository_id_repositories_id_fk": {
11047
+ "name": "custom_field_definitions_repository_id_repositories_id_fk",
11048
+ "tableFrom": "custom_field_definitions",
11049
+ "tableTo": "repositories",
11050
+ "columnsFrom": [
11051
+ "repository_id"
11052
+ ],
11053
+ "columnsTo": [
11054
+ "id"
11055
+ ],
11056
+ "onDelete": "cascade",
11057
+ "onUpdate": "no action"
11058
+ }
11059
+ },
11060
+ "compositePrimaryKeys": {},
11061
+ "uniqueConstraints": {},
11062
+ "policies": {},
11063
+ "checkConstraints": {},
11064
+ "isRLSEnabled": false
11065
+ },
11066
+ "public.issue_custom_field_values": {
11067
+ "name": "issue_custom_field_values",
11068
+ "schema": "",
11069
+ "columns": {
11070
+ "id": {
11071
+ "name": "id",
11072
+ "type": "text",
11073
+ "primaryKey": true,
11074
+ "notNull": true
11075
+ },
11076
+ "issue_id": {
11077
+ "name": "issue_id",
11078
+ "type": "text",
11079
+ "primaryKey": false,
11080
+ "notNull": true
11081
+ },
11082
+ "field_id": {
11083
+ "name": "field_id",
11084
+ "type": "text",
11085
+ "primaryKey": false,
11086
+ "notNull": true
11087
+ },
11088
+ "value": {
11089
+ "name": "value",
11090
+ "type": "text",
11091
+ "primaryKey": false,
11092
+ "notNull": false
11093
+ },
11094
+ "created_at": {
11095
+ "name": "created_at",
11096
+ "type": "timestamp",
11097
+ "primaryKey": false,
11098
+ "notNull": true,
11099
+ "default": "now()"
11100
+ },
11101
+ "updated_at": {
11102
+ "name": "updated_at",
11103
+ "type": "timestamp",
11104
+ "primaryKey": false,
11105
+ "notNull": true,
11106
+ "default": "now()"
11107
+ }
11108
+ },
11109
+ "indexes": {},
11110
+ "foreignKeys": {
11111
+ "issue_custom_field_values_issue_id_issues_id_fk": {
11112
+ "name": "issue_custom_field_values_issue_id_issues_id_fk",
11113
+ "tableFrom": "issue_custom_field_values",
11114
+ "tableTo": "issues",
11115
+ "columnsFrom": [
11116
+ "issue_id"
11117
+ ],
11118
+ "columnsTo": [
11119
+ "id"
11120
+ ],
11121
+ "onDelete": "cascade",
11122
+ "onUpdate": "no action"
11123
+ },
11124
+ "issue_custom_field_values_field_id_custom_field_definitions_id_fk": {
11125
+ "name": "issue_custom_field_values_field_id_custom_field_definitions_id_fk",
11126
+ "tableFrom": "issue_custom_field_values",
11127
+ "tableTo": "custom_field_definitions",
11128
+ "columnsFrom": [
11129
+ "field_id"
11130
+ ],
11131
+ "columnsTo": [
11132
+ "id"
11133
+ ],
11134
+ "onDelete": "cascade",
11135
+ "onUpdate": "no action"
11136
+ }
11137
+ },
11138
+ "compositePrimaryKeys": {},
11139
+ "uniqueConstraints": {},
11140
+ "policies": {},
11141
+ "checkConstraints": {},
11142
+ "isRLSEnabled": false
11143
+ },
11144
+ "public.auto_merge_rules": {
11145
+ "name": "auto_merge_rules",
11146
+ "schema": "",
11147
+ "columns": {
11148
+ "id": {
11149
+ "name": "id",
11150
+ "type": "text",
11151
+ "primaryKey": true,
11152
+ "notNull": true
11153
+ },
11154
+ "repository_id": {
11155
+ "name": "repository_id",
11156
+ "type": "text",
11157
+ "primaryKey": false,
11158
+ "notNull": true
11159
+ },
11160
+ "name": {
11161
+ "name": "name",
11162
+ "type": "text",
11163
+ "primaryKey": false,
11164
+ "notNull": true
11165
+ },
11166
+ "description": {
11167
+ "name": "description",
11168
+ "type": "text",
11169
+ "primaryKey": false,
11170
+ "notNull": false
11171
+ },
11172
+ "match_labels": {
11173
+ "name": "match_labels",
11174
+ "type": "text",
11175
+ "primaryKey": false,
11176
+ "notNull": false
11177
+ },
11178
+ "required_labels": {
11179
+ "name": "required_labels",
11180
+ "type": "text",
11181
+ "primaryKey": false,
11182
+ "notNull": false
11183
+ },
11184
+ "required_checks": {
11185
+ "name": "required_checks",
11186
+ "type": "text",
11187
+ "primaryKey": false,
11188
+ "notNull": false
11189
+ },
11190
+ "min_approvals": {
11191
+ "name": "min_approvals",
11192
+ "type": "integer",
11193
+ "primaryKey": false,
11194
+ "notNull": false,
11195
+ "default": 0
11196
+ },
11197
+ "require_code_owner": {
11198
+ "name": "require_code_owner",
11199
+ "type": "boolean",
11200
+ "primaryKey": false,
11201
+ "notNull": false,
11202
+ "default": false
11203
+ },
11204
+ "allow_draft": {
11205
+ "name": "allow_draft",
11206
+ "type": "boolean",
11207
+ "primaryKey": false,
11208
+ "notNull": false,
11209
+ "default": false
11210
+ },
11211
+ "min_time_in_queue_minutes": {
11212
+ "name": "min_time_in_queue_minutes",
11213
+ "type": "integer",
11214
+ "primaryKey": false,
11215
+ "notNull": false,
11216
+ "default": 0
11217
+ },
11218
+ "merge_method": {
11219
+ "name": "merge_method",
11220
+ "type": "text",
11221
+ "primaryKey": false,
11222
+ "notNull": false
11223
+ },
11224
+ "is_enabled": {
11225
+ "name": "is_enabled",
11226
+ "type": "boolean",
11227
+ "primaryKey": false,
11228
+ "notNull": false,
11229
+ "default": true
11230
+ },
11231
+ "match_count": {
11232
+ "name": "match_count",
11233
+ "type": "integer",
11234
+ "primaryKey": false,
11235
+ "notNull": false,
11236
+ "default": 0
11237
+ },
11238
+ "last_matched_at": {
11239
+ "name": "last_matched_at",
11240
+ "type": "timestamp",
11241
+ "primaryKey": false,
11242
+ "notNull": false
11243
+ },
11244
+ "last_mismatch_reason": {
11245
+ "name": "last_mismatch_reason",
11246
+ "type": "text",
11247
+ "primaryKey": false,
11248
+ "notNull": false
11249
+ },
11250
+ "created_by_id": {
11251
+ "name": "created_by_id",
11252
+ "type": "text",
11253
+ "primaryKey": false,
11254
+ "notNull": false
11255
+ },
11256
+ "created_at": {
11257
+ "name": "created_at",
11258
+ "type": "timestamp",
11259
+ "primaryKey": false,
11260
+ "notNull": true,
11261
+ "default": "now()"
11262
+ },
11263
+ "updated_at": {
11264
+ "name": "updated_at",
11265
+ "type": "timestamp",
11266
+ "primaryKey": false,
11267
+ "notNull": true,
11268
+ "default": "now()"
11269
+ }
11270
+ },
11271
+ "indexes": {},
11272
+ "foreignKeys": {
11273
+ "auto_merge_rules_repository_id_repositories_id_fk": {
11274
+ "name": "auto_merge_rules_repository_id_repositories_id_fk",
11275
+ "tableFrom": "auto_merge_rules",
11276
+ "tableTo": "repositories",
11277
+ "columnsFrom": [
11278
+ "repository_id"
11279
+ ],
11280
+ "columnsTo": [
11281
+ "id"
11282
+ ],
11283
+ "onDelete": "cascade",
11284
+ "onUpdate": "no action"
11285
+ },
11286
+ "auto_merge_rules_created_by_id_users_id_fk": {
11287
+ "name": "auto_merge_rules_created_by_id_users_id_fk",
11288
+ "tableFrom": "auto_merge_rules",
11289
+ "tableTo": "users",
11290
+ "columnsFrom": [
11291
+ "created_by_id"
11292
+ ],
11293
+ "columnsTo": [
11294
+ "id"
11295
+ ],
11296
+ "onDelete": "no action",
11297
+ "onUpdate": "no action"
11298
+ }
11299
+ },
11300
+ "compositePrimaryKeys": {},
11301
+ "uniqueConstraints": {},
11302
+ "policies": {},
11303
+ "checkConstraints": {},
11304
+ "isRLSEnabled": false
11305
+ },
11306
+ "public.external_ci_integrations": {
11307
+ "name": "external_ci_integrations",
11308
+ "schema": "",
11309
+ "columns": {
11310
+ "id": {
11311
+ "name": "id",
11312
+ "type": "text",
11313
+ "primaryKey": true,
11314
+ "notNull": true
11315
+ },
11316
+ "repository_id": {
11317
+ "name": "repository_id",
11318
+ "type": "text",
11319
+ "primaryKey": false,
11320
+ "notNull": true
11321
+ },
11322
+ "token_hash": {
11323
+ "name": "token_hash",
11324
+ "type": "text",
11325
+ "primaryKey": false,
11326
+ "notNull": true
11327
+ },
11328
+ "name": {
11329
+ "name": "name",
11330
+ "type": "text",
11331
+ "primaryKey": false,
11332
+ "notNull": false
11333
+ },
11334
+ "created_by_id": {
11335
+ "name": "created_by_id",
11336
+ "type": "text",
11337
+ "primaryKey": false,
11338
+ "notNull": false
11339
+ },
11340
+ "created_at": {
11341
+ "name": "created_at",
11342
+ "type": "timestamp",
11343
+ "primaryKey": false,
11344
+ "notNull": true,
11345
+ "default": "now()"
11346
+ },
11347
+ "updated_at": {
11348
+ "name": "updated_at",
11349
+ "type": "timestamp",
11350
+ "primaryKey": false,
11351
+ "notNull": true,
11352
+ "default": "now()"
11353
+ },
11354
+ "last_used_at": {
11355
+ "name": "last_used_at",
11356
+ "type": "timestamp",
11357
+ "primaryKey": false,
11358
+ "notNull": false
11359
+ }
11360
+ },
11361
+ "indexes": {},
11362
+ "foreignKeys": {
11363
+ "external_ci_integrations_repository_id_repositories_id_fk": {
11364
+ "name": "external_ci_integrations_repository_id_repositories_id_fk",
11365
+ "tableFrom": "external_ci_integrations",
11366
+ "tableTo": "repositories",
11367
+ "columnsFrom": [
11368
+ "repository_id"
11369
+ ],
11370
+ "columnsTo": [
11371
+ "id"
11372
+ ],
11373
+ "onDelete": "cascade",
11374
+ "onUpdate": "no action"
11375
+ },
11376
+ "external_ci_integrations_created_by_id_users_id_fk": {
11377
+ "name": "external_ci_integrations_created_by_id_users_id_fk",
11378
+ "tableFrom": "external_ci_integrations",
11379
+ "tableTo": "users",
11380
+ "columnsFrom": [
11381
+ "created_by_id"
11382
+ ],
11383
+ "columnsTo": [
11384
+ "id"
11385
+ ],
11386
+ "onDelete": "no action",
11387
+ "onUpdate": "no action"
11388
+ }
11389
+ },
11390
+ "compositePrimaryKeys": {},
11391
+ "uniqueConstraints": {},
11392
+ "policies": {},
11393
+ "checkConstraints": {},
11394
+ "isRLSEnabled": false
11395
+ },
11396
+ "public.review_requirements": {
11397
+ "name": "review_requirements",
11398
+ "schema": "",
11399
+ "columns": {
11400
+ "id": {
11401
+ "name": "id",
11402
+ "type": "text",
11403
+ "primaryKey": true,
11404
+ "notNull": true
11405
+ },
11406
+ "repository_id": {
11407
+ "name": "repository_id",
11408
+ "type": "text",
11409
+ "primaryKey": false,
11410
+ "notNull": true
11411
+ },
11412
+ "min_approvals": {
11413
+ "name": "min_approvals",
11414
+ "type": "integer",
11415
+ "primaryKey": false,
11416
+ "notNull": false,
11417
+ "default": 1
11418
+ },
11419
+ "require_code_owner": {
11420
+ "name": "require_code_owner",
11421
+ "type": "boolean",
11422
+ "primaryKey": false,
11423
+ "notNull": false,
11424
+ "default": false
11425
+ },
11426
+ "require_team_lead": {
11427
+ "name": "require_team_lead",
11428
+ "type": "boolean",
11429
+ "primaryKey": false,
11430
+ "notNull": false,
11431
+ "default": false
11432
+ },
11433
+ "dismiss_stale_reviews": {
11434
+ "name": "dismiss_stale_reviews",
11435
+ "type": "boolean",
11436
+ "primaryKey": false,
11437
+ "notNull": false,
11438
+ "default": false
11439
+ },
11440
+ "require_rereview_on_push": {
11441
+ "name": "require_rereview_on_push",
11442
+ "type": "boolean",
11443
+ "primaryKey": false,
11444
+ "notNull": false,
11445
+ "default": false
11446
+ },
11447
+ "created_by_id": {
11448
+ "name": "created_by_id",
11449
+ "type": "text",
11450
+ "primaryKey": false,
11451
+ "notNull": false
11452
+ },
11453
+ "created_at": {
11454
+ "name": "created_at",
11455
+ "type": "timestamp",
11456
+ "primaryKey": false,
11457
+ "notNull": true,
11458
+ "default": "now()"
11459
+ },
11460
+ "updated_at": {
11461
+ "name": "updated_at",
11462
+ "type": "timestamp",
11463
+ "primaryKey": false,
11464
+ "notNull": true,
11465
+ "default": "now()"
11466
+ }
11467
+ },
11468
+ "indexes": {},
11469
+ "foreignKeys": {
11470
+ "review_requirements_repository_id_repositories_id_fk": {
11471
+ "name": "review_requirements_repository_id_repositories_id_fk",
11472
+ "tableFrom": "review_requirements",
11473
+ "tableTo": "repositories",
11474
+ "columnsFrom": [
11475
+ "repository_id"
11476
+ ],
11477
+ "columnsTo": [
11478
+ "id"
11479
+ ],
11480
+ "onDelete": "cascade",
11481
+ "onUpdate": "no action"
11482
+ },
11483
+ "review_requirements_created_by_id_users_id_fk": {
11484
+ "name": "review_requirements_created_by_id_users_id_fk",
11485
+ "tableFrom": "review_requirements",
11486
+ "tableTo": "users",
11487
+ "columnsFrom": [
11488
+ "created_by_id"
11489
+ ],
11490
+ "columnsTo": [
11491
+ "id"
11492
+ ],
11493
+ "onDelete": "no action",
11494
+ "onUpdate": "no action"
11495
+ }
11496
+ },
11497
+ "compositePrimaryKeys": {},
11498
+ "uniqueConstraints": {},
11499
+ "policies": {},
11500
+ "checkConstraints": {},
11501
+ "isRLSEnabled": false
11502
+ },
11503
+ "public.reviewer_rules": {
11504
+ "name": "reviewer_rules",
11505
+ "schema": "",
11506
+ "columns": {
11507
+ "id": {
11508
+ "name": "id",
11509
+ "type": "text",
11510
+ "primaryKey": true,
11511
+ "notNull": true
11512
+ },
11513
+ "repository_id": {
11514
+ "name": "repository_id",
11515
+ "type": "text",
11516
+ "primaryKey": false,
11517
+ "notNull": true
11518
+ },
11519
+ "name": {
11520
+ "name": "name",
11521
+ "type": "text",
11522
+ "primaryKey": false,
11523
+ "notNull": true
11524
+ },
11525
+ "rule_type": {
11526
+ "name": "rule_type",
11527
+ "type": "text",
11528
+ "primaryKey": false,
11529
+ "notNull": true
11530
+ },
11531
+ "target_id": {
11532
+ "name": "target_id",
11533
+ "type": "text",
11534
+ "primaryKey": false,
11535
+ "notNull": false
11536
+ },
11537
+ "count": {
11538
+ "name": "count",
11539
+ "type": "integer",
11540
+ "primaryKey": false,
11541
+ "notNull": false
11542
+ },
11543
+ "path_pattern": {
11544
+ "name": "path_pattern",
11545
+ "type": "text",
11546
+ "primaryKey": false,
11547
+ "notNull": false
11548
+ },
11549
+ "is_required": {
11550
+ "name": "is_required",
11551
+ "type": "boolean",
11552
+ "primaryKey": false,
11553
+ "notNull": false,
11554
+ "default": true
11555
+ },
11556
+ "is_enabled": {
11557
+ "name": "is_enabled",
11558
+ "type": "boolean",
11559
+ "primaryKey": false,
11560
+ "notNull": false,
11561
+ "default": true
11562
+ },
11563
+ "created_by_id": {
11564
+ "name": "created_by_id",
11565
+ "type": "text",
11566
+ "primaryKey": false,
11567
+ "notNull": false
11568
+ },
11569
+ "created_at": {
11570
+ "name": "created_at",
11571
+ "type": "timestamp",
11572
+ "primaryKey": false,
11573
+ "notNull": true,
11574
+ "default": "now()"
11575
+ },
11576
+ "updated_at": {
11577
+ "name": "updated_at",
11578
+ "type": "timestamp",
11579
+ "primaryKey": false,
11580
+ "notNull": true,
11581
+ "default": "now()"
11582
+ }
11583
+ },
11584
+ "indexes": {},
11585
+ "foreignKeys": {
11586
+ "reviewer_rules_repository_id_repositories_id_fk": {
11587
+ "name": "reviewer_rules_repository_id_repositories_id_fk",
11588
+ "tableFrom": "reviewer_rules",
11589
+ "tableTo": "repositories",
11590
+ "columnsFrom": [
11591
+ "repository_id"
11592
+ ],
11593
+ "columnsTo": [
11594
+ "id"
11595
+ ],
11596
+ "onDelete": "cascade",
11597
+ "onUpdate": "no action"
11598
+ },
11599
+ "reviewer_rules_created_by_id_users_id_fk": {
11600
+ "name": "reviewer_rules_created_by_id_users_id_fk",
11601
+ "tableFrom": "reviewer_rules",
11602
+ "tableTo": "users",
11603
+ "columnsFrom": [
11604
+ "created_by_id"
11605
+ ],
11606
+ "columnsTo": [
11607
+ "id"
11608
+ ],
11609
+ "onDelete": "no action",
11610
+ "onUpdate": "no action"
11611
+ }
11612
+ },
11613
+ "compositePrimaryKeys": {},
11614
+ "uniqueConstraints": {},
11615
+ "policies": {},
11616
+ "checkConstraints": {},
11617
+ "isRLSEnabled": false
11618
+ },
11619
+ "public.api_change_detections": {
11620
+ "name": "api_change_detections",
11621
+ "schema": "",
11622
+ "columns": {
11623
+ "id": {
11624
+ "name": "id",
11625
+ "type": "text",
11626
+ "primaryKey": true,
11627
+ "notNull": true
11628
+ },
11629
+ "pull_request_id": {
11630
+ "name": "pull_request_id",
11631
+ "type": "text",
11632
+ "primaryKey": false,
11633
+ "notNull": true
11634
+ },
11635
+ "change_type": {
11636
+ "name": "change_type",
11637
+ "type": "text",
11638
+ "primaryKey": false,
11639
+ "notNull": true
11640
+ },
11641
+ "path": {
11642
+ "name": "path",
11643
+ "type": "text",
11644
+ "primaryKey": false,
11645
+ "notNull": true
11646
+ },
11647
+ "method": {
11648
+ "name": "method",
11649
+ "type": "text",
11650
+ "primaryKey": false,
11651
+ "notNull": false
11652
+ },
11653
+ "breaking": {
11654
+ "name": "breaking",
11655
+ "type": "boolean",
11656
+ "primaryKey": false,
11657
+ "notNull": false,
11658
+ "default": false
11659
+ },
11660
+ "details": {
11661
+ "name": "details",
11662
+ "type": "text",
11663
+ "primaryKey": false,
11664
+ "notNull": true
11665
+ },
11666
+ "affected_files": {
11667
+ "name": "affected_files",
11668
+ "type": "jsonb",
11669
+ "primaryKey": false,
11670
+ "notNull": false
11671
+ },
11672
+ "created_at": {
11673
+ "name": "created_at",
11674
+ "type": "timestamp",
11675
+ "primaryKey": false,
11676
+ "notNull": true,
11677
+ "default": "now()"
11678
+ }
11679
+ },
11680
+ "indexes": {},
11681
+ "foreignKeys": {
11682
+ "api_change_detections_pull_request_id_pull_requests_id_fk": {
11683
+ "name": "api_change_detections_pull_request_id_pull_requests_id_fk",
11684
+ "tableFrom": "api_change_detections",
11685
+ "tableTo": "pull_requests",
11686
+ "columnsFrom": [
11687
+ "pull_request_id"
11688
+ ],
11689
+ "columnsTo": [
11690
+ "id"
11691
+ ],
11692
+ "onDelete": "cascade",
11693
+ "onUpdate": "no action"
11694
+ }
11695
+ },
11696
+ "compositePrimaryKeys": {},
11697
+ "uniqueConstraints": {},
11698
+ "policies": {},
11699
+ "checkConstraints": {},
11700
+ "isRLSEnabled": false
11701
+ },
11702
+ "public.breaking_changes": {
11703
+ "name": "breaking_changes",
11704
+ "schema": "",
11705
+ "columns": {
11706
+ "id": {
11707
+ "name": "id",
11708
+ "type": "text",
11709
+ "primaryKey": true,
11710
+ "notNull": true
11711
+ },
11712
+ "pull_request_id": {
11713
+ "name": "pull_request_id",
11714
+ "type": "text",
11715
+ "primaryKey": false,
11716
+ "notNull": true
11717
+ },
11718
+ "change_type": {
11719
+ "name": "change_type",
11720
+ "type": "text",
11721
+ "primaryKey": false,
11722
+ "notNull": true
11723
+ },
11724
+ "severity": {
11725
+ "name": "severity",
11726
+ "type": "text",
11727
+ "primaryKey": false,
11728
+ "notNull": true
11729
+ },
11730
+ "description": {
11731
+ "name": "description",
11732
+ "type": "text",
11733
+ "primaryKey": false,
11734
+ "notNull": true
11735
+ },
11736
+ "affected_files": {
11737
+ "name": "affected_files",
11738
+ "type": "jsonb",
11739
+ "primaryKey": false,
11740
+ "notNull": false
11741
+ },
11742
+ "suggested_action": {
11743
+ "name": "suggested_action",
11744
+ "type": "text",
11745
+ "primaryKey": false,
11746
+ "notNull": false
11747
+ },
11748
+ "acknowledged": {
11749
+ "name": "acknowledged",
11750
+ "type": "boolean",
11751
+ "primaryKey": false,
11752
+ "notNull": false,
11753
+ "default": false
11754
+ },
11755
+ "created_at": {
11756
+ "name": "created_at",
11757
+ "type": "timestamp",
11758
+ "primaryKey": false,
11759
+ "notNull": true,
11760
+ "default": "now()"
11761
+ }
11762
+ },
11763
+ "indexes": {},
11764
+ "foreignKeys": {
11765
+ "breaking_changes_pull_request_id_pull_requests_id_fk": {
11766
+ "name": "breaking_changes_pull_request_id_pull_requests_id_fk",
11767
+ "tableFrom": "breaking_changes",
11768
+ "tableTo": "pull_requests",
11769
+ "columnsFrom": [
11770
+ "pull_request_id"
11771
+ ],
11772
+ "columnsTo": [
11773
+ "id"
11774
+ ],
11775
+ "onDelete": "cascade",
11776
+ "onUpdate": "no action"
11777
+ }
11778
+ },
11779
+ "compositePrimaryKeys": {},
11780
+ "uniqueConstraints": {},
11781
+ "policies": {},
11782
+ "checkConstraints": {},
11783
+ "isRLSEnabled": false
11784
+ },
11785
+ "public.change_set_items": {
11786
+ "name": "change_set_items",
11787
+ "schema": "",
11788
+ "columns": {
11789
+ "id": {
11790
+ "name": "id",
11791
+ "type": "text",
11792
+ "primaryKey": true,
11793
+ "notNull": true
11794
+ },
11795
+ "change_set_id": {
11796
+ "name": "change_set_id",
11797
+ "type": "text",
11798
+ "primaryKey": false,
11799
+ "notNull": true
11800
+ },
11801
+ "pull_request_id": {
11802
+ "name": "pull_request_id",
11803
+ "type": "text",
11804
+ "primaryKey": false,
11805
+ "notNull": false
11806
+ },
11807
+ "repository_id": {
11808
+ "name": "repository_id",
11809
+ "type": "text",
11810
+ "primaryKey": false,
11811
+ "notNull": true
11812
+ },
11813
+ "order": {
11814
+ "name": "order",
11815
+ "type": "integer",
11816
+ "primaryKey": false,
11817
+ "notNull": false,
11818
+ "default": 0
11819
+ },
11820
+ "created_at": {
11821
+ "name": "created_at",
11822
+ "type": "timestamp",
11823
+ "primaryKey": false,
11824
+ "notNull": true,
11825
+ "default": "now()"
11826
+ }
11827
+ },
11828
+ "indexes": {},
11829
+ "foreignKeys": {
11830
+ "change_set_items_change_set_id_change_sets_id_fk": {
11831
+ "name": "change_set_items_change_set_id_change_sets_id_fk",
11832
+ "tableFrom": "change_set_items",
11833
+ "tableTo": "change_sets",
11834
+ "columnsFrom": [
11835
+ "change_set_id"
11836
+ ],
11837
+ "columnsTo": [
11838
+ "id"
11839
+ ],
11840
+ "onDelete": "cascade",
11841
+ "onUpdate": "no action"
11842
+ },
11843
+ "change_set_items_pull_request_id_pull_requests_id_fk": {
11844
+ "name": "change_set_items_pull_request_id_pull_requests_id_fk",
11845
+ "tableFrom": "change_set_items",
11846
+ "tableTo": "pull_requests",
11847
+ "columnsFrom": [
11848
+ "pull_request_id"
11849
+ ],
11850
+ "columnsTo": [
11851
+ "id"
11852
+ ],
11853
+ "onDelete": "set null",
11854
+ "onUpdate": "no action"
11855
+ },
11856
+ "change_set_items_repository_id_repositories_id_fk": {
11857
+ "name": "change_set_items_repository_id_repositories_id_fk",
11858
+ "tableFrom": "change_set_items",
11859
+ "tableTo": "repositories",
11860
+ "columnsFrom": [
11861
+ "repository_id"
11862
+ ],
11863
+ "columnsTo": [
11864
+ "id"
11865
+ ],
11866
+ "onDelete": "no action",
11867
+ "onUpdate": "no action"
11868
+ }
11869
+ },
11870
+ "compositePrimaryKeys": {},
11871
+ "uniqueConstraints": {},
11872
+ "policies": {},
11873
+ "checkConstraints": {},
11874
+ "isRLSEnabled": false
11875
+ },
11876
+ "public.change_sets": {
11877
+ "name": "change_sets",
11878
+ "schema": "",
11879
+ "columns": {
11880
+ "id": {
11881
+ "name": "id",
11882
+ "type": "text",
11883
+ "primaryKey": true,
11884
+ "notNull": true
11885
+ },
11886
+ "name": {
11887
+ "name": "name",
11888
+ "type": "text",
11889
+ "primaryKey": false,
11890
+ "notNull": true
11891
+ },
11892
+ "description": {
11893
+ "name": "description",
11894
+ "type": "text",
11895
+ "primaryKey": false,
11896
+ "notNull": false
11897
+ },
11898
+ "created_by_id": {
11899
+ "name": "created_by_id",
11900
+ "type": "text",
11901
+ "primaryKey": false,
11902
+ "notNull": true
11903
+ },
11904
+ "status": {
11905
+ "name": "status",
11906
+ "type": "text",
11907
+ "primaryKey": false,
11908
+ "notNull": true,
11909
+ "default": "'draft'"
11910
+ },
11911
+ "created_at": {
11912
+ "name": "created_at",
11913
+ "type": "timestamp",
11914
+ "primaryKey": false,
11915
+ "notNull": true,
11916
+ "default": "now()"
11917
+ },
11918
+ "updated_at": {
11919
+ "name": "updated_at",
11920
+ "type": "timestamp",
11921
+ "primaryKey": false,
11922
+ "notNull": true,
11923
+ "default": "now()"
11924
+ }
11925
+ },
11926
+ "indexes": {},
11927
+ "foreignKeys": {
11928
+ "change_sets_created_by_id_users_id_fk": {
11929
+ "name": "change_sets_created_by_id_users_id_fk",
11930
+ "tableFrom": "change_sets",
11931
+ "tableTo": "users",
11932
+ "columnsFrom": [
11933
+ "created_by_id"
11934
+ ],
11935
+ "columnsTo": [
11936
+ "id"
11937
+ ],
11938
+ "onDelete": "no action",
11939
+ "onUpdate": "no action"
11940
+ }
11941
+ },
11942
+ "compositePrimaryKeys": {},
11943
+ "uniqueConstraints": {},
11944
+ "policies": {},
11945
+ "checkConstraints": {},
11946
+ "isRLSEnabled": false
11947
+ },
11948
+ "public.chat_integrations": {
11949
+ "name": "chat_integrations",
11950
+ "schema": "",
11951
+ "columns": {
11952
+ "id": {
11953
+ "name": "id",
11954
+ "type": "text",
11955
+ "primaryKey": true,
11956
+ "notNull": true
11957
+ },
11958
+ "organization_id": {
11959
+ "name": "organization_id",
11960
+ "type": "text",
11961
+ "primaryKey": false,
11962
+ "notNull": false
11963
+ },
11964
+ "repository_id": {
11965
+ "name": "repository_id",
11966
+ "type": "text",
11967
+ "primaryKey": false,
11968
+ "notNull": false
11969
+ },
11970
+ "provider": {
11971
+ "name": "provider",
11972
+ "type": "text",
11973
+ "primaryKey": false,
11974
+ "notNull": true
11975
+ },
11976
+ "name": {
11977
+ "name": "name",
11978
+ "type": "text",
11979
+ "primaryKey": false,
11980
+ "notNull": true
11981
+ },
11982
+ "webhook_url": {
11983
+ "name": "webhook_url",
11984
+ "type": "text",
11985
+ "primaryKey": false,
11986
+ "notNull": false
11987
+ },
11988
+ "api_token": {
11989
+ "name": "api_token",
11990
+ "type": "text",
11991
+ "primaryKey": false,
11992
+ "notNull": false
11993
+ },
11994
+ "channel_id": {
11995
+ "name": "channel_id",
11996
+ "type": "text",
11997
+ "primaryKey": false,
11998
+ "notNull": false
11999
+ },
12000
+ "is_enabled": {
12001
+ "name": "is_enabled",
12002
+ "type": "boolean",
12003
+ "primaryKey": false,
12004
+ "notNull": false,
12005
+ "default": true
12006
+ },
12007
+ "events": {
12008
+ "name": "events",
12009
+ "type": "jsonb",
12010
+ "primaryKey": false,
12011
+ "notNull": false,
12012
+ "default": "'[]'::jsonb"
12013
+ },
12014
+ "created_at": {
12015
+ "name": "created_at",
12016
+ "type": "timestamp",
12017
+ "primaryKey": false,
12018
+ "notNull": true,
12019
+ "default": "now()"
12020
+ },
12021
+ "updated_at": {
12022
+ "name": "updated_at",
12023
+ "type": "timestamp",
12024
+ "primaryKey": false,
12025
+ "notNull": true,
12026
+ "default": "now()"
12027
+ }
12028
+ },
12029
+ "indexes": {},
12030
+ "foreignKeys": {},
12031
+ "compositePrimaryKeys": {},
12032
+ "uniqueConstraints": {},
12033
+ "policies": {},
12034
+ "checkConstraints": {},
12035
+ "isRLSEnabled": false
12036
+ },
12037
+ "public.cloud_configs": {
12038
+ "name": "cloud_configs",
12039
+ "schema": "",
12040
+ "columns": {
12041
+ "id": {
12042
+ "name": "id",
12043
+ "type": "text",
12044
+ "primaryKey": true,
12045
+ "notNull": true
12046
+ },
12047
+ "repository_id": {
12048
+ "name": "repository_id",
12049
+ "type": "text",
12050
+ "primaryKey": false,
12051
+ "notNull": false
12052
+ },
12053
+ "organization_id": {
12054
+ "name": "organization_id",
12055
+ "type": "text",
12056
+ "primaryKey": false,
12057
+ "notNull": false
12058
+ },
12059
+ "provider": {
12060
+ "name": "provider",
12061
+ "type": "text",
12062
+ "primaryKey": false,
12063
+ "notNull": true
12064
+ },
12065
+ "name": {
12066
+ "name": "name",
12067
+ "type": "text",
12068
+ "primaryKey": false,
12069
+ "notNull": true
12070
+ },
12071
+ "region": {
12072
+ "name": "region",
12073
+ "type": "text",
12074
+ "primaryKey": false,
12075
+ "notNull": false
12076
+ },
12077
+ "credentials": {
12078
+ "name": "credentials",
12079
+ "type": "jsonb",
12080
+ "primaryKey": false,
12081
+ "notNull": false
12082
+ },
12083
+ "settings": {
12084
+ "name": "settings",
12085
+ "type": "jsonb",
12086
+ "primaryKey": false,
12087
+ "notNull": false
12088
+ },
12089
+ "is_enabled": {
12090
+ "name": "is_enabled",
12091
+ "type": "boolean",
12092
+ "primaryKey": false,
12093
+ "notNull": false,
12094
+ "default": true
12095
+ },
12096
+ "created_at": {
12097
+ "name": "created_at",
12098
+ "type": "timestamp",
12099
+ "primaryKey": false,
12100
+ "notNull": true,
12101
+ "default": "now()"
12102
+ },
12103
+ "updated_at": {
12104
+ "name": "updated_at",
12105
+ "type": "timestamp",
12106
+ "primaryKey": false,
12107
+ "notNull": true,
12108
+ "default": "now()"
12109
+ }
12110
+ },
12111
+ "indexes": {},
12112
+ "foreignKeys": {
12113
+ "cloud_configs_repository_id_repositories_id_fk": {
12114
+ "name": "cloud_configs_repository_id_repositories_id_fk",
12115
+ "tableFrom": "cloud_configs",
12116
+ "tableTo": "repositories",
12117
+ "columnsFrom": [
12118
+ "repository_id"
12119
+ ],
12120
+ "columnsTo": [
12121
+ "id"
12122
+ ],
12123
+ "onDelete": "cascade",
12124
+ "onUpdate": "no action"
12125
+ }
12126
+ },
12127
+ "compositePrimaryKeys": {},
12128
+ "uniqueConstraints": {},
12129
+ "policies": {},
12130
+ "checkConstraints": {},
12131
+ "isRLSEnabled": false
12132
+ },
12133
+ "public.code_quality_configs": {
12134
+ "name": "code_quality_configs",
12135
+ "schema": "",
12136
+ "columns": {
12137
+ "id": {
12138
+ "name": "id",
12139
+ "type": "text",
12140
+ "primaryKey": true,
12141
+ "notNull": true
12142
+ },
12143
+ "repository_id": {
12144
+ "name": "repository_id",
12145
+ "type": "text",
12146
+ "primaryKey": false,
12147
+ "notNull": true
12148
+ },
12149
+ "provider": {
12150
+ "name": "provider",
12151
+ "type": "text",
12152
+ "primaryKey": false,
12153
+ "notNull": true
12154
+ },
12155
+ "project_key": {
12156
+ "name": "project_key",
12157
+ "type": "text",
12158
+ "primaryKey": false,
12159
+ "notNull": false
12160
+ },
12161
+ "api_token": {
12162
+ "name": "api_token",
12163
+ "type": "text",
12164
+ "primaryKey": false,
12165
+ "notNull": false
12166
+ },
12167
+ "server_url": {
12168
+ "name": "server_url",
12169
+ "type": "text",
12170
+ "primaryKey": false,
12171
+ "notNull": false
12172
+ },
12173
+ "webhook_secret": {
12174
+ "name": "webhook_secret",
12175
+ "type": "text",
12176
+ "primaryKey": false,
12177
+ "notNull": false
12178
+ },
12179
+ "is_enabled": {
12180
+ "name": "is_enabled",
12181
+ "type": "boolean",
12182
+ "primaryKey": false,
12183
+ "notNull": false,
12184
+ "default": true
12185
+ },
12186
+ "report_on_pr": {
12187
+ "name": "report_on_pr",
12188
+ "type": "boolean",
12189
+ "primaryKey": false,
12190
+ "notNull": false,
12191
+ "default": true
12192
+ },
12193
+ "block_on_fail": {
12194
+ "name": "block_on_fail",
12195
+ "type": "boolean",
12196
+ "primaryKey": false,
12197
+ "notNull": false,
12198
+ "default": false
12199
+ },
12200
+ "min_coverage": {
12201
+ "name": "min_coverage",
12202
+ "type": "real",
12203
+ "primaryKey": false,
12204
+ "notNull": false
12205
+ },
12206
+ "created_at": {
12207
+ "name": "created_at",
12208
+ "type": "timestamp",
12209
+ "primaryKey": false,
12210
+ "notNull": true,
12211
+ "default": "now()"
12212
+ },
12213
+ "updated_at": {
12214
+ "name": "updated_at",
12215
+ "type": "timestamp",
12216
+ "primaryKey": false,
12217
+ "notNull": true,
12218
+ "default": "now()"
12219
+ }
12220
+ },
12221
+ "indexes": {},
12222
+ "foreignKeys": {
12223
+ "code_quality_configs_repository_id_repositories_id_fk": {
12224
+ "name": "code_quality_configs_repository_id_repositories_id_fk",
12225
+ "tableFrom": "code_quality_configs",
12226
+ "tableTo": "repositories",
12227
+ "columnsFrom": [
12228
+ "repository_id"
12229
+ ],
12230
+ "columnsTo": [
12231
+ "id"
12232
+ ],
12233
+ "onDelete": "cascade",
12234
+ "onUpdate": "no action"
12235
+ }
12236
+ },
12237
+ "compositePrimaryKeys": {},
12238
+ "uniqueConstraints": {},
12239
+ "policies": {},
12240
+ "checkConstraints": {},
12241
+ "isRLSEnabled": false
12242
+ },
12243
+ "public.code_quality_issues": {
12244
+ "name": "code_quality_issues",
12245
+ "schema": "",
12246
+ "columns": {
12247
+ "id": {
12248
+ "name": "id",
12249
+ "type": "text",
12250
+ "primaryKey": true,
12251
+ "notNull": true
12252
+ },
12253
+ "repository_id": {
12254
+ "name": "repository_id",
12255
+ "type": "text",
12256
+ "primaryKey": false,
12257
+ "notNull": true
12258
+ },
12259
+ "pull_request_id": {
12260
+ "name": "pull_request_id",
12261
+ "type": "text",
12262
+ "primaryKey": false,
12263
+ "notNull": false
12264
+ },
12265
+ "commit_sha": {
12266
+ "name": "commit_sha",
12267
+ "type": "text",
12268
+ "primaryKey": false,
12269
+ "notNull": true
12270
+ },
12271
+ "provider": {
12272
+ "name": "provider",
12273
+ "type": "text",
12274
+ "primaryKey": false,
12275
+ "notNull": true
12276
+ },
12277
+ "issue_type": {
12278
+ "name": "issue_type",
12279
+ "type": "text",
12280
+ "primaryKey": false,
12281
+ "notNull": true
12282
+ },
12283
+ "severity": {
12284
+ "name": "severity",
12285
+ "type": "text",
12286
+ "primaryKey": false,
12287
+ "notNull": true
12288
+ },
12289
+ "message": {
12290
+ "name": "message",
12291
+ "type": "text",
12292
+ "primaryKey": false,
12293
+ "notNull": true
12294
+ },
12295
+ "file": {
12296
+ "name": "file",
12297
+ "type": "text",
12298
+ "primaryKey": false,
12299
+ "notNull": false
12300
+ },
12301
+ "line": {
12302
+ "name": "line",
12303
+ "type": "integer",
12304
+ "primaryKey": false,
12305
+ "notNull": false
12306
+ },
12307
+ "rule": {
12308
+ "name": "rule",
12309
+ "type": "text",
12310
+ "primaryKey": false,
12311
+ "notNull": false
12312
+ },
12313
+ "effort": {
12314
+ "name": "effort",
12315
+ "type": "text",
12316
+ "primaryKey": false,
12317
+ "notNull": false
12318
+ },
12319
+ "status": {
12320
+ "name": "status",
12321
+ "type": "text",
12322
+ "primaryKey": false,
12323
+ "notNull": false,
12324
+ "default": "'open'"
12325
+ },
12326
+ "created_at": {
12327
+ "name": "created_at",
12328
+ "type": "timestamp",
12329
+ "primaryKey": false,
12330
+ "notNull": true,
12331
+ "default": "now()"
12332
+ }
12333
+ },
12334
+ "indexes": {},
12335
+ "foreignKeys": {
12336
+ "code_quality_issues_repository_id_repositories_id_fk": {
12337
+ "name": "code_quality_issues_repository_id_repositories_id_fk",
12338
+ "tableFrom": "code_quality_issues",
12339
+ "tableTo": "repositories",
12340
+ "columnsFrom": [
12341
+ "repository_id"
12342
+ ],
12343
+ "columnsTo": [
12344
+ "id"
12345
+ ],
12346
+ "onDelete": "cascade",
12347
+ "onUpdate": "no action"
12348
+ }
12349
+ },
12350
+ "compositePrimaryKeys": {},
12351
+ "uniqueConstraints": {},
12352
+ "policies": {},
12353
+ "checkConstraints": {},
12354
+ "isRLSEnabled": false
12355
+ },
12356
+ "public.coverage_reports": {
12357
+ "name": "coverage_reports",
12358
+ "schema": "",
12359
+ "columns": {
12360
+ "id": {
12361
+ "name": "id",
12362
+ "type": "text",
12363
+ "primaryKey": true,
12364
+ "notNull": true
12365
+ },
12366
+ "repository_id": {
12367
+ "name": "repository_id",
12368
+ "type": "text",
12369
+ "primaryKey": false,
12370
+ "notNull": true
12371
+ },
12372
+ "pull_request_id": {
12373
+ "name": "pull_request_id",
12374
+ "type": "text",
12375
+ "primaryKey": false,
12376
+ "notNull": false
12377
+ },
12378
+ "commit_sha": {
12379
+ "name": "commit_sha",
12380
+ "type": "text",
12381
+ "primaryKey": false,
12382
+ "notNull": true
12383
+ },
12384
+ "provider": {
12385
+ "name": "provider",
12386
+ "type": "text",
12387
+ "primaryKey": false,
12388
+ "notNull": true
12389
+ },
12390
+ "coverage": {
12391
+ "name": "coverage",
12392
+ "type": "real",
12393
+ "primaryKey": false,
12394
+ "notNull": true
12395
+ },
12396
+ "lines_covered": {
12397
+ "name": "lines_covered",
12398
+ "type": "integer",
12399
+ "primaryKey": false,
12400
+ "notNull": false
12401
+ },
12402
+ "lines_total": {
12403
+ "name": "lines_total",
12404
+ "type": "integer",
12405
+ "primaryKey": false,
12406
+ "notNull": false
12407
+ },
12408
+ "branch_coverage": {
12409
+ "name": "branch_coverage",
12410
+ "type": "real",
12411
+ "primaryKey": false,
12412
+ "notNull": false
12413
+ },
12414
+ "delta": {
12415
+ "name": "delta",
12416
+ "type": "real",
12417
+ "primaryKey": false,
12418
+ "notNull": false
12419
+ },
12420
+ "status": {
12421
+ "name": "status",
12422
+ "type": "text",
12423
+ "primaryKey": false,
12424
+ "notNull": true
12425
+ },
12426
+ "report_url": {
12427
+ "name": "report_url",
12428
+ "type": "text",
12429
+ "primaryKey": false,
12430
+ "notNull": false
12431
+ },
12432
+ "created_at": {
12433
+ "name": "created_at",
12434
+ "type": "timestamp",
12435
+ "primaryKey": false,
12436
+ "notNull": true,
12437
+ "default": "now()"
12438
+ }
12439
+ },
12440
+ "indexes": {},
12441
+ "foreignKeys": {
12442
+ "coverage_reports_repository_id_repositories_id_fk": {
12443
+ "name": "coverage_reports_repository_id_repositories_id_fk",
12444
+ "tableFrom": "coverage_reports",
12445
+ "tableTo": "repositories",
12446
+ "columnsFrom": [
12447
+ "repository_id"
12448
+ ],
12449
+ "columnsTo": [
12450
+ "id"
12451
+ ],
12452
+ "onDelete": "cascade",
12453
+ "onUpdate": "no action"
12454
+ }
12455
+ },
12456
+ "compositePrimaryKeys": {},
12457
+ "uniqueConstraints": {},
12458
+ "policies": {},
12459
+ "checkConstraints": {},
12460
+ "isRLSEnabled": false
12461
+ },
12462
+ "public.cross_repo_issue_links": {
12463
+ "name": "cross_repo_issue_links",
12464
+ "schema": "",
12465
+ "columns": {
12466
+ "id": {
12467
+ "name": "id",
12468
+ "type": "text",
12469
+ "primaryKey": true,
12470
+ "notNull": true
12471
+ },
12472
+ "source_issue_id": {
12473
+ "name": "source_issue_id",
12474
+ "type": "text",
12475
+ "primaryKey": false,
12476
+ "notNull": true
12477
+ },
12478
+ "target_issue_id": {
12479
+ "name": "target_issue_id",
12480
+ "type": "text",
12481
+ "primaryKey": false,
12482
+ "notNull": true
12483
+ },
12484
+ "link_type": {
12485
+ "name": "link_type",
12486
+ "type": "text",
12487
+ "primaryKey": false,
12488
+ "notNull": true
12489
+ },
12490
+ "created_by_id": {
12491
+ "name": "created_by_id",
12492
+ "type": "text",
12493
+ "primaryKey": false,
12494
+ "notNull": true
12495
+ },
12496
+ "created_at": {
12497
+ "name": "created_at",
12498
+ "type": "timestamp",
12499
+ "primaryKey": false,
12500
+ "notNull": true,
12501
+ "default": "now()"
12502
+ }
12503
+ },
12504
+ "indexes": {},
12505
+ "foreignKeys": {
12506
+ "cross_repo_issue_links_source_issue_id_issues_id_fk": {
12507
+ "name": "cross_repo_issue_links_source_issue_id_issues_id_fk",
12508
+ "tableFrom": "cross_repo_issue_links",
12509
+ "tableTo": "issues",
12510
+ "columnsFrom": [
12511
+ "source_issue_id"
12512
+ ],
12513
+ "columnsTo": [
12514
+ "id"
12515
+ ],
12516
+ "onDelete": "cascade",
12517
+ "onUpdate": "no action"
12518
+ },
12519
+ "cross_repo_issue_links_target_issue_id_issues_id_fk": {
12520
+ "name": "cross_repo_issue_links_target_issue_id_issues_id_fk",
12521
+ "tableFrom": "cross_repo_issue_links",
12522
+ "tableTo": "issues",
12523
+ "columnsFrom": [
12524
+ "target_issue_id"
12525
+ ],
12526
+ "columnsTo": [
12527
+ "id"
12528
+ ],
12529
+ "onDelete": "cascade",
12530
+ "onUpdate": "no action"
12531
+ }
12532
+ },
12533
+ "compositePrimaryKeys": {},
12534
+ "uniqueConstraints": {},
12535
+ "policies": {},
12536
+ "checkConstraints": {},
12537
+ "isRLSEnabled": false
12538
+ },
12539
+ "public.custom_dashboards": {
12540
+ "name": "custom_dashboards",
12541
+ "schema": "",
12542
+ "columns": {
12543
+ "id": {
12544
+ "name": "id",
12545
+ "type": "text",
12546
+ "primaryKey": true,
12547
+ "notNull": true
12548
+ },
12549
+ "user_id": {
12550
+ "name": "user_id",
12551
+ "type": "text",
12552
+ "primaryKey": false,
12553
+ "notNull": true
12554
+ },
12555
+ "name": {
12556
+ "name": "name",
12557
+ "type": "text",
12558
+ "primaryKey": false,
12559
+ "notNull": true
12560
+ },
12561
+ "description": {
12562
+ "name": "description",
12563
+ "type": "text",
12564
+ "primaryKey": false,
12565
+ "notNull": false
12566
+ },
12567
+ "is_public": {
12568
+ "name": "is_public",
12569
+ "type": "boolean",
12570
+ "primaryKey": false,
12571
+ "notNull": false,
12572
+ "default": false
12573
+ },
12574
+ "layout": {
12575
+ "name": "layout",
12576
+ "type": "jsonb",
12577
+ "primaryKey": false,
12578
+ "notNull": false
12579
+ },
12580
+ "created_at": {
12581
+ "name": "created_at",
12582
+ "type": "timestamp",
12583
+ "primaryKey": false,
12584
+ "notNull": true,
12585
+ "default": "now()"
12586
+ },
12587
+ "updated_at": {
12588
+ "name": "updated_at",
12589
+ "type": "timestamp",
12590
+ "primaryKey": false,
12591
+ "notNull": true,
12592
+ "default": "now()"
12593
+ }
12594
+ },
12595
+ "indexes": {},
12596
+ "foreignKeys": {
12597
+ "custom_dashboards_user_id_users_id_fk": {
12598
+ "name": "custom_dashboards_user_id_users_id_fk",
12599
+ "tableFrom": "custom_dashboards",
12600
+ "tableTo": "users",
12601
+ "columnsFrom": [
12602
+ "user_id"
12603
+ ],
12604
+ "columnsTo": [
12605
+ "id"
12606
+ ],
12607
+ "onDelete": "cascade",
12608
+ "onUpdate": "no action"
12609
+ }
12610
+ },
12611
+ "compositePrimaryKeys": {},
12612
+ "uniqueConstraints": {},
12613
+ "policies": {},
12614
+ "checkConstraints": {},
12615
+ "isRLSEnabled": false
12616
+ },
12617
+ "public.dashboard_widgets": {
12618
+ "name": "dashboard_widgets",
12619
+ "schema": "",
12620
+ "columns": {
12621
+ "id": {
12622
+ "name": "id",
12623
+ "type": "text",
12624
+ "primaryKey": true,
12625
+ "notNull": true
12626
+ },
12627
+ "dashboard_id": {
12628
+ "name": "dashboard_id",
12629
+ "type": "text",
12630
+ "primaryKey": false,
12631
+ "notNull": true
12632
+ },
12633
+ "widget_type": {
12634
+ "name": "widget_type",
12635
+ "type": "text",
12636
+ "primaryKey": false,
12637
+ "notNull": true
12638
+ },
12639
+ "title": {
12640
+ "name": "title",
12641
+ "type": "text",
12642
+ "primaryKey": false,
12643
+ "notNull": true
12644
+ },
12645
+ "config": {
12646
+ "name": "config",
12647
+ "type": "jsonb",
12648
+ "primaryKey": false,
12649
+ "notNull": false
12650
+ },
12651
+ "position": {
12652
+ "name": "position",
12653
+ "type": "jsonb",
12654
+ "primaryKey": false,
12655
+ "notNull": false
12656
+ },
12657
+ "created_at": {
12658
+ "name": "created_at",
12659
+ "type": "timestamp",
12660
+ "primaryKey": false,
12661
+ "notNull": true,
12662
+ "default": "now()"
12663
+ }
12664
+ },
12665
+ "indexes": {},
12666
+ "foreignKeys": {
12667
+ "dashboard_widgets_dashboard_id_custom_dashboards_id_fk": {
12668
+ "name": "dashboard_widgets_dashboard_id_custom_dashboards_id_fk",
12669
+ "tableFrom": "dashboard_widgets",
12670
+ "tableTo": "custom_dashboards",
12671
+ "columnsFrom": [
12672
+ "dashboard_id"
12673
+ ],
12674
+ "columnsTo": [
12675
+ "id"
12676
+ ],
12677
+ "onDelete": "cascade",
12678
+ "onUpdate": "no action"
12679
+ }
12680
+ },
12681
+ "compositePrimaryKeys": {},
12682
+ "uniqueConstraints": {},
12683
+ "policies": {},
12684
+ "checkConstraints": {},
12685
+ "isRLSEnabled": false
12686
+ },
12687
+ "public.cloud_deployments": {
12688
+ "name": "cloud_deployments",
12689
+ "schema": "",
12690
+ "columns": {
12691
+ "id": {
12692
+ "name": "id",
12693
+ "type": "text",
12694
+ "primaryKey": true,
12695
+ "notNull": true
12696
+ },
12697
+ "config_id": {
12698
+ "name": "config_id",
12699
+ "type": "text",
12700
+ "primaryKey": false,
12701
+ "notNull": true
12702
+ },
12703
+ "pull_request_id": {
12704
+ "name": "pull_request_id",
12705
+ "type": "text",
12706
+ "primaryKey": false,
12707
+ "notNull": false
12708
+ },
12709
+ "commit_sha": {
12710
+ "name": "commit_sha",
12711
+ "type": "text",
12712
+ "primaryKey": false,
12713
+ "notNull": true
12714
+ },
12715
+ "environment": {
12716
+ "name": "environment",
12717
+ "type": "text",
12718
+ "primaryKey": false,
12719
+ "notNull": true
12720
+ },
12721
+ "status": {
12722
+ "name": "status",
12723
+ "type": "text",
12724
+ "primaryKey": false,
12725
+ "notNull": true
12726
+ },
12727
+ "url": {
12728
+ "name": "url",
12729
+ "type": "text",
12730
+ "primaryKey": false,
12731
+ "notNull": false
12732
+ },
12733
+ "logs": {
12734
+ "name": "logs",
12735
+ "type": "text",
12736
+ "primaryKey": false,
12737
+ "notNull": false
12738
+ },
12739
+ "started_at": {
12740
+ "name": "started_at",
12741
+ "type": "timestamp",
12742
+ "primaryKey": false,
12743
+ "notNull": false
12744
+ },
12745
+ "completed_at": {
12746
+ "name": "completed_at",
12747
+ "type": "timestamp",
12748
+ "primaryKey": false,
12749
+ "notNull": false
12750
+ },
12751
+ "created_at": {
12752
+ "name": "created_at",
12753
+ "type": "timestamp",
12754
+ "primaryKey": false,
12755
+ "notNull": true,
12756
+ "default": "now()"
12757
+ }
12758
+ },
12759
+ "indexes": {},
12760
+ "foreignKeys": {
12761
+ "cloud_deployments_config_id_cloud_configs_id_fk": {
12762
+ "name": "cloud_deployments_config_id_cloud_configs_id_fk",
12763
+ "tableFrom": "cloud_deployments",
12764
+ "tableTo": "cloud_configs",
12765
+ "columnsFrom": [
12766
+ "config_id"
12767
+ ],
12768
+ "columnsTo": [
12769
+ "id"
12770
+ ],
12771
+ "onDelete": "cascade",
12772
+ "onUpdate": "no action"
12773
+ }
12774
+ },
12775
+ "compositePrimaryKeys": {},
12776
+ "uniqueConstraints": {},
12777
+ "policies": {},
12778
+ "checkConstraints": {},
12779
+ "isRLSEnabled": false
12780
+ },
12781
+ "public.email_settings": {
12782
+ "name": "email_settings",
12783
+ "schema": "",
12784
+ "columns": {
12785
+ "id": {
12786
+ "name": "id",
12787
+ "type": "text",
12788
+ "primaryKey": true,
12789
+ "notNull": true
12790
+ },
12791
+ "organization_id": {
12792
+ "name": "organization_id",
12793
+ "type": "text",
12794
+ "primaryKey": false,
12795
+ "notNull": false
12796
+ },
12797
+ "smtp_host": {
12798
+ "name": "smtp_host",
12799
+ "type": "text",
12800
+ "primaryKey": false,
12801
+ "notNull": false
12802
+ },
12803
+ "smtp_port": {
12804
+ "name": "smtp_port",
12805
+ "type": "text",
12806
+ "primaryKey": false,
12807
+ "notNull": false
12808
+ },
12809
+ "smtp_user": {
12810
+ "name": "smtp_user",
12811
+ "type": "text",
12812
+ "primaryKey": false,
12813
+ "notNull": false
12814
+ },
12815
+ "smtp_pass": {
12816
+ "name": "smtp_pass",
12817
+ "type": "text",
12818
+ "primaryKey": false,
12819
+ "notNull": false
12820
+ },
12821
+ "from_address": {
12822
+ "name": "from_address",
12823
+ "type": "text",
12824
+ "primaryKey": false,
12825
+ "notNull": false
12826
+ },
12827
+ "from_name": {
12828
+ "name": "from_name",
12829
+ "type": "text",
12830
+ "primaryKey": false,
12831
+ "notNull": false
12832
+ },
12833
+ "is_enabled": {
12834
+ "name": "is_enabled",
12835
+ "type": "boolean",
12836
+ "primaryKey": false,
12837
+ "notNull": false,
12838
+ "default": true
12839
+ },
12840
+ "created_at": {
12841
+ "name": "created_at",
12842
+ "type": "timestamp",
12843
+ "primaryKey": false,
12844
+ "notNull": true,
12845
+ "default": "now()"
12846
+ }
12847
+ },
12848
+ "indexes": {},
12849
+ "foreignKeys": {},
12850
+ "compositePrimaryKeys": {},
12851
+ "uniqueConstraints": {},
12852
+ "policies": {},
12853
+ "checkConstraints": {},
12854
+ "isRLSEnabled": false
12855
+ },
12856
+ "public.external_builds": {
12857
+ "name": "external_builds",
12858
+ "schema": "",
12859
+ "columns": {
12860
+ "id": {
12861
+ "name": "id",
12862
+ "type": "text",
12863
+ "primaryKey": true,
12864
+ "notNull": true
12865
+ },
12866
+ "config_id": {
12867
+ "name": "config_id",
12868
+ "type": "text",
12869
+ "primaryKey": false,
12870
+ "notNull": true
12871
+ },
12872
+ "pull_request_id": {
12873
+ "name": "pull_request_id",
12874
+ "type": "text",
12875
+ "primaryKey": false,
12876
+ "notNull": false
12877
+ },
12878
+ "external_build_id": {
12879
+ "name": "external_build_id",
12880
+ "type": "text",
12881
+ "primaryKey": false,
12882
+ "notNull": true
12883
+ },
12884
+ "build_number": {
12885
+ "name": "build_number",
12886
+ "type": "text",
12887
+ "primaryKey": false,
12888
+ "notNull": false
12889
+ },
12890
+ "status": {
12891
+ "name": "status",
12892
+ "type": "text",
12893
+ "primaryKey": false,
12894
+ "notNull": true
12895
+ },
12896
+ "url": {
12897
+ "name": "url",
12898
+ "type": "text",
12899
+ "primaryKey": false,
12900
+ "notNull": false
12901
+ },
12902
+ "started_at": {
12903
+ "name": "started_at",
12904
+ "type": "timestamp",
12905
+ "primaryKey": false,
12906
+ "notNull": false
12907
+ },
12908
+ "completed_at": {
12909
+ "name": "completed_at",
12910
+ "type": "timestamp",
12911
+ "primaryKey": false,
12912
+ "notNull": false
12913
+ },
12914
+ "created_at": {
12915
+ "name": "created_at",
12916
+ "type": "timestamp",
12917
+ "primaryKey": false,
12918
+ "notNull": true,
12919
+ "default": "now()"
12920
+ }
12921
+ },
12922
+ "indexes": {},
12923
+ "foreignKeys": {
12924
+ "external_builds_config_id_external_ci_configs_id_fk": {
12925
+ "name": "external_builds_config_id_external_ci_configs_id_fk",
12926
+ "tableFrom": "external_builds",
12927
+ "tableTo": "external_ci_configs",
12928
+ "columnsFrom": [
12929
+ "config_id"
12930
+ ],
12931
+ "columnsTo": [
12932
+ "id"
12933
+ ],
12934
+ "onDelete": "cascade",
12935
+ "onUpdate": "no action"
12936
+ }
12937
+ },
12938
+ "compositePrimaryKeys": {},
12939
+ "uniqueConstraints": {},
12940
+ "policies": {},
12941
+ "checkConstraints": {},
12942
+ "isRLSEnabled": false
12943
+ },
12944
+ "public.external_ci_configs": {
12945
+ "name": "external_ci_configs",
12946
+ "schema": "",
12947
+ "columns": {
12948
+ "id": {
12949
+ "name": "id",
12950
+ "type": "text",
12951
+ "primaryKey": true,
12952
+ "notNull": true
12953
+ },
12954
+ "repository_id": {
12955
+ "name": "repository_id",
12956
+ "type": "text",
12957
+ "primaryKey": false,
12958
+ "notNull": true
12959
+ },
12960
+ "provider": {
12961
+ "name": "provider",
12962
+ "type": "text",
12963
+ "primaryKey": false,
12964
+ "notNull": true
12965
+ },
12966
+ "name": {
12967
+ "name": "name",
12968
+ "type": "text",
12969
+ "primaryKey": false,
12970
+ "notNull": true
12971
+ },
12972
+ "base_url": {
12973
+ "name": "base_url",
12974
+ "type": "text",
12975
+ "primaryKey": false,
12976
+ "notNull": true
12977
+ },
12978
+ "api_token": {
12979
+ "name": "api_token",
12980
+ "type": "text",
12981
+ "primaryKey": false,
12982
+ "notNull": false
12983
+ },
12984
+ "project_id": {
12985
+ "name": "project_id",
12986
+ "type": "text",
12987
+ "primaryKey": false,
12988
+ "notNull": false
12989
+ },
12990
+ "webhook_secret": {
12991
+ "name": "webhook_secret",
12992
+ "type": "text",
12993
+ "primaryKey": false,
12994
+ "notNull": false
12995
+ },
12996
+ "is_enabled": {
12997
+ "name": "is_enabled",
12998
+ "type": "boolean",
12999
+ "primaryKey": false,
13000
+ "notNull": false,
13001
+ "default": true
13002
+ },
13003
+ "sync_status": {
13004
+ "name": "sync_status",
13005
+ "type": "boolean",
13006
+ "primaryKey": false,
13007
+ "notNull": false,
13008
+ "default": true
13009
+ },
13010
+ "created_at": {
13011
+ "name": "created_at",
13012
+ "type": "timestamp",
13013
+ "primaryKey": false,
13014
+ "notNull": true,
13015
+ "default": "now()"
13016
+ },
13017
+ "updated_at": {
13018
+ "name": "updated_at",
13019
+ "type": "timestamp",
13020
+ "primaryKey": false,
13021
+ "notNull": true,
13022
+ "default": "now()"
13023
+ }
13024
+ },
13025
+ "indexes": {},
13026
+ "foreignKeys": {
13027
+ "external_ci_configs_repository_id_repositories_id_fk": {
13028
+ "name": "external_ci_configs_repository_id_repositories_id_fk",
13029
+ "tableFrom": "external_ci_configs",
13030
+ "tableTo": "repositories",
13031
+ "columnsFrom": [
13032
+ "repository_id"
13033
+ ],
13034
+ "columnsTo": [
13035
+ "id"
13036
+ ],
13037
+ "onDelete": "cascade",
13038
+ "onUpdate": "no action"
13039
+ }
13040
+ },
13041
+ "compositePrimaryKeys": {},
13042
+ "uniqueConstraints": {},
13043
+ "policies": {},
13044
+ "checkConstraints": {},
13045
+ "isRLSEnabled": false
13046
+ },
13047
+ "public.file_approvals": {
13048
+ "name": "file_approvals",
13049
+ "schema": "",
13050
+ "columns": {
13051
+ "id": {
13052
+ "name": "id",
13053
+ "type": "text",
13054
+ "primaryKey": true,
13055
+ "notNull": true
13056
+ },
13057
+ "pull_request_id": {
13058
+ "name": "pull_request_id",
13059
+ "type": "text",
13060
+ "primaryKey": false,
13061
+ "notNull": true
13062
+ },
13063
+ "path": {
13064
+ "name": "path",
13065
+ "type": "text",
13066
+ "primaryKey": false,
13067
+ "notNull": true
13068
+ },
13069
+ "approved_by_id": {
13070
+ "name": "approved_by_id",
13071
+ "type": "text",
13072
+ "primaryKey": false,
13073
+ "notNull": true
13074
+ },
13075
+ "approved_at": {
13076
+ "name": "approved_at",
13077
+ "type": "timestamp",
13078
+ "primaryKey": false,
13079
+ "notNull": true,
13080
+ "default": "now()"
13081
+ },
13082
+ "commit_sha": {
13083
+ "name": "commit_sha",
13084
+ "type": "text",
13085
+ "primaryKey": false,
13086
+ "notNull": true
13087
+ },
13088
+ "comment": {
13089
+ "name": "comment",
13090
+ "type": "text",
13091
+ "primaryKey": false,
13092
+ "notNull": false
13093
+ },
13094
+ "created_at": {
13095
+ "name": "created_at",
13096
+ "type": "timestamp",
13097
+ "primaryKey": false,
13098
+ "notNull": true,
13099
+ "default": "now()"
13100
+ },
13101
+ "updated_at": {
13102
+ "name": "updated_at",
13103
+ "type": "timestamp",
13104
+ "primaryKey": false,
13105
+ "notNull": true,
13106
+ "default": "now()"
13107
+ }
13108
+ },
13109
+ "indexes": {},
13110
+ "foreignKeys": {
13111
+ "file_approvals_pull_request_id_pull_requests_id_fk": {
13112
+ "name": "file_approvals_pull_request_id_pull_requests_id_fk",
13113
+ "tableFrom": "file_approvals",
13114
+ "tableTo": "pull_requests",
13115
+ "columnsFrom": [
13116
+ "pull_request_id"
13117
+ ],
13118
+ "columnsTo": [
13119
+ "id"
13120
+ ],
13121
+ "onDelete": "cascade",
13122
+ "onUpdate": "no action"
13123
+ },
13124
+ "file_approvals_approved_by_id_users_id_fk": {
13125
+ "name": "file_approvals_approved_by_id_users_id_fk",
13126
+ "tableFrom": "file_approvals",
13127
+ "tableTo": "users",
13128
+ "columnsFrom": [
13129
+ "approved_by_id"
13130
+ ],
13131
+ "columnsTo": [
13132
+ "id"
13133
+ ],
13134
+ "onDelete": "no action",
13135
+ "onUpdate": "no action"
13136
+ }
13137
+ },
13138
+ "compositePrimaryKeys": {},
13139
+ "uniqueConstraints": {},
13140
+ "policies": {},
13141
+ "checkConstraints": {},
13142
+ "isRLSEnabled": false
13143
+ },
13144
+ "public.file_hotspots": {
13145
+ "name": "file_hotspots",
13146
+ "schema": "",
13147
+ "columns": {
13148
+ "id": {
13149
+ "name": "id",
13150
+ "type": "text",
13151
+ "primaryKey": true,
13152
+ "notNull": true
13153
+ },
13154
+ "repository_id": {
13155
+ "name": "repository_id",
13156
+ "type": "text",
13157
+ "primaryKey": false,
13158
+ "notNull": true
13159
+ },
13160
+ "file_path": {
13161
+ "name": "file_path",
13162
+ "type": "text",
13163
+ "primaryKey": false,
13164
+ "notNull": true
13165
+ },
13166
+ "change_count": {
13167
+ "name": "change_count",
13168
+ "type": "integer",
13169
+ "primaryKey": false,
13170
+ "notNull": false,
13171
+ "default": 0
13172
+ },
13173
+ "bug_count": {
13174
+ "name": "bug_count",
13175
+ "type": "integer",
13176
+ "primaryKey": false,
13177
+ "notNull": false,
13178
+ "default": 0
13179
+ },
13180
+ "review_count": {
13181
+ "name": "review_count",
13182
+ "type": "integer",
13183
+ "primaryKey": false,
13184
+ "notNull": false,
13185
+ "default": 0
13186
+ },
13187
+ "complexity_score": {
13188
+ "name": "complexity_score",
13189
+ "type": "real",
13190
+ "primaryKey": false,
13191
+ "notNull": false
13192
+ },
13193
+ "last_modified": {
13194
+ "name": "last_modified",
13195
+ "type": "timestamp",
13196
+ "primaryKey": false,
13197
+ "notNull": false
13198
+ },
13199
+ "calculated_at": {
13200
+ "name": "calculated_at",
13201
+ "type": "timestamp",
13202
+ "primaryKey": false,
13203
+ "notNull": true,
13204
+ "default": "now()"
13205
+ }
13206
+ },
13207
+ "indexes": {},
13208
+ "foreignKeys": {
13209
+ "file_hotspots_repository_id_repositories_id_fk": {
13210
+ "name": "file_hotspots_repository_id_repositories_id_fk",
13211
+ "tableFrom": "file_hotspots",
13212
+ "tableTo": "repositories",
13213
+ "columnsFrom": [
13214
+ "repository_id"
13215
+ ],
13216
+ "columnsTo": [
13217
+ "id"
13218
+ ],
13219
+ "onDelete": "cascade",
13220
+ "onUpdate": "no action"
13221
+ }
13222
+ },
13223
+ "compositePrimaryKeys": {},
13224
+ "uniqueConstraints": {},
13225
+ "policies": {},
13226
+ "checkConstraints": {},
13227
+ "isRLSEnabled": false
13228
+ },
13229
+ "public.ip_allow_lists": {
13230
+ "name": "ip_allow_lists",
13231
+ "schema": "",
13232
+ "columns": {
13233
+ "id": {
13234
+ "name": "id",
13235
+ "type": "text",
13236
+ "primaryKey": true,
13237
+ "notNull": true
13238
+ },
13239
+ "organization_id": {
13240
+ "name": "organization_id",
13241
+ "type": "text",
13242
+ "primaryKey": false,
13243
+ "notNull": true
13244
+ },
13245
+ "name": {
13246
+ "name": "name",
13247
+ "type": "text",
13248
+ "primaryKey": false,
13249
+ "notNull": true
13250
+ },
13251
+ "cidr_block": {
13252
+ "name": "cidr_block",
13253
+ "type": "text",
13254
+ "primaryKey": false,
13255
+ "notNull": true
13256
+ },
13257
+ "description": {
13258
+ "name": "description",
13259
+ "type": "text",
13260
+ "primaryKey": false,
13261
+ "notNull": false
13262
+ },
13263
+ "is_enabled": {
13264
+ "name": "is_enabled",
13265
+ "type": "boolean",
13266
+ "primaryKey": false,
13267
+ "notNull": false,
13268
+ "default": true
13269
+ },
13270
+ "created_at": {
13271
+ "name": "created_at",
13272
+ "type": "timestamp",
13273
+ "primaryKey": false,
13274
+ "notNull": true,
13275
+ "default": "now()"
13276
+ },
13277
+ "created_by_id": {
13278
+ "name": "created_by_id",
13279
+ "type": "text",
13280
+ "primaryKey": false,
13281
+ "notNull": true
13282
+ }
13283
+ },
13284
+ "indexes": {},
13285
+ "foreignKeys": {},
13286
+ "compositePrimaryKeys": {},
13287
+ "uniqueConstraints": {},
13288
+ "policies": {},
13289
+ "checkConstraints": {},
13290
+ "isRLSEnabled": false
13291
+ },
13292
+ "public.issue_tracker_configs": {
13293
+ "name": "issue_tracker_configs",
13294
+ "schema": "",
13295
+ "columns": {
13296
+ "id": {
13297
+ "name": "id",
13298
+ "type": "text",
13299
+ "primaryKey": true,
13300
+ "notNull": true
13301
+ },
13302
+ "repository_id": {
13303
+ "name": "repository_id",
13304
+ "type": "text",
13305
+ "primaryKey": false,
13306
+ "notNull": true
13307
+ },
13308
+ "provider": {
13309
+ "name": "provider",
13310
+ "type": "text",
13311
+ "primaryKey": false,
13312
+ "notNull": true
13313
+ },
13314
+ "name": {
13315
+ "name": "name",
13316
+ "type": "text",
13317
+ "primaryKey": false,
13318
+ "notNull": true
13319
+ },
13320
+ "api_url": {
13321
+ "name": "api_url",
13322
+ "type": "text",
13323
+ "primaryKey": false,
13324
+ "notNull": false
13325
+ },
13326
+ "api_token": {
13327
+ "name": "api_token",
13328
+ "type": "text",
13329
+ "primaryKey": false,
13330
+ "notNull": false
13331
+ },
13332
+ "project_key": {
13333
+ "name": "project_key",
13334
+ "type": "text",
13335
+ "primaryKey": false,
13336
+ "notNull": false
13337
+ },
13338
+ "webhook_secret": {
13339
+ "name": "webhook_secret",
13340
+ "type": "text",
13341
+ "primaryKey": false,
13342
+ "notNull": false
13343
+ },
13344
+ "is_enabled": {
13345
+ "name": "is_enabled",
13346
+ "type": "boolean",
13347
+ "primaryKey": false,
13348
+ "notNull": false,
13349
+ "default": true
13350
+ },
13351
+ "sync_to_external": {
13352
+ "name": "sync_to_external",
13353
+ "type": "boolean",
13354
+ "primaryKey": false,
13355
+ "notNull": false,
13356
+ "default": true
13357
+ },
13358
+ "sync_from_external": {
13359
+ "name": "sync_from_external",
13360
+ "type": "boolean",
13361
+ "primaryKey": false,
13362
+ "notNull": false,
13363
+ "default": true
13364
+ },
13365
+ "created_at": {
13366
+ "name": "created_at",
13367
+ "type": "timestamp",
13368
+ "primaryKey": false,
13369
+ "notNull": true,
13370
+ "default": "now()"
13371
+ },
13372
+ "updated_at": {
13373
+ "name": "updated_at",
13374
+ "type": "timestamp",
13375
+ "primaryKey": false,
13376
+ "notNull": true,
13377
+ "default": "now()"
13378
+ }
13379
+ },
13380
+ "indexes": {},
13381
+ "foreignKeys": {
13382
+ "issue_tracker_configs_repository_id_repositories_id_fk": {
13383
+ "name": "issue_tracker_configs_repository_id_repositories_id_fk",
13384
+ "tableFrom": "issue_tracker_configs",
13385
+ "tableTo": "repositories",
13386
+ "columnsFrom": [
13387
+ "repository_id"
13388
+ ],
13389
+ "columnsTo": [
13390
+ "id"
13391
+ ],
13392
+ "onDelete": "cascade",
13393
+ "onUpdate": "no action"
13394
+ }
13395
+ },
13396
+ "compositePrimaryKeys": {},
13397
+ "uniqueConstraints": {},
13398
+ "policies": {},
13399
+ "checkConstraints": {},
13400
+ "isRLSEnabled": false
13401
+ },
13402
+ "public.issue_tracker_links": {
13403
+ "name": "issue_tracker_links",
13404
+ "schema": "",
13405
+ "columns": {
13406
+ "id": {
13407
+ "name": "id",
13408
+ "type": "text",
13409
+ "primaryKey": true,
13410
+ "notNull": true
13411
+ },
13412
+ "config_id": {
13413
+ "name": "config_id",
13414
+ "type": "text",
13415
+ "primaryKey": false,
13416
+ "notNull": true
13417
+ },
13418
+ "local_issue_id": {
13419
+ "name": "local_issue_id",
13420
+ "type": "text",
13421
+ "primaryKey": false,
13422
+ "notNull": false
13423
+ },
13424
+ "external_id": {
13425
+ "name": "external_id",
13426
+ "type": "text",
13427
+ "primaryKey": false,
13428
+ "notNull": true
13429
+ },
13430
+ "external_key": {
13431
+ "name": "external_key",
13432
+ "type": "text",
13433
+ "primaryKey": false,
13434
+ "notNull": false
13435
+ },
13436
+ "external_url": {
13437
+ "name": "external_url",
13438
+ "type": "text",
13439
+ "primaryKey": false,
13440
+ "notNull": false
13441
+ },
13442
+ "last_sync_at": {
13443
+ "name": "last_sync_at",
13444
+ "type": "timestamp",
13445
+ "primaryKey": false,
13446
+ "notNull": false
13447
+ },
13448
+ "created_at": {
13449
+ "name": "created_at",
13450
+ "type": "timestamp",
13451
+ "primaryKey": false,
13452
+ "notNull": true,
13453
+ "default": "now()"
13454
+ }
13455
+ },
13456
+ "indexes": {},
13457
+ "foreignKeys": {
13458
+ "issue_tracker_links_config_id_issue_tracker_configs_id_fk": {
13459
+ "name": "issue_tracker_links_config_id_issue_tracker_configs_id_fk",
13460
+ "tableFrom": "issue_tracker_links",
13461
+ "tableTo": "issue_tracker_configs",
13462
+ "columnsFrom": [
13463
+ "config_id"
13464
+ ],
13465
+ "columnsTo": [
13466
+ "id"
13467
+ ],
13468
+ "onDelete": "cascade",
13469
+ "onUpdate": "no action"
13470
+ },
13471
+ "issue_tracker_links_local_issue_id_issues_id_fk": {
13472
+ "name": "issue_tracker_links_local_issue_id_issues_id_fk",
13473
+ "tableFrom": "issue_tracker_links",
13474
+ "tableTo": "issues",
13475
+ "columnsFrom": [
13476
+ "local_issue_id"
13477
+ ],
13478
+ "columnsTo": [
13479
+ "id"
13480
+ ],
13481
+ "onDelete": "cascade",
13482
+ "onUpdate": "no action"
13483
+ }
13484
+ },
13485
+ "compositePrimaryKeys": {},
13486
+ "uniqueConstraints": {},
13487
+ "policies": {},
13488
+ "checkConstraints": {},
13489
+ "isRLSEnabled": false
13490
+ },
13491
+ "public.license_scans": {
13492
+ "name": "license_scans",
13493
+ "schema": "",
13494
+ "columns": {
13495
+ "id": {
13496
+ "name": "id",
13497
+ "type": "text",
13498
+ "primaryKey": true,
13499
+ "notNull": true
13500
+ },
13501
+ "repository_id": {
13502
+ "name": "repository_id",
13503
+ "type": "text",
13504
+ "primaryKey": false,
13505
+ "notNull": true
13506
+ },
13507
+ "commit_sha": {
13508
+ "name": "commit_sha",
13509
+ "type": "text",
13510
+ "primaryKey": false,
13511
+ "notNull": true
13512
+ },
13513
+ "package_name": {
13514
+ "name": "package_name",
13515
+ "type": "text",
13516
+ "primaryKey": false,
13517
+ "notNull": true
13518
+ },
13519
+ "package_version": {
13520
+ "name": "package_version",
13521
+ "type": "text",
13522
+ "primaryKey": false,
13523
+ "notNull": false
13524
+ },
13525
+ "license": {
13526
+ "name": "license",
13527
+ "type": "text",
13528
+ "primaryKey": false,
13529
+ "notNull": true
13530
+ },
13531
+ "license_type": {
13532
+ "name": "license_type",
13533
+ "type": "text",
13534
+ "primaryKey": false,
13535
+ "notNull": true
13536
+ },
13537
+ "is_compliant": {
13538
+ "name": "is_compliant",
13539
+ "type": "boolean",
13540
+ "primaryKey": false,
13541
+ "notNull": true
13542
+ },
13543
+ "policy_violation": {
13544
+ "name": "policy_violation",
13545
+ "type": "text",
13546
+ "primaryKey": false,
13547
+ "notNull": false
13548
+ },
13549
+ "created_at": {
13550
+ "name": "created_at",
13551
+ "type": "timestamp",
13552
+ "primaryKey": false,
13553
+ "notNull": true,
13554
+ "default": "now()"
13555
+ }
13556
+ },
13557
+ "indexes": {},
13558
+ "foreignKeys": {
13559
+ "license_scans_repository_id_repositories_id_fk": {
13560
+ "name": "license_scans_repository_id_repositories_id_fk",
13561
+ "tableFrom": "license_scans",
13562
+ "tableTo": "repositories",
13563
+ "columnsFrom": [
13564
+ "repository_id"
13565
+ ],
13566
+ "columnsTo": [
13567
+ "id"
13568
+ ],
13569
+ "onDelete": "cascade",
13570
+ "onUpdate": "no action"
13571
+ }
13572
+ },
13573
+ "compositePrimaryKeys": {},
13574
+ "uniqueConstraints": {},
13575
+ "policies": {},
13576
+ "checkConstraints": {},
13577
+ "isRLSEnabled": false
13578
+ },
13579
+ "public.merge_gates": {
13580
+ "name": "merge_gates",
13581
+ "schema": "",
13582
+ "columns": {
13583
+ "id": {
13584
+ "name": "id",
13585
+ "type": "text",
13586
+ "primaryKey": true,
13587
+ "notNull": true
13588
+ },
13589
+ "repository_id": {
13590
+ "name": "repository_id",
13591
+ "type": "text",
13592
+ "primaryKey": false,
13593
+ "notNull": true
13594
+ },
13595
+ "name": {
13596
+ "name": "name",
13597
+ "type": "text",
13598
+ "primaryKey": false,
13599
+ "notNull": true
13600
+ },
13601
+ "description": {
13602
+ "name": "description",
13603
+ "type": "text",
13604
+ "primaryKey": false,
13605
+ "notNull": false
13606
+ },
13607
+ "gate_type": {
13608
+ "name": "gate_type",
13609
+ "type": "text",
13610
+ "primaryKey": false,
13611
+ "notNull": true
13612
+ },
13613
+ "config": {
13614
+ "name": "config",
13615
+ "type": "text",
13616
+ "primaryKey": false,
13617
+ "notNull": false
13618
+ },
13619
+ "condition_script": {
13620
+ "name": "condition_script",
13621
+ "type": "text",
13622
+ "primaryKey": false,
13623
+ "notNull": false
13624
+ },
13625
+ "is_enabled": {
13626
+ "name": "is_enabled",
13627
+ "type": "boolean",
13628
+ "primaryKey": false,
13629
+ "notNull": false,
13630
+ "default": true
13631
+ },
13632
+ "order": {
13633
+ "name": "order",
13634
+ "type": "integer",
13635
+ "primaryKey": false,
13636
+ "notNull": false,
13637
+ "default": 0
13638
+ },
13639
+ "created_at": {
13640
+ "name": "created_at",
13641
+ "type": "timestamp",
13642
+ "primaryKey": false,
13643
+ "notNull": true,
13644
+ "default": "now()"
13645
+ }
13646
+ },
13647
+ "indexes": {},
13648
+ "foreignKeys": {
13649
+ "merge_gates_repository_id_repositories_id_fk": {
13650
+ "name": "merge_gates_repository_id_repositories_id_fk",
13651
+ "tableFrom": "merge_gates",
13652
+ "tableTo": "repositories",
13653
+ "columnsFrom": [
13654
+ "repository_id"
13655
+ ],
13656
+ "columnsTo": [
13657
+ "id"
13658
+ ],
13659
+ "onDelete": "cascade",
13660
+ "onUpdate": "no action"
13661
+ }
13662
+ },
13663
+ "compositePrimaryKeys": {},
13664
+ "uniqueConstraints": {},
13665
+ "policies": {},
13666
+ "checkConstraints": {},
13667
+ "isRLSEnabled": false
13668
+ },
13669
+ "public.metric_snapshots": {
13670
+ "name": "metric_snapshots",
13671
+ "schema": "",
13672
+ "columns": {
13673
+ "id": {
13674
+ "name": "id",
13675
+ "type": "text",
13676
+ "primaryKey": true,
13677
+ "notNull": true
13678
+ },
13679
+ "repository_id": {
13680
+ "name": "repository_id",
13681
+ "type": "text",
13682
+ "primaryKey": false,
13683
+ "notNull": false
13684
+ },
13685
+ "organization_id": {
13686
+ "name": "organization_id",
13687
+ "type": "text",
13688
+ "primaryKey": false,
13689
+ "notNull": false
13690
+ },
13691
+ "metric_type": {
13692
+ "name": "metric_type",
13693
+ "type": "text",
13694
+ "primaryKey": false,
13695
+ "notNull": true
13696
+ },
13697
+ "value": {
13698
+ "name": "value",
13699
+ "type": "real",
13700
+ "primaryKey": false,
13701
+ "notNull": true
13702
+ },
13703
+ "dimensions": {
13704
+ "name": "dimensions",
13705
+ "type": "jsonb",
13706
+ "primaryKey": false,
13707
+ "notNull": false
13708
+ },
13709
+ "timestamp": {
13710
+ "name": "timestamp",
13711
+ "type": "timestamp",
13712
+ "primaryKey": false,
13713
+ "notNull": true,
13714
+ "default": "now()"
13715
+ }
13716
+ },
13717
+ "indexes": {},
13718
+ "foreignKeys": {
13719
+ "metric_snapshots_repository_id_repositories_id_fk": {
13720
+ "name": "metric_snapshots_repository_id_repositories_id_fk",
13721
+ "tableFrom": "metric_snapshots",
13722
+ "tableTo": "repositories",
13723
+ "columnsFrom": [
13724
+ "repository_id"
13725
+ ],
13726
+ "columnsTo": [
13727
+ "id"
13728
+ ],
13729
+ "onDelete": "cascade",
13730
+ "onUpdate": "no action"
13731
+ }
13732
+ },
13733
+ "compositePrimaryKeys": {},
13734
+ "uniqueConstraints": {},
13735
+ "policies": {},
13736
+ "checkConstraints": {},
13737
+ "isRLSEnabled": false
13738
+ },
13739
+ "public.migration_detections": {
13740
+ "name": "migration_detections",
13741
+ "schema": "",
13742
+ "columns": {
13743
+ "id": {
13744
+ "name": "id",
13745
+ "type": "text",
13746
+ "primaryKey": true,
13747
+ "notNull": true
13748
+ },
13749
+ "pull_request_id": {
13750
+ "name": "pull_request_id",
13751
+ "type": "text",
13752
+ "primaryKey": false,
13753
+ "notNull": true
13754
+ },
13755
+ "migration_type": {
13756
+ "name": "migration_type",
13757
+ "type": "text",
13758
+ "primaryKey": false,
13759
+ "notNull": true
13760
+ },
13761
+ "tool": {
13762
+ "name": "tool",
13763
+ "type": "text",
13764
+ "primaryKey": false,
13765
+ "notNull": false
13766
+ },
13767
+ "files": {
13768
+ "name": "files",
13769
+ "type": "jsonb",
13770
+ "primaryKey": false,
13771
+ "notNull": false
13772
+ },
13773
+ "is_reversible": {
13774
+ "name": "is_reversible",
13775
+ "type": "boolean",
13776
+ "primaryKey": false,
13777
+ "notNull": false
13778
+ },
13779
+ "requires_downtime": {
13780
+ "name": "requires_downtime",
13781
+ "type": "boolean",
13782
+ "primaryKey": false,
13783
+ "notNull": false
13784
+ },
13785
+ "notes": {
13786
+ "name": "notes",
13787
+ "type": "text",
13788
+ "primaryKey": false,
13789
+ "notNull": false
13790
+ },
13791
+ "created_at": {
13792
+ "name": "created_at",
13793
+ "type": "timestamp",
13794
+ "primaryKey": false,
13795
+ "notNull": true,
13796
+ "default": "now()"
13797
+ }
13798
+ },
13799
+ "indexes": {},
13800
+ "foreignKeys": {
13801
+ "migration_detections_pull_request_id_pull_requests_id_fk": {
13802
+ "name": "migration_detections_pull_request_id_pull_requests_id_fk",
13803
+ "tableFrom": "migration_detections",
13804
+ "tableTo": "pull_requests",
13805
+ "columnsFrom": [
13806
+ "pull_request_id"
13807
+ ],
13808
+ "columnsTo": [
13809
+ "id"
13810
+ ],
13811
+ "onDelete": "cascade",
13812
+ "onUpdate": "no action"
13813
+ }
13814
+ },
13815
+ "compositePrimaryKeys": {},
13816
+ "uniqueConstraints": {},
13817
+ "policies": {},
13818
+ "checkConstraints": {},
13819
+ "isRLSEnabled": false
13820
+ },
13821
+ "public.pr_issue_links": {
13822
+ "name": "pr_issue_links",
13823
+ "schema": "",
13824
+ "columns": {
13825
+ "id": {
13826
+ "name": "id",
13827
+ "type": "text",
13828
+ "primaryKey": true,
13829
+ "notNull": true
13830
+ },
13831
+ "pull_request_id": {
13832
+ "name": "pull_request_id",
13833
+ "type": "text",
13834
+ "primaryKey": false,
13835
+ "notNull": true
13836
+ },
13837
+ "issue_id": {
13838
+ "name": "issue_id",
13839
+ "type": "text",
13840
+ "primaryKey": false,
13841
+ "notNull": true
13842
+ },
13843
+ "link_type": {
13844
+ "name": "link_type",
13845
+ "type": "text",
13846
+ "primaryKey": false,
13847
+ "notNull": true
13848
+ },
13849
+ "created_by_id": {
13850
+ "name": "created_by_id",
13851
+ "type": "text",
13852
+ "primaryKey": false,
13853
+ "notNull": true
13854
+ },
13855
+ "created_at": {
13856
+ "name": "created_at",
13857
+ "type": "timestamp",
13858
+ "primaryKey": false,
13859
+ "notNull": true,
13860
+ "default": "now()"
13861
+ }
13862
+ },
13863
+ "indexes": {},
13864
+ "foreignKeys": {
13865
+ "pr_issue_links_pull_request_id_pull_requests_id_fk": {
13866
+ "name": "pr_issue_links_pull_request_id_pull_requests_id_fk",
13867
+ "tableFrom": "pr_issue_links",
13868
+ "tableTo": "pull_requests",
13869
+ "columnsFrom": [
13870
+ "pull_request_id"
13871
+ ],
13872
+ "columnsTo": [
13873
+ "id"
13874
+ ],
13875
+ "onDelete": "cascade",
13876
+ "onUpdate": "no action"
13877
+ },
13878
+ "pr_issue_links_issue_id_issues_id_fk": {
13879
+ "name": "pr_issue_links_issue_id_issues_id_fk",
13880
+ "tableFrom": "pr_issue_links",
13881
+ "tableTo": "issues",
13882
+ "columnsFrom": [
13883
+ "issue_id"
13884
+ ],
13885
+ "columnsTo": [
13886
+ "id"
13887
+ ],
13888
+ "onDelete": "cascade",
13889
+ "onUpdate": "no action"
13890
+ }
13891
+ },
13892
+ "compositePrimaryKeys": {},
13893
+ "uniqueConstraints": {},
13894
+ "policies": {},
13895
+ "checkConstraints": {},
13896
+ "isRLSEnabled": false
13897
+ },
13898
+ "public.rate_limit_logs": {
13899
+ "name": "rate_limit_logs",
13900
+ "schema": "",
13901
+ "columns": {
13902
+ "id": {
13903
+ "name": "id",
13904
+ "type": "text",
13905
+ "primaryKey": true,
13906
+ "notNull": true
13907
+ },
13908
+ "rule_id": {
13909
+ "name": "rule_id",
13910
+ "type": "text",
13911
+ "primaryKey": false,
13912
+ "notNull": true
13913
+ },
13914
+ "key": {
13915
+ "name": "key",
13916
+ "type": "text",
13917
+ "primaryKey": false,
13918
+ "notNull": true
13919
+ },
13920
+ "request_count": {
13921
+ "name": "request_count",
13922
+ "type": "integer",
13923
+ "primaryKey": false,
13924
+ "notNull": true
13925
+ },
13926
+ "window_start": {
13927
+ "name": "window_start",
13928
+ "type": "timestamp",
13929
+ "primaryKey": false,
13930
+ "notNull": true
13931
+ },
13932
+ "blocked": {
13933
+ "name": "blocked",
13934
+ "type": "boolean",
13935
+ "primaryKey": false,
13936
+ "notNull": false,
13937
+ "default": false
13938
+ }
13939
+ },
13940
+ "indexes": {},
13941
+ "foreignKeys": {
13942
+ "rate_limit_logs_rule_id_rate_limit_rules_id_fk": {
13943
+ "name": "rate_limit_logs_rule_id_rate_limit_rules_id_fk",
13944
+ "tableFrom": "rate_limit_logs",
13945
+ "tableTo": "rate_limit_rules",
13946
+ "columnsFrom": [
13947
+ "rule_id"
13948
+ ],
13949
+ "columnsTo": [
13950
+ "id"
13951
+ ],
13952
+ "onDelete": "cascade",
13953
+ "onUpdate": "no action"
13954
+ }
13955
+ },
13956
+ "compositePrimaryKeys": {},
13957
+ "uniqueConstraints": {},
13958
+ "policies": {},
13959
+ "checkConstraints": {},
13960
+ "isRLSEnabled": false
13961
+ },
13962
+ "public.rate_limit_rules": {
13963
+ "name": "rate_limit_rules",
13964
+ "schema": "",
13965
+ "columns": {
13966
+ "id": {
13967
+ "name": "id",
13968
+ "type": "text",
13969
+ "primaryKey": true,
13970
+ "notNull": true
13971
+ },
13972
+ "name": {
13973
+ "name": "name",
13974
+ "type": "text",
13975
+ "primaryKey": false,
13976
+ "notNull": true
13977
+ },
13978
+ "path": {
13979
+ "name": "path",
13980
+ "type": "text",
13981
+ "primaryKey": false,
13982
+ "notNull": true
13983
+ },
13984
+ "method": {
13985
+ "name": "method",
13986
+ "type": "text",
13987
+ "primaryKey": false,
13988
+ "notNull": false
13989
+ },
13990
+ "window_ms": {
13991
+ "name": "window_ms",
13992
+ "type": "integer",
13993
+ "primaryKey": false,
13994
+ "notNull": true
13995
+ },
13996
+ "max_requests": {
13997
+ "name": "max_requests",
13998
+ "type": "integer",
13999
+ "primaryKey": false,
14000
+ "notNull": true
14001
+ },
14002
+ "key_type": {
14003
+ "name": "key_type",
14004
+ "type": "text",
14005
+ "primaryKey": false,
14006
+ "notNull": false,
14007
+ "default": "'ip'"
14008
+ },
14009
+ "is_enabled": {
14010
+ "name": "is_enabled",
14011
+ "type": "boolean",
14012
+ "primaryKey": false,
14013
+ "notNull": false,
14014
+ "default": true
14015
+ },
14016
+ "created_at": {
14017
+ "name": "created_at",
14018
+ "type": "timestamp",
14019
+ "primaryKey": false,
14020
+ "notNull": true,
14021
+ "default": "now()"
14022
+ }
14023
+ },
14024
+ "indexes": {},
14025
+ "foreignKeys": {},
14026
+ "compositePrimaryKeys": {},
14027
+ "uniqueConstraints": {},
14028
+ "policies": {},
14029
+ "checkConstraints": {},
14030
+ "isRLSEnabled": false
14031
+ },
14032
+ "public.repository_workflows": {
14033
+ "name": "repository_workflows",
14034
+ "schema": "",
14035
+ "columns": {
14036
+ "id": {
14037
+ "name": "id",
14038
+ "type": "text",
14039
+ "primaryKey": true,
14040
+ "notNull": true
14041
+ },
14042
+ "repository_id": {
14043
+ "name": "repository_id",
14044
+ "type": "text",
14045
+ "primaryKey": false,
14046
+ "notNull": true
14047
+ },
14048
+ "name": {
14049
+ "name": "name",
14050
+ "type": "text",
14051
+ "primaryKey": false,
14052
+ "notNull": true
14053
+ },
14054
+ "path": {
14055
+ "name": "path",
14056
+ "type": "text",
14057
+ "primaryKey": false,
14058
+ "notNull": true
14059
+ },
14060
+ "content": {
14061
+ "name": "content",
14062
+ "type": "text",
14063
+ "primaryKey": false,
14064
+ "notNull": true
14065
+ },
14066
+ "template_id": {
14067
+ "name": "template_id",
14068
+ "type": "text",
14069
+ "primaryKey": false,
14070
+ "notNull": false
14071
+ },
14072
+ "is_enabled": {
14073
+ "name": "is_enabled",
14074
+ "type": "boolean",
14075
+ "primaryKey": false,
14076
+ "notNull": false,
14077
+ "default": true
14078
+ },
14079
+ "created_at": {
14080
+ "name": "created_at",
14081
+ "type": "timestamp",
14082
+ "primaryKey": false,
14083
+ "notNull": true,
14084
+ "default": "now()"
14085
+ },
14086
+ "updated_at": {
14087
+ "name": "updated_at",
14088
+ "type": "timestamp",
14089
+ "primaryKey": false,
14090
+ "notNull": true,
14091
+ "default": "now()"
14092
+ }
14093
+ },
14094
+ "indexes": {},
14095
+ "foreignKeys": {
14096
+ "repository_workflows_repository_id_repositories_id_fk": {
14097
+ "name": "repository_workflows_repository_id_repositories_id_fk",
14098
+ "tableFrom": "repository_workflows",
14099
+ "tableTo": "repositories",
14100
+ "columnsFrom": [
14101
+ "repository_id"
14102
+ ],
14103
+ "columnsTo": [
14104
+ "id"
14105
+ ],
14106
+ "onDelete": "cascade",
14107
+ "onUpdate": "no action"
14108
+ },
14109
+ "repository_workflows_template_id_workflow_templates_id_fk": {
14110
+ "name": "repository_workflows_template_id_workflow_templates_id_fk",
14111
+ "tableFrom": "repository_workflows",
14112
+ "tableTo": "workflow_templates",
14113
+ "columnsFrom": [
14114
+ "template_id"
14115
+ ],
14116
+ "columnsTo": [
14117
+ "id"
14118
+ ],
14119
+ "onDelete": "no action",
14120
+ "onUpdate": "no action"
14121
+ }
14122
+ },
14123
+ "compositePrimaryKeys": {},
14124
+ "uniqueConstraints": {},
14125
+ "policies": {},
14126
+ "checkConstraints": {},
14127
+ "isRLSEnabled": false
14128
+ },
14129
+ "public.required_status_checks": {
14130
+ "name": "required_status_checks",
14131
+ "schema": "",
14132
+ "columns": {
14133
+ "id": {
14134
+ "name": "id",
14135
+ "type": "text",
14136
+ "primaryKey": true,
14137
+ "notNull": true
14138
+ },
14139
+ "repository_id": {
14140
+ "name": "repository_id",
14141
+ "type": "text",
14142
+ "primaryKey": false,
14143
+ "notNull": true
14144
+ },
14145
+ "branch": {
14146
+ "name": "branch",
14147
+ "type": "text",
14148
+ "primaryKey": false,
14149
+ "notNull": true
14150
+ },
14151
+ "check_name": {
14152
+ "name": "check_name",
14153
+ "type": "text",
14154
+ "primaryKey": false,
14155
+ "notNull": true
14156
+ },
14157
+ "is_required": {
14158
+ "name": "is_required",
14159
+ "type": "boolean",
14160
+ "primaryKey": false,
14161
+ "notNull": false,
14162
+ "default": true
14163
+ },
14164
+ "strict_mode": {
14165
+ "name": "strict_mode",
14166
+ "type": "boolean",
14167
+ "primaryKey": false,
14168
+ "notNull": false,
14169
+ "default": true
14170
+ },
14171
+ "path_filter": {
14172
+ "name": "path_filter",
14173
+ "type": "text",
14174
+ "primaryKey": false,
14175
+ "notNull": false
14176
+ },
14177
+ "created_at": {
14178
+ "name": "created_at",
14179
+ "type": "timestamp",
14180
+ "primaryKey": false,
14181
+ "notNull": true,
14182
+ "default": "now()"
14183
+ }
14184
+ },
14185
+ "indexes": {},
14186
+ "foreignKeys": {
14187
+ "required_status_checks_repository_id_repositories_id_fk": {
14188
+ "name": "required_status_checks_repository_id_repositories_id_fk",
14189
+ "tableFrom": "required_status_checks",
14190
+ "tableTo": "repositories",
14191
+ "columnsFrom": [
14192
+ "repository_id"
14193
+ ],
14194
+ "columnsTo": [
14195
+ "id"
14196
+ ],
14197
+ "onDelete": "cascade",
14198
+ "onUpdate": "no action"
14199
+ }
14200
+ },
14201
+ "compositePrimaryKeys": {},
14202
+ "uniqueConstraints": {},
14203
+ "policies": {},
14204
+ "checkConstraints": {},
14205
+ "isRLSEnabled": false
14206
+ },
14207
+ "public.review_templates": {
14208
+ "name": "review_templates",
14209
+ "schema": "",
14210
+ "columns": {
14211
+ "id": {
14212
+ "name": "id",
14213
+ "type": "text",
14214
+ "primaryKey": true,
14215
+ "notNull": true
14216
+ },
14217
+ "repository_id": {
14218
+ "name": "repository_id",
14219
+ "type": "text",
14220
+ "primaryKey": false,
14221
+ "notNull": true
14222
+ },
14223
+ "organization_id": {
14224
+ "name": "organization_id",
14225
+ "type": "text",
14226
+ "primaryKey": false,
14227
+ "notNull": false
14228
+ },
14229
+ "name": {
14230
+ "name": "name",
14231
+ "type": "text",
14232
+ "primaryKey": false,
14233
+ "notNull": true
14234
+ },
14235
+ "description": {
14236
+ "name": "description",
14237
+ "type": "text",
14238
+ "primaryKey": false,
14239
+ "notNull": false
14240
+ },
14241
+ "category": {
14242
+ "name": "category",
14243
+ "type": "text",
14244
+ "primaryKey": false,
14245
+ "notNull": false
14246
+ },
14247
+ "content": {
14248
+ "name": "content",
14249
+ "type": "text",
14250
+ "primaryKey": false,
14251
+ "notNull": true
14252
+ },
14253
+ "is_default": {
14254
+ "name": "is_default",
14255
+ "type": "boolean",
14256
+ "primaryKey": false,
14257
+ "notNull": true,
14258
+ "default": false
14259
+ },
14260
+ "created_by_id": {
14261
+ "name": "created_by_id",
14262
+ "type": "text",
14263
+ "primaryKey": false,
14264
+ "notNull": true
14265
+ },
14266
+ "created_at": {
14267
+ "name": "created_at",
14268
+ "type": "timestamp",
14269
+ "primaryKey": false,
14270
+ "notNull": true,
14271
+ "default": "now()"
14272
+ },
14273
+ "updated_at": {
14274
+ "name": "updated_at",
14275
+ "type": "timestamp",
14276
+ "primaryKey": false,
14277
+ "notNull": true,
14278
+ "default": "now()"
14279
+ }
14280
+ },
14281
+ "indexes": {},
14282
+ "foreignKeys": {
14283
+ "review_templates_repository_id_repositories_id_fk": {
14284
+ "name": "review_templates_repository_id_repositories_id_fk",
14285
+ "tableFrom": "review_templates",
14286
+ "tableTo": "repositories",
14287
+ "columnsFrom": [
14288
+ "repository_id"
14289
+ ],
14290
+ "columnsTo": [
14291
+ "id"
14292
+ ],
14293
+ "onDelete": "cascade",
14294
+ "onUpdate": "no action"
14295
+ }
14296
+ },
14297
+ "compositePrimaryKeys": {},
14298
+ "uniqueConstraints": {},
14299
+ "policies": {},
14300
+ "checkConstraints": {},
14301
+ "isRLSEnabled": false
14302
+ },
14303
+ "public.saml_configs": {
14304
+ "name": "saml_configs",
14305
+ "schema": "",
14306
+ "columns": {
14307
+ "id": {
14308
+ "name": "id",
14309
+ "type": "text",
14310
+ "primaryKey": true,
14311
+ "notNull": true
14312
+ },
14313
+ "organization_id": {
14314
+ "name": "organization_id",
14315
+ "type": "text",
14316
+ "primaryKey": false,
14317
+ "notNull": true
14318
+ },
14319
+ "entity_id": {
14320
+ "name": "entity_id",
14321
+ "type": "text",
14322
+ "primaryKey": false,
14323
+ "notNull": true
14324
+ },
14325
+ "sso_url": {
14326
+ "name": "sso_url",
14327
+ "type": "text",
14328
+ "primaryKey": false,
14329
+ "notNull": true
14330
+ },
14331
+ "certificate": {
14332
+ "name": "certificate",
14333
+ "type": "text",
14334
+ "primaryKey": false,
14335
+ "notNull": true
14336
+ },
14337
+ "signature_algorithm": {
14338
+ "name": "signature_algorithm",
14339
+ "type": "text",
14340
+ "primaryKey": false,
14341
+ "notNull": false,
14342
+ "default": "'RSA-SHA256'"
14343
+ },
14344
+ "digest_algorithm": {
14345
+ "name": "digest_algorithm",
14346
+ "type": "text",
14347
+ "primaryKey": false,
14348
+ "notNull": false,
14349
+ "default": "'SHA256'"
14350
+ },
14351
+ "is_enabled": {
14352
+ "name": "is_enabled",
14353
+ "type": "boolean",
14354
+ "primaryKey": false,
14355
+ "notNull": false,
14356
+ "default": true
14357
+ },
14358
+ "created_at": {
14359
+ "name": "created_at",
14360
+ "type": "timestamp",
14361
+ "primaryKey": false,
14362
+ "notNull": true,
14363
+ "default": "now()"
14364
+ },
14365
+ "updated_at": {
14366
+ "name": "updated_at",
14367
+ "type": "timestamp",
14368
+ "primaryKey": false,
14369
+ "notNull": true,
14370
+ "default": "now()"
14371
+ }
14372
+ },
14373
+ "indexes": {},
14374
+ "foreignKeys": {},
14375
+ "compositePrimaryKeys": {},
14376
+ "uniqueConstraints": {},
14377
+ "policies": {},
14378
+ "checkConstraints": {},
14379
+ "isRLSEnabled": false
14380
+ },
14381
+ "public.secret_scan_results": {
14382
+ "name": "secret_scan_results",
14383
+ "schema": "",
14384
+ "columns": {
14385
+ "id": {
14386
+ "name": "id",
14387
+ "type": "text",
14388
+ "primaryKey": true,
14389
+ "notNull": true
14390
+ },
14391
+ "repository_id": {
14392
+ "name": "repository_id",
14393
+ "type": "text",
14394
+ "primaryKey": false,
14395
+ "notNull": true
14396
+ },
14397
+ "commit_sha": {
14398
+ "name": "commit_sha",
14399
+ "type": "text",
14400
+ "primaryKey": false,
14401
+ "notNull": true
14402
+ },
14403
+ "secret_type": {
14404
+ "name": "secret_type",
14405
+ "type": "text",
14406
+ "primaryKey": false,
14407
+ "notNull": true
14408
+ },
14409
+ "file": {
14410
+ "name": "file",
14411
+ "type": "text",
14412
+ "primaryKey": false,
14413
+ "notNull": true
14414
+ },
14415
+ "line": {
14416
+ "name": "line",
14417
+ "type": "integer",
14418
+ "primaryKey": false,
14419
+ "notNull": false
14420
+ },
14421
+ "snippet": {
14422
+ "name": "snippet",
14423
+ "type": "text",
14424
+ "primaryKey": false,
14425
+ "notNull": false
14426
+ },
14427
+ "severity": {
14428
+ "name": "severity",
14429
+ "type": "text",
14430
+ "primaryKey": false,
14431
+ "notNull": true
14432
+ },
14433
+ "status": {
14434
+ "name": "status",
14435
+ "type": "text",
14436
+ "primaryKey": false,
14437
+ "notNull": false,
14438
+ "default": "'open'"
14439
+ },
14440
+ "resolved_at": {
14441
+ "name": "resolved_at",
14442
+ "type": "timestamp",
14443
+ "primaryKey": false,
14444
+ "notNull": false
14445
+ },
14446
+ "resolved_by_id": {
14447
+ "name": "resolved_by_id",
14448
+ "type": "text",
14449
+ "primaryKey": false,
14450
+ "notNull": false
14451
+ },
14452
+ "created_at": {
14453
+ "name": "created_at",
14454
+ "type": "timestamp",
14455
+ "primaryKey": false,
14456
+ "notNull": true,
14457
+ "default": "now()"
14458
+ }
14459
+ },
14460
+ "indexes": {},
14461
+ "foreignKeys": {
14462
+ "secret_scan_results_repository_id_repositories_id_fk": {
14463
+ "name": "secret_scan_results_repository_id_repositories_id_fk",
14464
+ "tableFrom": "secret_scan_results",
14465
+ "tableTo": "repositories",
14466
+ "columnsFrom": [
14467
+ "repository_id"
14468
+ ],
14469
+ "columnsTo": [
14470
+ "id"
14471
+ ],
14472
+ "onDelete": "cascade",
14473
+ "onUpdate": "no action"
14474
+ }
14475
+ },
14476
+ "compositePrimaryKeys": {},
14477
+ "uniqueConstraints": {},
14478
+ "policies": {},
14479
+ "checkConstraints": {},
14480
+ "isRLSEnabled": false
14481
+ },
14482
+ "public.workflow_states": {
14483
+ "name": "workflow_states",
14484
+ "schema": "",
14485
+ "columns": {
14486
+ "id": {
14487
+ "name": "id",
14488
+ "type": "text",
14489
+ "primaryKey": true,
14490
+ "notNull": true
14491
+ },
14492
+ "repository_id": {
14493
+ "name": "repository_id",
14494
+ "type": "text",
14495
+ "primaryKey": false,
14496
+ "notNull": true
14497
+ },
14498
+ "name": {
14499
+ "name": "name",
14500
+ "type": "text",
14501
+ "primaryKey": false,
14502
+ "notNull": true
14503
+ },
14504
+ "category": {
14505
+ "name": "category",
14506
+ "type": "text",
14507
+ "primaryKey": false,
14508
+ "notNull": true
14509
+ },
14510
+ "color": {
14511
+ "name": "color",
14512
+ "type": "text",
14513
+ "primaryKey": false,
14514
+ "notNull": false,
14515
+ "default": "'#6b7280'"
14516
+ },
14517
+ "icon": {
14518
+ "name": "icon",
14519
+ "type": "text",
14520
+ "primaryKey": false,
14521
+ "notNull": false
14522
+ },
14523
+ "display_order": {
14524
+ "name": "display_order",
14525
+ "type": "integer",
14526
+ "primaryKey": false,
14527
+ "notNull": false,
14528
+ "default": 0
14529
+ },
14530
+ "is_default": {
14531
+ "name": "is_default",
14532
+ "type": "boolean",
14533
+ "primaryKey": false,
14534
+ "notNull": false,
14535
+ "default": false
14536
+ },
14537
+ "is_closed_state": {
14538
+ "name": "is_closed_state",
14539
+ "type": "boolean",
14540
+ "primaryKey": false,
14541
+ "notNull": false,
14542
+ "default": false
14543
+ },
14544
+ "created_at": {
14545
+ "name": "created_at",
14546
+ "type": "timestamp",
14547
+ "primaryKey": false,
14548
+ "notNull": true,
14549
+ "default": "now()"
14550
+ }
14551
+ },
14552
+ "indexes": {},
14553
+ "foreignKeys": {
14554
+ "workflow_states_repository_id_repositories_id_fk": {
14555
+ "name": "workflow_states_repository_id_repositories_id_fk",
14556
+ "tableFrom": "workflow_states",
14557
+ "tableTo": "repositories",
14558
+ "columnsFrom": [
14559
+ "repository_id"
14560
+ ],
14561
+ "columnsTo": [
14562
+ "id"
14563
+ ],
14564
+ "onDelete": "cascade",
14565
+ "onUpdate": "no action"
14566
+ }
14567
+ },
14568
+ "compositePrimaryKeys": {},
14569
+ "uniqueConstraints": {},
14570
+ "policies": {},
14571
+ "checkConstraints": {},
14572
+ "isRLSEnabled": false
14573
+ },
14574
+ "public.workflow_templates": {
14575
+ "name": "workflow_templates",
14576
+ "schema": "",
14577
+ "columns": {
14578
+ "id": {
14579
+ "name": "id",
14580
+ "type": "text",
14581
+ "primaryKey": true,
14582
+ "notNull": true
14583
+ },
14584
+ "name": {
14585
+ "name": "name",
14586
+ "type": "text",
14587
+ "primaryKey": false,
14588
+ "notNull": true
14589
+ },
14590
+ "description": {
14591
+ "name": "description",
14592
+ "type": "text",
14593
+ "primaryKey": false,
14594
+ "notNull": false
14595
+ },
14596
+ "category": {
14597
+ "name": "category",
14598
+ "type": "text",
14599
+ "primaryKey": false,
14600
+ "notNull": true
14601
+ },
14602
+ "language": {
14603
+ "name": "language",
14604
+ "type": "text",
14605
+ "primaryKey": false,
14606
+ "notNull": false
14607
+ },
14608
+ "content": {
14609
+ "name": "content",
14610
+ "type": "text",
14611
+ "primaryKey": false,
14612
+ "notNull": true
14613
+ },
14614
+ "is_official": {
14615
+ "name": "is_official",
14616
+ "type": "boolean",
14617
+ "primaryKey": false,
14618
+ "notNull": false,
14619
+ "default": false
14620
+ },
14621
+ "is_public": {
14622
+ "name": "is_public",
14623
+ "type": "boolean",
14624
+ "primaryKey": false,
14625
+ "notNull": false,
14626
+ "default": true
14627
+ },
14628
+ "created_by_id": {
14629
+ "name": "created_by_id",
14630
+ "type": "text",
14631
+ "primaryKey": false,
14632
+ "notNull": false
14633
+ },
14634
+ "downloads": {
14635
+ "name": "downloads",
14636
+ "type": "text",
14637
+ "primaryKey": false,
14638
+ "notNull": false,
14639
+ "default": "'0'"
14640
+ },
14641
+ "created_at": {
14642
+ "name": "created_at",
14643
+ "type": "timestamp",
14644
+ "primaryKey": false,
14645
+ "notNull": true,
14646
+ "default": "now()"
14647
+ },
14648
+ "updated_at": {
14649
+ "name": "updated_at",
14650
+ "type": "timestamp",
14651
+ "primaryKey": false,
14652
+ "notNull": true,
14653
+ "default": "now()"
14654
+ }
14655
+ },
14656
+ "indexes": {},
14657
+ "foreignKeys": {},
14658
+ "compositePrimaryKeys": {},
14659
+ "uniqueConstraints": {},
14660
+ "policies": {},
14661
+ "checkConstraints": {},
14662
+ "isRLSEnabled": false
14663
+ },
14664
+ "public.workflow_transitions": {
14665
+ "name": "workflow_transitions",
14666
+ "schema": "",
14667
+ "columns": {
14668
+ "id": {
14669
+ "name": "id",
14670
+ "type": "text",
14671
+ "primaryKey": true,
14672
+ "notNull": true
14673
+ },
14674
+ "repository_id": {
14675
+ "name": "repository_id",
14676
+ "type": "text",
14677
+ "primaryKey": false,
14678
+ "notNull": true
14679
+ },
14680
+ "from_state_id": {
14681
+ "name": "from_state_id",
14682
+ "type": "text",
14683
+ "primaryKey": false,
14684
+ "notNull": false
14685
+ },
14686
+ "to_state_id": {
14687
+ "name": "to_state_id",
14688
+ "type": "text",
14689
+ "primaryKey": false,
14690
+ "notNull": true
14691
+ },
14692
+ "requires_comment": {
14693
+ "name": "requires_comment",
14694
+ "type": "boolean",
14695
+ "primaryKey": false,
14696
+ "notNull": false,
14697
+ "default": false
14698
+ },
14699
+ "created_at": {
14700
+ "name": "created_at",
14701
+ "type": "timestamp",
14702
+ "primaryKey": false,
14703
+ "notNull": true,
14704
+ "default": "now()"
14705
+ }
14706
+ },
14707
+ "indexes": {},
14708
+ "foreignKeys": {
14709
+ "workflow_transitions_repository_id_repositories_id_fk": {
14710
+ "name": "workflow_transitions_repository_id_repositories_id_fk",
14711
+ "tableFrom": "workflow_transitions",
14712
+ "tableTo": "repositories",
14713
+ "columnsFrom": [
14714
+ "repository_id"
14715
+ ],
14716
+ "columnsTo": [
14717
+ "id"
14718
+ ],
14719
+ "onDelete": "cascade",
14720
+ "onUpdate": "no action"
14721
+ },
14722
+ "workflow_transitions_from_state_id_workflow_states_id_fk": {
14723
+ "name": "workflow_transitions_from_state_id_workflow_states_id_fk",
14724
+ "tableFrom": "workflow_transitions",
14725
+ "tableTo": "workflow_states",
14726
+ "columnsFrom": [
14727
+ "from_state_id"
14728
+ ],
14729
+ "columnsTo": [
14730
+ "id"
14731
+ ],
14732
+ "onDelete": "cascade",
14733
+ "onUpdate": "no action"
14734
+ },
14735
+ "workflow_transitions_to_state_id_workflow_states_id_fk": {
14736
+ "name": "workflow_transitions_to_state_id_workflow_states_id_fk",
14737
+ "tableFrom": "workflow_transitions",
14738
+ "tableTo": "workflow_states",
14739
+ "columnsFrom": [
14740
+ "to_state_id"
14741
+ ],
14742
+ "columnsTo": [
14743
+ "id"
14744
+ ],
14745
+ "onDelete": "cascade",
14746
+ "onUpdate": "no action"
14747
+ }
14748
+ },
14749
+ "compositePrimaryKeys": {},
14750
+ "uniqueConstraints": {},
14751
+ "policies": {},
14752
+ "checkConstraints": {},
14753
+ "isRLSEnabled": false
14754
+ },
14755
+ "public.package_versions": {
14756
+ "name": "package_versions",
14757
+ "schema": "",
14758
+ "columns": {
14759
+ "id": {
14760
+ "name": "id",
14761
+ "type": "text",
14762
+ "primaryKey": true,
14763
+ "notNull": true
14764
+ },
14765
+ "package_id": {
14766
+ "name": "package_id",
14767
+ "type": "text",
14768
+ "primaryKey": false,
14769
+ "notNull": true
14770
+ },
14771
+ "version": {
14772
+ "name": "version",
14773
+ "type": "text",
14774
+ "primaryKey": false,
14775
+ "notNull": true
14776
+ },
14777
+ "digest": {
14778
+ "name": "digest",
14779
+ "type": "text",
14780
+ "primaryKey": false,
14781
+ "notNull": false
14782
+ },
14783
+ "size_bytes": {
14784
+ "name": "size_bytes",
14785
+ "type": "integer",
14786
+ "primaryKey": false,
14787
+ "notNull": false
14788
+ },
14789
+ "storage_path": {
14790
+ "name": "storage_path",
14791
+ "type": "text",
14792
+ "primaryKey": false,
14793
+ "notNull": true
14794
+ },
14795
+ "metadata": {
14796
+ "name": "metadata",
14797
+ "type": "jsonb",
14798
+ "primaryKey": false,
14799
+ "notNull": false
14800
+ },
14801
+ "tags": {
14802
+ "name": "tags",
14803
+ "type": "jsonb",
14804
+ "primaryKey": false,
14805
+ "notNull": false,
14806
+ "default": "'[]'::jsonb"
14807
+ },
14808
+ "git_ref": {
14809
+ "name": "git_ref",
14810
+ "type": "text",
14811
+ "primaryKey": false,
14812
+ "notNull": false
14813
+ },
14814
+ "published_by_id": {
14815
+ "name": "published_by_id",
14816
+ "type": "text",
14817
+ "primaryKey": false,
14818
+ "notNull": false
14819
+ },
14820
+ "download_count": {
14821
+ "name": "download_count",
14822
+ "type": "integer",
14823
+ "primaryKey": false,
14824
+ "notNull": true,
14825
+ "default": 0
14826
+ },
14827
+ "yanked": {
14828
+ "name": "yanked",
14829
+ "type": "boolean",
14830
+ "primaryKey": false,
14831
+ "notNull": false,
14832
+ "default": false
14833
+ },
14834
+ "created_at": {
14835
+ "name": "created_at",
14836
+ "type": "timestamp",
14837
+ "primaryKey": false,
14838
+ "notNull": true,
14839
+ "default": "now()"
14840
+ }
14841
+ },
14842
+ "indexes": {
14843
+ "pkg_version_idx": {
14844
+ "name": "pkg_version_idx",
14845
+ "columns": [
14846
+ {
14847
+ "expression": "package_id",
14848
+ "isExpression": false,
14849
+ "asc": true,
14850
+ "nulls": "last"
14851
+ },
14852
+ {
14853
+ "expression": "version",
14854
+ "isExpression": false,
14855
+ "asc": true,
14856
+ "nulls": "last"
14857
+ }
14858
+ ],
14859
+ "isUnique": true,
14860
+ "concurrently": false,
14861
+ "method": "btree",
14862
+ "with": {}
14863
+ },
14864
+ "pkg_digest_idx": {
14865
+ "name": "pkg_digest_idx",
14866
+ "columns": [
14867
+ {
14868
+ "expression": "digest",
14869
+ "isExpression": false,
14870
+ "asc": true,
14871
+ "nulls": "last"
14872
+ }
14873
+ ],
14874
+ "isUnique": false,
14875
+ "concurrently": false,
14876
+ "method": "btree",
14877
+ "with": {}
14878
+ }
14879
+ },
14880
+ "foreignKeys": {
14881
+ "package_versions_package_id_packages_id_fk": {
14882
+ "name": "package_versions_package_id_packages_id_fk",
14883
+ "tableFrom": "package_versions",
14884
+ "tableTo": "packages",
14885
+ "columnsFrom": [
14886
+ "package_id"
14887
+ ],
14888
+ "columnsTo": [
14889
+ "id"
14890
+ ],
14891
+ "onDelete": "cascade",
14892
+ "onUpdate": "no action"
14893
+ },
14894
+ "package_versions_published_by_id_users_id_fk": {
14895
+ "name": "package_versions_published_by_id_users_id_fk",
14896
+ "tableFrom": "package_versions",
14897
+ "tableTo": "users",
14898
+ "columnsFrom": [
14899
+ "published_by_id"
14900
+ ],
14901
+ "columnsTo": [
14902
+ "id"
14903
+ ],
14904
+ "onDelete": "no action",
14905
+ "onUpdate": "no action"
14906
+ }
14907
+ },
14908
+ "compositePrimaryKeys": {},
14909
+ "uniqueConstraints": {},
14910
+ "policies": {},
14911
+ "checkConstraints": {},
14912
+ "isRLSEnabled": false
14913
+ },
14914
+ "public.packages": {
14915
+ "name": "packages",
14916
+ "schema": "",
14917
+ "columns": {
14918
+ "id": {
14919
+ "name": "id",
14920
+ "type": "text",
14921
+ "primaryKey": true,
14922
+ "notNull": true
14923
+ },
14924
+ "organization_id": {
14925
+ "name": "organization_id",
14926
+ "type": "text",
14927
+ "primaryKey": false,
14928
+ "notNull": false
14929
+ },
14930
+ "repository_id": {
14931
+ "name": "repository_id",
14932
+ "type": "text",
14933
+ "primaryKey": false,
14934
+ "notNull": false
14935
+ },
14936
+ "type": {
14937
+ "name": "type",
14938
+ "type": "text",
14939
+ "primaryKey": false,
14940
+ "notNull": true
14941
+ },
14942
+ "name": {
14943
+ "name": "name",
14944
+ "type": "text",
14945
+ "primaryKey": false,
14946
+ "notNull": true
14947
+ },
14948
+ "description": {
14949
+ "name": "description",
14950
+ "type": "text",
14951
+ "primaryKey": false,
14952
+ "notNull": false
14953
+ },
14954
+ "visibility": {
14955
+ "name": "visibility",
14956
+ "type": "text",
14957
+ "primaryKey": false,
14958
+ "notNull": true,
14959
+ "default": "'private'"
14960
+ },
14961
+ "download_count": {
14962
+ "name": "download_count",
14963
+ "type": "integer",
14964
+ "primaryKey": false,
14965
+ "notNull": true,
14966
+ "default": 0
14967
+ },
14968
+ "created_by_id": {
14969
+ "name": "created_by_id",
14970
+ "type": "text",
14971
+ "primaryKey": false,
14972
+ "notNull": false
14973
+ },
14974
+ "created_at": {
14975
+ "name": "created_at",
14976
+ "type": "timestamp",
14977
+ "primaryKey": false,
14978
+ "notNull": true,
14979
+ "default": "now()"
14980
+ },
14981
+ "updated_at": {
14982
+ "name": "updated_at",
14983
+ "type": "timestamp",
14984
+ "primaryKey": false,
14985
+ "notNull": true,
14986
+ "default": "now()"
14987
+ }
14988
+ },
14989
+ "indexes": {
14990
+ "pkg_org_type_name_idx": {
14991
+ "name": "pkg_org_type_name_idx",
14992
+ "columns": [
14993
+ {
14994
+ "expression": "organization_id",
14995
+ "isExpression": false,
14996
+ "asc": true,
14997
+ "nulls": "last"
14998
+ },
14999
+ {
15000
+ "expression": "type",
15001
+ "isExpression": false,
15002
+ "asc": true,
15003
+ "nulls": "last"
15004
+ },
15005
+ {
15006
+ "expression": "name",
15007
+ "isExpression": false,
15008
+ "asc": true,
15009
+ "nulls": "last"
15010
+ }
15011
+ ],
15012
+ "isUnique": true,
15013
+ "concurrently": false,
15014
+ "method": "btree",
15015
+ "with": {}
15016
+ },
15017
+ "pkg_type_idx": {
15018
+ "name": "pkg_type_idx",
15019
+ "columns": [
15020
+ {
15021
+ "expression": "type",
15022
+ "isExpression": false,
15023
+ "asc": true,
15024
+ "nulls": "last"
15025
+ }
15026
+ ],
15027
+ "isUnique": false,
15028
+ "concurrently": false,
15029
+ "method": "btree",
15030
+ "with": {}
15031
+ }
15032
+ },
15033
+ "foreignKeys": {
15034
+ "packages_organization_id_organizations_id_fk": {
15035
+ "name": "packages_organization_id_organizations_id_fk",
15036
+ "tableFrom": "packages",
15037
+ "tableTo": "organizations",
15038
+ "columnsFrom": [
15039
+ "organization_id"
15040
+ ],
15041
+ "columnsTo": [
15042
+ "id"
15043
+ ],
15044
+ "onDelete": "cascade",
15045
+ "onUpdate": "no action"
15046
+ },
15047
+ "packages_repository_id_repositories_id_fk": {
15048
+ "name": "packages_repository_id_repositories_id_fk",
15049
+ "tableFrom": "packages",
15050
+ "tableTo": "repositories",
15051
+ "columnsFrom": [
15052
+ "repository_id"
15053
+ ],
15054
+ "columnsTo": [
15055
+ "id"
15056
+ ],
15057
+ "onDelete": "set null",
15058
+ "onUpdate": "no action"
15059
+ },
15060
+ "packages_created_by_id_users_id_fk": {
15061
+ "name": "packages_created_by_id_users_id_fk",
15062
+ "tableFrom": "packages",
15063
+ "tableTo": "users",
15064
+ "columnsFrom": [
15065
+ "created_by_id"
15066
+ ],
15067
+ "columnsTo": [
15068
+ "id"
15069
+ ],
15070
+ "onDelete": "no action",
15071
+ "onUpdate": "no action"
15072
+ }
15073
+ },
15074
+ "compositePrimaryKeys": {},
15075
+ "uniqueConstraints": {},
15076
+ "policies": {},
15077
+ "checkConstraints": {},
15078
+ "isRLSEnabled": false
15079
+ },
15080
+ "public.ai_inline_comments": {
15081
+ "name": "ai_inline_comments",
15082
+ "schema": "",
15083
+ "columns": {
15084
+ "id": {
15085
+ "name": "id",
15086
+ "type": "text",
15087
+ "primaryKey": true,
15088
+ "notNull": true
15089
+ },
15090
+ "analysis_id": {
15091
+ "name": "analysis_id",
15092
+ "type": "text",
15093
+ "primaryKey": false,
15094
+ "notNull": true
15095
+ },
15096
+ "pull_request_id": {
15097
+ "name": "pull_request_id",
15098
+ "type": "text",
15099
+ "primaryKey": false,
15100
+ "notNull": true
15101
+ },
15102
+ "file_path": {
15103
+ "name": "file_path",
15104
+ "type": "text",
15105
+ "primaryKey": false,
15106
+ "notNull": true
15107
+ },
15108
+ "line": {
15109
+ "name": "line",
15110
+ "type": "integer",
15111
+ "primaryKey": false,
15112
+ "notNull": true
15113
+ },
15114
+ "end_line": {
15115
+ "name": "end_line",
15116
+ "type": "integer",
15117
+ "primaryKey": false,
15118
+ "notNull": false
15119
+ },
15120
+ "side": {
15121
+ "name": "side",
15122
+ "type": "text",
15123
+ "primaryKey": false,
15124
+ "notNull": false,
15125
+ "default": "'right'"
15126
+ },
15127
+ "severity": {
15128
+ "name": "severity",
15129
+ "type": "text",
15130
+ "primaryKey": false,
15131
+ "notNull": true
15132
+ },
15133
+ "type": {
15134
+ "name": "type",
15135
+ "type": "text",
15136
+ "primaryKey": false,
15137
+ "notNull": true
15138
+ },
15139
+ "category": {
15140
+ "name": "category",
15141
+ "type": "text",
15142
+ "primaryKey": false,
15143
+ "notNull": false
15144
+ },
15145
+ "title": {
15146
+ "name": "title",
15147
+ "type": "text",
15148
+ "primaryKey": false,
15149
+ "notNull": true
15150
+ },
15151
+ "message": {
15152
+ "name": "message",
15153
+ "type": "text",
15154
+ "primaryKey": false,
15155
+ "notNull": true
15156
+ },
15157
+ "suggested_fix": {
15158
+ "name": "suggested_fix",
15159
+ "type": "text",
15160
+ "primaryKey": false,
15161
+ "notNull": false
15162
+ },
15163
+ "explanation": {
15164
+ "name": "explanation",
15165
+ "type": "text",
15166
+ "primaryKey": false,
15167
+ "notNull": false
15168
+ },
15169
+ "confidence": {
15170
+ "name": "confidence",
15171
+ "type": "integer",
15172
+ "primaryKey": false,
15173
+ "notNull": false
15174
+ },
15175
+ "is_resolved": {
15176
+ "name": "is_resolved",
15177
+ "type": "integer",
15178
+ "primaryKey": false,
15179
+ "notNull": false,
15180
+ "default": 0
15181
+ },
15182
+ "is_applied": {
15183
+ "name": "is_applied",
15184
+ "type": "integer",
15185
+ "primaryKey": false,
15186
+ "notNull": false,
15187
+ "default": 0
15188
+ },
15189
+ "applied_at": {
15190
+ "name": "applied_at",
15191
+ "type": "timestamp",
15192
+ "primaryKey": false,
15193
+ "notNull": false
15194
+ },
15195
+ "dismissed_at": {
15196
+ "name": "dismissed_at",
15197
+ "type": "timestamp",
15198
+ "primaryKey": false,
15199
+ "notNull": false
15200
+ },
15201
+ "created_at": {
15202
+ "name": "created_at",
15203
+ "type": "timestamp",
15204
+ "primaryKey": false,
15205
+ "notNull": true,
15206
+ "default": "now()"
15207
+ }
15208
+ },
15209
+ "indexes": {
15210
+ "ai_inline_comments_analysis_idx": {
15211
+ "name": "ai_inline_comments_analysis_idx",
15212
+ "columns": [
15213
+ {
15214
+ "expression": "analysis_id",
15215
+ "isExpression": false,
15216
+ "asc": true,
15217
+ "nulls": "last"
15218
+ }
15219
+ ],
15220
+ "isUnique": false,
15221
+ "concurrently": false,
15222
+ "method": "btree",
15223
+ "with": {}
15224
+ },
15225
+ "ai_inline_comments_pr_idx": {
15226
+ "name": "ai_inline_comments_pr_idx",
15227
+ "columns": [
15228
+ {
15229
+ "expression": "pull_request_id",
15230
+ "isExpression": false,
15231
+ "asc": true,
15232
+ "nulls": "last"
15233
+ }
15234
+ ],
15235
+ "isUnique": false,
15236
+ "concurrently": false,
15237
+ "method": "btree",
15238
+ "with": {}
15239
+ },
15240
+ "ai_inline_comments_path_idx": {
15241
+ "name": "ai_inline_comments_path_idx",
15242
+ "columns": [
15243
+ {
15244
+ "expression": "file_path",
15245
+ "isExpression": false,
15246
+ "asc": true,
15247
+ "nulls": "last"
15248
+ }
15249
+ ],
15250
+ "isUnique": false,
15251
+ "concurrently": false,
15252
+ "method": "btree",
15253
+ "with": {}
15254
+ },
15255
+ "ai_inline_comments_severity_idx": {
15256
+ "name": "ai_inline_comments_severity_idx",
15257
+ "columns": [
15258
+ {
15259
+ "expression": "severity",
15260
+ "isExpression": false,
15261
+ "asc": true,
15262
+ "nulls": "last"
15263
+ }
15264
+ ],
15265
+ "isUnique": false,
15266
+ "concurrently": false,
15267
+ "method": "btree",
15268
+ "with": {}
15269
+ }
15270
+ },
15271
+ "foreignKeys": {
15272
+ "ai_inline_comments_analysis_id_pr_review_analyses_id_fk": {
15273
+ "name": "ai_inline_comments_analysis_id_pr_review_analyses_id_fk",
15274
+ "tableFrom": "ai_inline_comments",
15275
+ "tableTo": "pr_review_analyses",
15276
+ "columnsFrom": [
15277
+ "analysis_id"
15278
+ ],
15279
+ "columnsTo": [
15280
+ "id"
15281
+ ],
15282
+ "onDelete": "cascade",
15283
+ "onUpdate": "no action"
15284
+ },
15285
+ "ai_inline_comments_pull_request_id_pull_requests_id_fk": {
15286
+ "name": "ai_inline_comments_pull_request_id_pull_requests_id_fk",
15287
+ "tableFrom": "ai_inline_comments",
15288
+ "tableTo": "pull_requests",
15289
+ "columnsFrom": [
15290
+ "pull_request_id"
15291
+ ],
15292
+ "columnsTo": [
15293
+ "id"
15294
+ ],
15295
+ "onDelete": "cascade",
15296
+ "onUpdate": "no action"
15297
+ }
15298
+ },
15299
+ "compositePrimaryKeys": {},
15300
+ "uniqueConstraints": {},
15301
+ "policies": {},
15302
+ "checkConstraints": {},
15303
+ "isRLSEnabled": false
15304
+ },
15305
+ "public.ai_review_threads": {
15306
+ "name": "ai_review_threads",
15307
+ "schema": "",
15308
+ "columns": {
15309
+ "id": {
15310
+ "name": "id",
15311
+ "type": "text",
15312
+ "primaryKey": true,
15313
+ "notNull": true
15314
+ },
15315
+ "analysis_id": {
15316
+ "name": "analysis_id",
15317
+ "type": "text",
15318
+ "primaryKey": false,
15319
+ "notNull": true
15320
+ },
15321
+ "pull_request_id": {
15322
+ "name": "pull_request_id",
15323
+ "type": "text",
15324
+ "primaryKey": false,
15325
+ "notNull": true
15326
+ },
15327
+ "file_path": {
15328
+ "name": "file_path",
15329
+ "type": "text",
15330
+ "primaryKey": false,
15331
+ "notNull": false
15332
+ },
15333
+ "line": {
15334
+ "name": "line",
15335
+ "type": "integer",
15336
+ "primaryKey": false,
15337
+ "notNull": false
15338
+ },
15339
+ "messages": {
15340
+ "name": "messages",
15341
+ "type": "jsonb",
15342
+ "primaryKey": false,
15343
+ "notNull": true
15344
+ },
15345
+ "created_at": {
15346
+ "name": "created_at",
15347
+ "type": "timestamp",
15348
+ "primaryKey": false,
15349
+ "notNull": true,
15350
+ "default": "now()"
15351
+ },
15352
+ "updated_at": {
15353
+ "name": "updated_at",
15354
+ "type": "timestamp",
15355
+ "primaryKey": false,
15356
+ "notNull": true,
15357
+ "default": "now()"
15358
+ }
15359
+ },
15360
+ "indexes": {
15361
+ "ai_thread_analysis_idx": {
15362
+ "name": "ai_thread_analysis_idx",
15363
+ "columns": [
15364
+ {
15365
+ "expression": "analysis_id",
15366
+ "isExpression": false,
15367
+ "asc": true,
15368
+ "nulls": "last"
15369
+ }
15370
+ ],
15371
+ "isUnique": false,
15372
+ "concurrently": false,
15373
+ "method": "btree",
15374
+ "with": {}
15375
+ },
15376
+ "ai_thread_pr_idx": {
15377
+ "name": "ai_thread_pr_idx",
15378
+ "columns": [
15379
+ {
15380
+ "expression": "pull_request_id",
15381
+ "isExpression": false,
15382
+ "asc": true,
15383
+ "nulls": "last"
15384
+ }
15385
+ ],
15386
+ "isUnique": false,
15387
+ "concurrently": false,
15388
+ "method": "btree",
15389
+ "with": {}
15390
+ }
15391
+ },
15392
+ "foreignKeys": {
15393
+ "ai_review_threads_analysis_id_pr_review_analyses_id_fk": {
15394
+ "name": "ai_review_threads_analysis_id_pr_review_analyses_id_fk",
15395
+ "tableFrom": "ai_review_threads",
15396
+ "tableTo": "pr_review_analyses",
15397
+ "columnsFrom": [
15398
+ "analysis_id"
15399
+ ],
15400
+ "columnsTo": [
15401
+ "id"
15402
+ ],
15403
+ "onDelete": "cascade",
15404
+ "onUpdate": "no action"
15405
+ },
15406
+ "ai_review_threads_pull_request_id_pull_requests_id_fk": {
15407
+ "name": "ai_review_threads_pull_request_id_pull_requests_id_fk",
15408
+ "tableFrom": "ai_review_threads",
15409
+ "tableTo": "pull_requests",
15410
+ "columnsFrom": [
15411
+ "pull_request_id"
15412
+ ],
15413
+ "columnsTo": [
15414
+ "id"
15415
+ ],
15416
+ "onDelete": "cascade",
15417
+ "onUpdate": "no action"
15418
+ }
15419
+ },
15420
+ "compositePrimaryKeys": {},
15421
+ "uniqueConstraints": {},
15422
+ "policies": {},
15423
+ "checkConstraints": {},
15424
+ "isRLSEnabled": false
15425
+ },
15426
+ "public.file_summaries": {
15427
+ "name": "file_summaries",
15428
+ "schema": "",
15429
+ "columns": {
15430
+ "id": {
15431
+ "name": "id",
15432
+ "type": "text",
15433
+ "primaryKey": true,
15434
+ "notNull": true
15435
+ },
15436
+ "analysis_id": {
15437
+ "name": "analysis_id",
15438
+ "type": "text",
15439
+ "primaryKey": false,
15440
+ "notNull": true
15441
+ },
15442
+ "file_path": {
15443
+ "name": "file_path",
15444
+ "type": "text",
15445
+ "primaryKey": false,
15446
+ "notNull": true
15447
+ },
15448
+ "language": {
15449
+ "name": "language",
15450
+ "type": "text",
15451
+ "primaryKey": false,
15452
+ "notNull": false
15453
+ },
15454
+ "summary": {
15455
+ "name": "summary",
15456
+ "type": "text",
15457
+ "primaryKey": false,
15458
+ "notNull": false
15459
+ },
15460
+ "risk_level": {
15461
+ "name": "risk_level",
15462
+ "type": "text",
15463
+ "primaryKey": false,
15464
+ "notNull": false
15465
+ },
15466
+ "additions": {
15467
+ "name": "additions",
15468
+ "type": "integer",
15469
+ "primaryKey": false,
15470
+ "notNull": false
15471
+ },
15472
+ "deletions": {
15473
+ "name": "deletions",
15474
+ "type": "integer",
15475
+ "primaryKey": false,
15476
+ "notNull": false
15477
+ },
15478
+ "complexity_score": {
15479
+ "name": "complexity_score",
15480
+ "type": "integer",
15481
+ "primaryKey": false,
15482
+ "notNull": false
15483
+ },
15484
+ "created_at": {
15485
+ "name": "created_at",
15486
+ "type": "timestamp",
15487
+ "primaryKey": false,
15488
+ "notNull": true,
15489
+ "default": "now()"
15490
+ }
15491
+ },
15492
+ "indexes": {
15493
+ "file_summaries_analysis_idx": {
15494
+ "name": "file_summaries_analysis_idx",
15495
+ "columns": [
15496
+ {
15497
+ "expression": "analysis_id",
15498
+ "isExpression": false,
15499
+ "asc": true,
15500
+ "nulls": "last"
15501
+ }
15502
+ ],
15503
+ "isUnique": false,
15504
+ "concurrently": false,
15505
+ "method": "btree",
15506
+ "with": {}
15507
+ },
15508
+ "file_summaries_path_idx": {
15509
+ "name": "file_summaries_path_idx",
15510
+ "columns": [
15511
+ {
15512
+ "expression": "file_path",
15513
+ "isExpression": false,
15514
+ "asc": true,
15515
+ "nulls": "last"
15516
+ }
15517
+ ],
15518
+ "isUnique": false,
15519
+ "concurrently": false,
15520
+ "method": "btree",
15521
+ "with": {}
15522
+ }
15523
+ },
15524
+ "foreignKeys": {
15525
+ "file_summaries_analysis_id_pr_review_analyses_id_fk": {
15526
+ "name": "file_summaries_analysis_id_pr_review_analyses_id_fk",
15527
+ "tableFrom": "file_summaries",
15528
+ "tableTo": "pr_review_analyses",
15529
+ "columnsFrom": [
15530
+ "analysis_id"
15531
+ ],
15532
+ "columnsTo": [
15533
+ "id"
15534
+ ],
15535
+ "onDelete": "cascade",
15536
+ "onUpdate": "no action"
15537
+ }
15538
+ },
15539
+ "compositePrimaryKeys": {},
15540
+ "uniqueConstraints": {},
15541
+ "policies": {},
15542
+ "checkConstraints": {},
15543
+ "isRLSEnabled": false
15544
+ },
15545
+ "public.pr_review_analyses": {
15546
+ "name": "pr_review_analyses",
15547
+ "schema": "",
15548
+ "columns": {
15549
+ "id": {
15550
+ "name": "id",
15551
+ "type": "text",
15552
+ "primaryKey": true,
15553
+ "notNull": true
15554
+ },
15555
+ "pull_request_id": {
15556
+ "name": "pull_request_id",
15557
+ "type": "text",
15558
+ "primaryKey": false,
15559
+ "notNull": true
15560
+ },
15561
+ "repository_id": {
15562
+ "name": "repository_id",
15563
+ "type": "text",
15564
+ "primaryKey": false,
15565
+ "notNull": true
15566
+ },
15567
+ "status": {
15568
+ "name": "status",
15569
+ "type": "text",
15570
+ "primaryKey": false,
15571
+ "notNull": true,
15572
+ "default": "'pending'"
15573
+ },
15574
+ "complexity_data": {
15575
+ "name": "complexity_data",
15576
+ "type": "jsonb",
15577
+ "primaryKey": false,
15578
+ "notNull": false
15579
+ },
15580
+ "dependency_graph": {
15581
+ "name": "dependency_graph",
15582
+ "type": "jsonb",
15583
+ "primaryKey": false,
15584
+ "notNull": false
15585
+ },
15586
+ "architecture_impact": {
15587
+ "name": "architecture_impact",
15588
+ "type": "jsonb",
15589
+ "primaryKey": false,
15590
+ "notNull": false
15591
+ },
15592
+ "change_groups": {
15593
+ "name": "change_groups",
15594
+ "type": "jsonb",
15595
+ "primaryKey": false,
15596
+ "notNull": false
15597
+ },
15598
+ "blast_radius": {
15599
+ "name": "blast_radius",
15600
+ "type": "jsonb",
15601
+ "primaryKey": false,
15602
+ "notNull": false
15603
+ },
15604
+ "health_score": {
15605
+ "name": "health_score",
15606
+ "type": "integer",
15607
+ "primaryKey": false,
15608
+ "notNull": false
15609
+ },
15610
+ "health_grade": {
15611
+ "name": "health_grade",
15612
+ "type": "text",
15613
+ "primaryKey": false,
15614
+ "notNull": false
15615
+ },
15616
+ "summaries": {
15617
+ "name": "summaries",
15618
+ "type": "jsonb",
15619
+ "primaryKey": false,
15620
+ "notNull": false
15621
+ },
15622
+ "base_sha": {
15623
+ "name": "base_sha",
15624
+ "type": "text",
15625
+ "primaryKey": false,
15626
+ "notNull": false
15627
+ },
15628
+ "head_sha": {
15629
+ "name": "head_sha",
15630
+ "type": "text",
15631
+ "primaryKey": false,
15632
+ "notNull": false
15633
+ },
15634
+ "files_analyzed": {
15635
+ "name": "files_analyzed",
15636
+ "type": "integer",
15637
+ "primaryKey": false,
15638
+ "notNull": false
15639
+ },
15640
+ "chunks_processed": {
15641
+ "name": "chunks_processed",
15642
+ "type": "integer",
15643
+ "primaryKey": false,
15644
+ "notNull": false
15645
+ },
15646
+ "total_additions": {
15647
+ "name": "total_additions",
15648
+ "type": "integer",
15649
+ "primaryKey": false,
15650
+ "notNull": false
15651
+ },
15652
+ "total_deletions": {
15653
+ "name": "total_deletions",
15654
+ "type": "integer",
15655
+ "primaryKey": false,
15656
+ "notNull": false
15657
+ },
15658
+ "model": {
15659
+ "name": "model",
15660
+ "type": "text",
15661
+ "primaryKey": false,
15662
+ "notNull": false
15663
+ },
15664
+ "provider": {
15665
+ "name": "provider",
15666
+ "type": "text",
15667
+ "primaryKey": false,
15668
+ "notNull": false
15669
+ },
15670
+ "tokens_used": {
15671
+ "name": "tokens_used",
15672
+ "type": "integer",
15673
+ "primaryKey": false,
15674
+ "notNull": false
15675
+ },
15676
+ "cost_cents": {
15677
+ "name": "cost_cents",
15678
+ "type": "integer",
15679
+ "primaryKey": false,
15680
+ "notNull": false
15681
+ },
15682
+ "raw_ai_response": {
15683
+ "name": "raw_ai_response",
15684
+ "type": "jsonb",
15685
+ "primaryKey": false,
15686
+ "notNull": false
15687
+ },
15688
+ "triggered_by_id": {
15689
+ "name": "triggered_by_id",
15690
+ "type": "text",
15691
+ "primaryKey": false,
15692
+ "notNull": false
15693
+ },
15694
+ "created_at": {
15695
+ "name": "created_at",
15696
+ "type": "timestamp",
15697
+ "primaryKey": false,
15698
+ "notNull": true,
15699
+ "default": "now()"
15700
+ },
15701
+ "started_at": {
15702
+ "name": "started_at",
15703
+ "type": "timestamp",
15704
+ "primaryKey": false,
15705
+ "notNull": false
15706
+ },
15707
+ "completed_at": {
15708
+ "name": "completed_at",
15709
+ "type": "timestamp",
15710
+ "primaryKey": false,
15711
+ "notNull": false
15712
+ },
15713
+ "error_message": {
15714
+ "name": "error_message",
15715
+ "type": "text",
15716
+ "primaryKey": false,
15717
+ "notNull": false
15718
+ }
15719
+ },
15720
+ "indexes": {
15721
+ "pr_analysis_pr_idx": {
15722
+ "name": "pr_analysis_pr_idx",
15723
+ "columns": [
15724
+ {
15725
+ "expression": "pull_request_id",
15726
+ "isExpression": false,
15727
+ "asc": true,
15728
+ "nulls": "last"
15729
+ }
15730
+ ],
15731
+ "isUnique": false,
15732
+ "concurrently": false,
15733
+ "method": "btree",
15734
+ "with": {}
15735
+ },
15736
+ "pr_analysis_repo_idx": {
15737
+ "name": "pr_analysis_repo_idx",
15738
+ "columns": [
15739
+ {
15740
+ "expression": "repository_id",
15741
+ "isExpression": false,
15742
+ "asc": true,
15743
+ "nulls": "last"
15744
+ }
15745
+ ],
15746
+ "isUnique": false,
15747
+ "concurrently": false,
15748
+ "method": "btree",
15749
+ "with": {}
15750
+ },
15751
+ "pr_analysis_status_idx": {
15752
+ "name": "pr_analysis_status_idx",
15753
+ "columns": [
15754
+ {
15755
+ "expression": "status",
15756
+ "isExpression": false,
15757
+ "asc": true,
15758
+ "nulls": "last"
15759
+ }
15760
+ ],
15761
+ "isUnique": false,
15762
+ "concurrently": false,
15763
+ "method": "btree",
15764
+ "with": {}
15765
+ },
15766
+ "pr_analysis_created_idx": {
15767
+ "name": "pr_analysis_created_idx",
15768
+ "columns": [
15769
+ {
15770
+ "expression": "created_at",
15771
+ "isExpression": false,
15772
+ "asc": true,
15773
+ "nulls": "last"
15774
+ }
15775
+ ],
15776
+ "isUnique": false,
15777
+ "concurrently": false,
15778
+ "method": "btree",
15779
+ "with": {}
15780
+ }
15781
+ },
15782
+ "foreignKeys": {
15783
+ "pr_review_analyses_pull_request_id_pull_requests_id_fk": {
15784
+ "name": "pr_review_analyses_pull_request_id_pull_requests_id_fk",
15785
+ "tableFrom": "pr_review_analyses",
15786
+ "tableTo": "pull_requests",
15787
+ "columnsFrom": [
15788
+ "pull_request_id"
15789
+ ],
15790
+ "columnsTo": [
15791
+ "id"
15792
+ ],
15793
+ "onDelete": "cascade",
15794
+ "onUpdate": "no action"
15795
+ },
15796
+ "pr_review_analyses_repository_id_repositories_id_fk": {
15797
+ "name": "pr_review_analyses_repository_id_repositories_id_fk",
15798
+ "tableFrom": "pr_review_analyses",
15799
+ "tableTo": "repositories",
15800
+ "columnsFrom": [
15801
+ "repository_id"
15802
+ ],
15803
+ "columnsTo": [
15804
+ "id"
15805
+ ],
15806
+ "onDelete": "cascade",
15807
+ "onUpdate": "no action"
15808
+ },
15809
+ "pr_review_analyses_triggered_by_id_users_id_fk": {
15810
+ "name": "pr_review_analyses_triggered_by_id_users_id_fk",
15811
+ "tableFrom": "pr_review_analyses",
15812
+ "tableTo": "users",
15813
+ "columnsFrom": [
15814
+ "triggered_by_id"
15815
+ ],
15816
+ "columnsTo": [
15817
+ "id"
15818
+ ],
15819
+ "onDelete": "no action",
15820
+ "onUpdate": "no action"
15821
+ }
15822
+ },
15823
+ "compositePrimaryKeys": {},
15824
+ "uniqueConstraints": {},
15825
+ "policies": {},
15826
+ "checkConstraints": {},
15827
+ "isRLSEnabled": false
15828
+ },
15829
+ "public.oauth_apps": {
15830
+ "name": "oauth_apps",
15831
+ "schema": "",
15832
+ "columns": {
15833
+ "id": {
15834
+ "name": "id",
15835
+ "type": "text",
15836
+ "primaryKey": true,
15837
+ "notNull": true
15838
+ },
15839
+ "owner_id": {
15840
+ "name": "owner_id",
15841
+ "type": "text",
15842
+ "primaryKey": false,
15843
+ "notNull": true
15844
+ },
15845
+ "name": {
15846
+ "name": "name",
15847
+ "type": "text",
15848
+ "primaryKey": false,
15849
+ "notNull": true
15850
+ },
15851
+ "description": {
15852
+ "name": "description",
15853
+ "type": "text",
15854
+ "primaryKey": false,
15855
+ "notNull": false
15856
+ },
15857
+ "client_id": {
15858
+ "name": "client_id",
15859
+ "type": "text",
15860
+ "primaryKey": false,
15861
+ "notNull": true
15862
+ },
15863
+ "client_secret_hash": {
15864
+ "name": "client_secret_hash",
15865
+ "type": "text",
15866
+ "primaryKey": false,
15867
+ "notNull": true
15868
+ },
15869
+ "redirect_uris": {
15870
+ "name": "redirect_uris",
15871
+ "type": "text",
15872
+ "primaryKey": false,
15873
+ "notNull": true
15874
+ },
15875
+ "scopes": {
15876
+ "name": "scopes",
15877
+ "type": "text",
15878
+ "primaryKey": false,
15879
+ "notNull": false
15880
+ },
15881
+ "homepage_url": {
15882
+ "name": "homepage_url",
15883
+ "type": "text",
15884
+ "primaryKey": false,
15885
+ "notNull": false
15886
+ },
15887
+ "icon_url": {
15888
+ "name": "icon_url",
15889
+ "type": "text",
15890
+ "primaryKey": false,
15891
+ "notNull": false
15892
+ },
15893
+ "created_at": {
15894
+ "name": "created_at",
15895
+ "type": "timestamp",
15896
+ "primaryKey": false,
15897
+ "notNull": true,
15898
+ "default": "now()"
15899
+ },
15900
+ "updated_at": {
15901
+ "name": "updated_at",
15902
+ "type": "timestamp",
15903
+ "primaryKey": false,
15904
+ "notNull": true,
15905
+ "default": "now()"
15906
+ }
15907
+ },
15908
+ "indexes": {
15909
+ "oauth_apps_owner_idx": {
15910
+ "name": "oauth_apps_owner_idx",
15911
+ "columns": [
15912
+ {
15913
+ "expression": "owner_id",
15914
+ "isExpression": false,
15915
+ "asc": true,
15916
+ "nulls": "last"
15917
+ }
15918
+ ],
15919
+ "isUnique": false,
15920
+ "concurrently": false,
15921
+ "method": "btree",
15922
+ "with": {}
15923
+ }
15924
+ },
15925
+ "foreignKeys": {
15926
+ "oauth_apps_owner_id_users_id_fk": {
15927
+ "name": "oauth_apps_owner_id_users_id_fk",
15928
+ "tableFrom": "oauth_apps",
15929
+ "tableTo": "users",
15930
+ "columnsFrom": [
15931
+ "owner_id"
15932
+ ],
15933
+ "columnsTo": [
15934
+ "id"
15935
+ ],
15936
+ "onDelete": "cascade",
15937
+ "onUpdate": "no action"
15938
+ }
15939
+ },
15940
+ "compositePrimaryKeys": {},
15941
+ "uniqueConstraints": {
15942
+ "oauth_apps_client_id_unique": {
15943
+ "name": "oauth_apps_client_id_unique",
15944
+ "nullsNotDistinct": false,
15945
+ "columns": [
15946
+ "client_id"
15947
+ ]
15948
+ }
15949
+ },
15950
+ "policies": {},
15951
+ "checkConstraints": {},
15952
+ "isRLSEnabled": false
15953
+ },
15954
+ "public.oauth_authorization_codes": {
15955
+ "name": "oauth_authorization_codes",
15956
+ "schema": "",
15957
+ "columns": {
15958
+ "id": {
15959
+ "name": "id",
15960
+ "type": "text",
15961
+ "primaryKey": true,
15962
+ "notNull": true
15963
+ },
15964
+ "app_id": {
15965
+ "name": "app_id",
15966
+ "type": "text",
15967
+ "primaryKey": false,
15968
+ "notNull": true
15969
+ },
15970
+ "user_id": {
15971
+ "name": "user_id",
15972
+ "type": "text",
15973
+ "primaryKey": false,
15974
+ "notNull": true
15975
+ },
15976
+ "code_hash": {
15977
+ "name": "code_hash",
15978
+ "type": "text",
15979
+ "primaryKey": false,
15980
+ "notNull": true
15981
+ },
15982
+ "redirect_uri": {
15983
+ "name": "redirect_uri",
15984
+ "type": "text",
15985
+ "primaryKey": false,
15986
+ "notNull": true
15987
+ },
15988
+ "scopes": {
15989
+ "name": "scopes",
15990
+ "type": "text",
15991
+ "primaryKey": false,
15992
+ "notNull": true
15993
+ },
15994
+ "expires_at": {
15995
+ "name": "expires_at",
15996
+ "type": "timestamp",
15997
+ "primaryKey": false,
15998
+ "notNull": true
15999
+ },
16000
+ "created_at": {
16001
+ "name": "created_at",
16002
+ "type": "timestamp",
16003
+ "primaryKey": false,
16004
+ "notNull": true,
16005
+ "default": "now()"
16006
+ },
16007
+ "used_at": {
16008
+ "name": "used_at",
16009
+ "type": "timestamp",
16010
+ "primaryKey": false,
16011
+ "notNull": false
16012
+ }
16013
+ },
16014
+ "indexes": {
16015
+ "oauth_codes_app_idx": {
16016
+ "name": "oauth_codes_app_idx",
16017
+ "columns": [
16018
+ {
16019
+ "expression": "app_id",
16020
+ "isExpression": false,
16021
+ "asc": true,
16022
+ "nulls": "last"
16023
+ }
16024
+ ],
16025
+ "isUnique": false,
16026
+ "concurrently": false,
16027
+ "method": "btree",
16028
+ "with": {}
16029
+ }
16030
+ },
16031
+ "foreignKeys": {
16032
+ "oauth_authorization_codes_app_id_oauth_apps_id_fk": {
16033
+ "name": "oauth_authorization_codes_app_id_oauth_apps_id_fk",
16034
+ "tableFrom": "oauth_authorization_codes",
16035
+ "tableTo": "oauth_apps",
16036
+ "columnsFrom": [
16037
+ "app_id"
16038
+ ],
16039
+ "columnsTo": [
16040
+ "id"
16041
+ ],
16042
+ "onDelete": "cascade",
16043
+ "onUpdate": "no action"
16044
+ },
16045
+ "oauth_authorization_codes_user_id_users_id_fk": {
16046
+ "name": "oauth_authorization_codes_user_id_users_id_fk",
16047
+ "tableFrom": "oauth_authorization_codes",
16048
+ "tableTo": "users",
16049
+ "columnsFrom": [
16050
+ "user_id"
16051
+ ],
16052
+ "columnsTo": [
16053
+ "id"
16054
+ ],
16055
+ "onDelete": "cascade",
16056
+ "onUpdate": "no action"
16057
+ }
16058
+ },
16059
+ "compositePrimaryKeys": {},
16060
+ "uniqueConstraints": {
16061
+ "oauth_authorization_codes_code_hash_unique": {
16062
+ "name": "oauth_authorization_codes_code_hash_unique",
16063
+ "nullsNotDistinct": false,
16064
+ "columns": [
16065
+ "code_hash"
16066
+ ]
16067
+ }
16068
+ },
16069
+ "policies": {},
16070
+ "checkConstraints": {},
16071
+ "isRLSEnabled": false
16072
+ },
16073
+ "public.org_invites": {
16074
+ "name": "org_invites",
16075
+ "schema": "",
16076
+ "columns": {
16077
+ "id": {
16078
+ "name": "id",
16079
+ "type": "text",
16080
+ "primaryKey": true,
16081
+ "notNull": true
16082
+ },
16083
+ "organization_id": {
16084
+ "name": "organization_id",
16085
+ "type": "text",
16086
+ "primaryKey": false,
16087
+ "notNull": true
16088
+ },
16089
+ "invited_by_id": {
16090
+ "name": "invited_by_id",
16091
+ "type": "text",
16092
+ "primaryKey": false,
16093
+ "notNull": true
16094
+ },
16095
+ "email": {
16096
+ "name": "email",
16097
+ "type": "text",
16098
+ "primaryKey": false,
16099
+ "notNull": false
16100
+ },
16101
+ "user_id": {
16102
+ "name": "user_id",
16103
+ "type": "text",
16104
+ "primaryKey": false,
16105
+ "notNull": false
16106
+ },
16107
+ "role": {
16108
+ "name": "role",
16109
+ "type": "text",
16110
+ "primaryKey": false,
16111
+ "notNull": true,
16112
+ "default": "'member'"
16113
+ },
16114
+ "token_hash": {
16115
+ "name": "token_hash",
16116
+ "type": "text",
16117
+ "primaryKey": false,
16118
+ "notNull": true
16119
+ },
16120
+ "status": {
16121
+ "name": "status",
16122
+ "type": "text",
16123
+ "primaryKey": false,
16124
+ "notNull": true,
16125
+ "default": "'pending'"
16126
+ },
16127
+ "expires_at": {
16128
+ "name": "expires_at",
16129
+ "type": "timestamp",
16130
+ "primaryKey": false,
16131
+ "notNull": false
16132
+ },
16133
+ "accepted_at": {
16134
+ "name": "accepted_at",
16135
+ "type": "timestamp",
16136
+ "primaryKey": false,
16137
+ "notNull": false
16138
+ },
16139
+ "created_at": {
16140
+ "name": "created_at",
16141
+ "type": "timestamp",
16142
+ "primaryKey": false,
16143
+ "notNull": true,
16144
+ "default": "now()"
16145
+ }
16146
+ },
16147
+ "indexes": {
16148
+ "org_invites_org_idx": {
16149
+ "name": "org_invites_org_idx",
16150
+ "columns": [
16151
+ {
16152
+ "expression": "organization_id",
16153
+ "isExpression": false,
16154
+ "asc": true,
16155
+ "nulls": "last"
16156
+ }
16157
+ ],
16158
+ "isUnique": false,
16159
+ "concurrently": false,
16160
+ "method": "btree",
16161
+ "with": {}
16162
+ },
16163
+ "org_invites_status_idx": {
16164
+ "name": "org_invites_status_idx",
16165
+ "columns": [
16166
+ {
16167
+ "expression": "status",
16168
+ "isExpression": false,
16169
+ "asc": true,
16170
+ "nulls": "last"
16171
+ }
16172
+ ],
16173
+ "isUnique": false,
16174
+ "concurrently": false,
16175
+ "method": "btree",
16176
+ "with": {}
16177
+ }
16178
+ },
16179
+ "foreignKeys": {
16180
+ "org_invites_organization_id_organizations_id_fk": {
16181
+ "name": "org_invites_organization_id_organizations_id_fk",
16182
+ "tableFrom": "org_invites",
16183
+ "tableTo": "organizations",
16184
+ "columnsFrom": [
16185
+ "organization_id"
16186
+ ],
16187
+ "columnsTo": [
16188
+ "id"
16189
+ ],
16190
+ "onDelete": "cascade",
16191
+ "onUpdate": "no action"
16192
+ },
16193
+ "org_invites_invited_by_id_users_id_fk": {
16194
+ "name": "org_invites_invited_by_id_users_id_fk",
16195
+ "tableFrom": "org_invites",
16196
+ "tableTo": "users",
16197
+ "columnsFrom": [
16198
+ "invited_by_id"
16199
+ ],
16200
+ "columnsTo": [
16201
+ "id"
16202
+ ],
16203
+ "onDelete": "cascade",
16204
+ "onUpdate": "no action"
16205
+ },
16206
+ "org_invites_user_id_users_id_fk": {
16207
+ "name": "org_invites_user_id_users_id_fk",
16208
+ "tableFrom": "org_invites",
16209
+ "tableTo": "users",
16210
+ "columnsFrom": [
16211
+ "user_id"
16212
+ ],
16213
+ "columnsTo": [
16214
+ "id"
16215
+ ],
16216
+ "onDelete": "cascade",
16217
+ "onUpdate": "no action"
16218
+ }
16219
+ },
16220
+ "compositePrimaryKeys": {},
16221
+ "uniqueConstraints": {
16222
+ "org_invites_token_hash_unique": {
16223
+ "name": "org_invites_token_hash_unique",
16224
+ "nullsNotDistinct": false,
16225
+ "columns": [
16226
+ "token_hash"
16227
+ ]
16228
+ }
16229
+ },
16230
+ "policies": {},
16231
+ "checkConstraints": {},
16232
+ "isRLSEnabled": false
16233
+ }
16234
+ },
16235
+ "enums": {},
16236
+ "schemas": {},
16237
+ "sequences": {},
16238
+ "roles": {},
16239
+ "policies": {},
16240
+ "views": {},
16241
+ "_meta": {
16242
+ "columns": {},
16243
+ "schemas": {},
16244
+ "tables": {}
16245
+ }
16246
+}
0
16247