History

feat(destinations): add createdAt timestamp and display creation date

Mauricio Siu committed 1 year ago

Commit 29eb4901 parent 61669637 files · +5209 −44Browse files

Unified · Split

7 files
  1. apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx +60 −39
  2. apps/dokploy/components/dashboard/settings/destination/show-destinations.tsx +11 −3
  3. apps/dokploy/drizzle/0070_useful_serpent_society.sql +1 −0
  4. apps/dokploy/drizzle/meta/0070_snapshot.json +5126 −0
  5. apps/dokploy/drizzle/meta/_journal.json +7 −0
  6. apps/dokploy/server/api/routers/destination.ts +2 −1
  7. packages/server/src/db/schema/destination.ts +2 −1
apps/dokploy/components/dashboard/settings/destination/handle-destinations.tsx+60−39
@@ -39,12 +39,12 @@ import { S3_PROVIDERS } from "./constants"; · 38 unmodified lines
39 39
40const addDestination = z.object({40const addDestination = z.object({
41 name: z.string().min(1, "Name is required"),41 name: z.string().min(1, "Name is required"),
42 provider: z.string().optional(),42 provider: z.string().min(1, "Provider is required"),
43 accessKeyId: z.string(),43 accessKeyId: z.string().min(1, "Access Key Id is required"),
44 secretAccessKey: z.string(),44 secretAccessKey: z.string().min(1, "Secret Access Key is required"),
45 bucket: z.string(),45 bucket: z.string().min(1, "Bucket is required"),
46 region: z.string(),46 region: z.string(),
47 endpoint: z.string(),47 endpoint: z.string().min(1, "Endpoint is required"),
48 serverId: z.string().optional(),48 serverId: z.string().optional(),
49});49});
50 50
@@ -129,6 +129,58 @@ export const HandleDestinations = ({ destinationId }: Props) => { · 78 unmodified lines
129 );129 );
130 });130 });
131 };131 };
132
133 const handleTestConnection = async (serverId?: string) => {
134 const result = await form.trigger([
135 "provider",
136 "accessKeyId",
137 "secretAccessKey",
138 "bucket",
139 "endpoint",
140 ]);
141
142 if (!result) {
143 const errors = form.formState.errors;
144 const errorFields = Object.entries(errors)
145 .map(([field, error]) => `${field}: ${error?.message}`)
146 .filter(Boolean)
147 .join("\n");
148
149 toast.error("Please fill all required fields", {
150 description: errorFields,
151 });
152 return;
153 }
154
155 const provider = form.getValues("provider");
156 const accessKey = form.getValues("accessKeyId");
157 const secretKey = form.getValues("secretAccessKey");
158 const bucket = form.getValues("bucket");
159 const endpoint = form.getValues("endpoint");
160 const region = form.getValues("region");
161
162 const connectionString = `:s3,provider=${provider},access_key_id=${accessKey},secret_access_key=${secretKey},endpoint=${endpoint}${region ? `,region=${region}` : ""}:${bucket}`;
163
164 await testConnection({
165 provider,
166 accessKey,
167 bucket,
168 endpoint,
169 name: "Test",
170 region,
171 secretAccessKey: secretKey,
172 serverId,
173 })
174 .then(() => {
175 toast.success("Connection Success");
176 })
177 .catch((e) => {
178 toast.error("Error connecting to provider", {
179 description: `${e.message}\n\nTry manually: rclone ls ${connectionString}`,
180 });
181 });
182 };
183
132 return (184 return (
133 <Dialog open={open} onOpenChange={setOpen}>185 <Dialog open={open} onOpenChange={setOpen}>
134 <DialogTrigger className="" asChild>186 <DialogTrigger className="" asChild>
@@ -349,26 +401,9 @@ export const HandleDestinations = ({ destinationId }: Props) => { · 214 unmodified lines
349 <Button401 <Button
350 type="button"402 type="button"
351 variant={"secondary"}403 variant={"secondary"}
352 isLoading={isLoading}404 isLoading={isLoadingConnection}
353 onClick={async () => {405 onClick={async () => {
354 await testConnection({406 await handleTestConnection(form.getValues("serverId"));
355 provider: form.getValues("provider") || "",
356 accessKey: form.getValues("accessKeyId"),
357 bucket: form.getValues("bucket"),
358 endpoint: form.getValues("endpoint"),
359 name: "Test",
360 region: form.getValues("region"),
361 secretAccessKey: form.getValues("secretAccessKey"),
362 serverId: form.getValues("serverId"),
363 })
364 .then(async () => {
365 toast.success("Connection Success");
366 })
367 .catch((e) => {
368 toast.error("Error connecting the provider", {
369 description: e.message,
370 });
371 });
372 }}407 }}
373 >408 >
374 Test Connection409 Test Connection
@@ -380,21 +415,7 @@ export const HandleDestinations = ({ destinationId }: Props) => { · 5 unmodified lines
380 type="button"415 type="button"
381 variant="secondary"416 variant="secondary"
382 onClick={async () => {417 onClick={async () => {
383 await testConnection({418 await handleTestConnection();
384 provider: form.getValues("provider") || "",
385 accessKey: form.getValues("accessKeyId"),
386 bucket: form.getValues("bucket"),
387 endpoint: form.getValues("endpoint"),
388 name: "Test",
389 region: form.getValues("region"),
390 secretAccessKey: form.getValues("secretAccessKey"),
391 })
392 .then(async () => {
393 toast.success("Connection Success");
394 })
395 .catch(() => {
396 toast.error("Error connecting the provider");
397 });
398 }}419 }}
399 >420 >
400 Test connection421 Test connection
apps/dokploy/components/dashboard/settings/destination/show-destinations.tsx+11−3
@@ -56,9 +56,17 @@ export const ShowDestinations = () => { · 55 unmodified lines
56 className="flex items-center justify-between bg-sidebar p-1 w-full rounded-lg"56 className="flex items-center justify-between bg-sidebar p-1 w-full rounded-lg"
57 >57 >
58 <div className="flex items-center justify-between p-3.5 rounded-lg bg-background border w-full">58 <div className="flex items-center justify-between p-3.5 rounded-lg bg-background border w-full">
59 <span className="text-sm">59 <div className="flex flex-col gap-1">
60 {index + 1}. {destination.name}60 <span className="text-sm">
61 </span>61 {index + 1}. {destination.name}
62 </span>
63 <span className="text-xs text-muted-foreground">
64 Created at:{" "}
65 {new Date(
66 destination.createdAt,
67 ).toLocaleDateString()}
68 </span>
69 </div>
62 <div className="flex flex-row gap-1">70 <div className="flex flex-row gap-1">
63 <HandleDestinations71 <HandleDestinations
64 destinationId={destination.destinationId}72 destinationId={destination.destinationId}
apps/dokploy/drizzle/0070_useful_serpent_society.sql+1−0
@@ -0,0 +1 @@
1ALTER TABLE "destination" ADD COLUMN "createdAt" timestamp DEFAULT now() NOT NULL;
apps/dokploy/drizzle/meta/0070_snapshot.json+5126−0
@@ -0,0 +1,5126 @@
1{
2 "id": "53fc370e-731b-4bfe-874f-9ce725650082",
3 "prevId": "6247f9c0-261c-497e-97f4-c02a80687211",
4 "version": "7",
5 "dialect": "postgresql",
6 "tables": {
7 "public.application": {
8 "name": "application",
9 "schema": "",
10 "columns": {
11 "applicationId": {
12 "name": "applicationId",
13 "type": "text",
14 "primaryKey": true,
15 "notNull": true
16 },
17 "name": {
18 "name": "name",
19 "type": "text",
20 "primaryKey": false,
21 "notNull": true
22 },
23 "appName": {
24 "name": "appName",
25 "type": "text",
26 "primaryKey": false,
27 "notNull": true
28 },
29 "description": {
30 "name": "description",
31 "type": "text",
32 "primaryKey": false,
33 "notNull": false
34 },
35 "env": {
36 "name": "env",
37 "type": "text",
38 "primaryKey": false,
39 "notNull": false
40 },
41 "previewEnv": {
42 "name": "previewEnv",
43 "type": "text",
44 "primaryKey": false,
45 "notNull": false
46 },
47 "previewBuildArgs": {
48 "name": "previewBuildArgs",
49 "type": "text",
50 "primaryKey": false,
51 "notNull": false
52 },
53 "previewWildcard": {
54 "name": "previewWildcard",
55 "type": "text",
56 "primaryKey": false,
57 "notNull": false
58 },
59 "previewPort": {
60 "name": "previewPort",
61 "type": "integer",
62 "primaryKey": false,
63 "notNull": false,
64 "default": 3000
65 },
66 "previewHttps": {
67 "name": "previewHttps",
68 "type": "boolean",
69 "primaryKey": false,
70 "notNull": true,
71 "default": false
72 },
73 "previewPath": {
74 "name": "previewPath",
75 "type": "text",
76 "primaryKey": false,
77 "notNull": false,
78 "default": "'/'"
79 },
80 "certificateType": {
81 "name": "certificateType",
82 "type": "certificateType",
83 "typeSchema": "public",
84 "primaryKey": false,
85 "notNull": true,
86 "default": "'none'"
87 },
88 "previewLimit": {
89 "name": "previewLimit",
90 "type": "integer",
91 "primaryKey": false,
92 "notNull": false,
93 "default": 3
94 },
95 "isPreviewDeploymentsActive": {
96 "name": "isPreviewDeploymentsActive",
97 "type": "boolean",
98 "primaryKey": false,
99 "notNull": false,
100 "default": false
101 },
102 "buildArgs": {
103 "name": "buildArgs",
104 "type": "text",
105 "primaryKey": false,
106 "notNull": false
107 },
108 "memoryReservation": {
109 "name": "memoryReservation",
110 "type": "text",
111 "primaryKey": false,
112 "notNull": false
113 },
114 "memoryLimit": {
115 "name": "memoryLimit",
116 "type": "text",
117 "primaryKey": false,
118 "notNull": false
119 },
120 "cpuReservation": {
121 "name": "cpuReservation",
122 "type": "text",
123 "primaryKey": false,
124 "notNull": false
125 },
126 "cpuLimit": {
127 "name": "cpuLimit",
128 "type": "text",
129 "primaryKey": false,
130 "notNull": false
131 },
132 "title": {
133 "name": "title",
134 "type": "text",
135 "primaryKey": false,
136 "notNull": false
137 },
138 "enabled": {
139 "name": "enabled",
140 "type": "boolean",
141 "primaryKey": false,
142 "notNull": false
143 },
144 "subtitle": {
145 "name": "subtitle",
146 "type": "text",
147 "primaryKey": false,
148 "notNull": false
149 },
150 "command": {
151 "name": "command",
152 "type": "text",
153 "primaryKey": false,
154 "notNull": false
155 },
156 "refreshToken": {
157 "name": "refreshToken",
158 "type": "text",
159 "primaryKey": false,
160 "notNull": false
161 },
162 "sourceType": {
163 "name": "sourceType",
164 "type": "sourceType",
165 "typeSchema": "public",
166 "primaryKey": false,
167 "notNull": true,
168 "default": "'github'"
169 },
170 "repository": {
171 "name": "repository",
172 "type": "text",
173 "primaryKey": false,
174 "notNull": false
175 },
176 "owner": {
177 "name": "owner",
178 "type": "text",
179 "primaryKey": false,
180 "notNull": false
181 },
182 "branch": {
183 "name": "branch",
184 "type": "text",
185 "primaryKey": false,
186 "notNull": false
187 },
188 "buildPath": {
189 "name": "buildPath",
190 "type": "text",
191 "primaryKey": false,
192 "notNull": false,
193 "default": "'/'"
194 },
195 "autoDeploy": {
196 "name": "autoDeploy",
197 "type": "boolean",
198 "primaryKey": false,
199 "notNull": false
200 },
201 "gitlabProjectId": {
202 "name": "gitlabProjectId",
203 "type": "integer",
204 "primaryKey": false,
205 "notNull": false
206 },
207 "gitlabRepository": {
208 "name": "gitlabRepository",
209 "type": "text",
210 "primaryKey": false,
211 "notNull": false
212 },
213 "gitlabOwner": {
214 "name": "gitlabOwner",
215 "type": "text",
216 "primaryKey": false,
217 "notNull": false
218 },
219 "gitlabBranch": {
220 "name": "gitlabBranch",
221 "type": "text",
222 "primaryKey": false,
223 "notNull": false
224 },
225 "gitlabBuildPath": {
226 "name": "gitlabBuildPath",
227 "type": "text",
228 "primaryKey": false,
229 "notNull": false,
230 "default": "'/'"
231 },
232 "gitlabPathNamespace": {
233 "name": "gitlabPathNamespace",
234 "type": "text",
235 "primaryKey": false,
236 "notNull": false
237 },
238 "bitbucketRepository": {
239 "name": "bitbucketRepository",
240 "type": "text",
241 "primaryKey": false,
242 "notNull": false
243 },
244 "bitbucketOwner": {
245 "name": "bitbucketOwner",
246 "type": "text",
247 "primaryKey": false,
248 "notNull": false
249 },
250 "bitbucketBranch": {
251 "name": "bitbucketBranch",
252 "type": "text",
253 "primaryKey": false,
254 "notNull": false
255 },
256 "bitbucketBuildPath": {
257 "name": "bitbucketBuildPath",
258 "type": "text",
259 "primaryKey": false,
260 "notNull": false,
261 "default": "'/'"
262 },
263 "username": {
264 "name": "username",
265 "type": "text",
266 "primaryKey": false,
267 "notNull": false
268 },
269 "password": {
270 "name": "password",
271 "type": "text",
272 "primaryKey": false,
273 "notNull": false
274 },
275 "dockerImage": {
276 "name": "dockerImage",
277 "type": "text",
278 "primaryKey": false,
279 "notNull": false
280 },
281 "registryUrl": {
282 "name": "registryUrl",
283 "type": "text",
284 "primaryKey": false,
285 "notNull": false
286 },
287 "customGitUrl": {
288 "name": "customGitUrl",
289 "type": "text",
290 "primaryKey": false,
291 "notNull": false
292 },
293 "customGitBranch": {
294 "name": "customGitBranch",
295 "type": "text",
296 "primaryKey": false,
297 "notNull": false
298 },
299 "customGitBuildPath": {
300 "name": "customGitBuildPath",
301 "type": "text",
302 "primaryKey": false,
303 "notNull": false
304 },
305 "customGitSSHKeyId": {
306 "name": "customGitSSHKeyId",
307 "type": "text",
308 "primaryKey": false,
309 "notNull": false
310 },
311 "dockerfile": {
312 "name": "dockerfile",
313 "type": "text",
314 "primaryKey": false,
315 "notNull": false
316 },
317 "dockerContextPath": {
318 "name": "dockerContextPath",
319 "type": "text",
320 "primaryKey": false,
321 "notNull": false
322 },
323 "dockerBuildStage": {
324 "name": "dockerBuildStage",
325 "type": "text",
326 "primaryKey": false,
327 "notNull": false
328 },
329 "dropBuildPath": {
330 "name": "dropBuildPath",
331 "type": "text",
332 "primaryKey": false,
333 "notNull": false
334 },
335 "healthCheckSwarm": {
336 "name": "healthCheckSwarm",
337 "type": "json",
338 "primaryKey": false,
339 "notNull": false
340 },
341 "restartPolicySwarm": {
342 "name": "restartPolicySwarm",
343 "type": "json",
344 "primaryKey": false,
345 "notNull": false
346 },
347 "placementSwarm": {
348 "name": "placementSwarm",
349 "type": "json",
350 "primaryKey": false,
351 "notNull": false
352 },
353 "updateConfigSwarm": {
354 "name": "updateConfigSwarm",
355 "type": "json",
356 "primaryKey": false,
357 "notNull": false
358 },
359 "rollbackConfigSwarm": {
360 "name": "rollbackConfigSwarm",
361 "type": "json",
362 "primaryKey": false,
363 "notNull": false
364 },
365 "modeSwarm": {
366 "name": "modeSwarm",
367 "type": "json",
368 "primaryKey": false,
369 "notNull": false
370 },
371 "labelsSwarm": {
372 "name": "labelsSwarm",
373 "type": "json",
374 "primaryKey": false,
375 "notNull": false
376 },
377 "networkSwarm": {
378 "name": "networkSwarm",
379 "type": "json",
380 "primaryKey": false,
381 "notNull": false
382 },
383 "replicas": {
384 "name": "replicas",
385 "type": "integer",
386 "primaryKey": false,
387 "notNull": true,
388 "default": 1
389 },
390 "applicationStatus": {
391 "name": "applicationStatus",
392 "type": "applicationStatus",
393 "typeSchema": "public",
394 "primaryKey": false,
395 "notNull": true,
396 "default": "'idle'"
397 },
398 "buildType": {
399 "name": "buildType",
400 "type": "buildType",
401 "typeSchema": "public",
402 "primaryKey": false,
403 "notNull": true,
404 "default": "'nixpacks'"
405 },
406 "herokuVersion": {
407 "name": "herokuVersion",
408 "type": "text",
409 "primaryKey": false,
410 "notNull": false,
411 "default": "'24'"
412 },
413 "publishDirectory": {
414 "name": "publishDirectory",
415 "type": "text",
416 "primaryKey": false,
417 "notNull": false
418 },
419 "createdAt": {
420 "name": "createdAt",
421 "type": "text",
422 "primaryKey": false,
423 "notNull": true
424 },
425 "registryId": {
426 "name": "registryId",
427 "type": "text",
428 "primaryKey": false,
429 "notNull": false
430 },
431 "projectId": {
432 "name": "projectId",
433 "type": "text",
434 "primaryKey": false,
435 "notNull": true
436 },
437 "githubId": {
438 "name": "githubId",
439 "type": "text",
440 "primaryKey": false,
441 "notNull": false
442 },
443 "gitlabId": {
444 "name": "gitlabId",
445 "type": "text",
446 "primaryKey": false,
447 "notNull": false
448 },
449 "bitbucketId": {
450 "name": "bitbucketId",
451 "type": "text",
452 "primaryKey": false,
453 "notNull": false
454 },
455 "serverId": {
456 "name": "serverId",
457 "type": "text",
458 "primaryKey": false,
459 "notNull": false
460 }
461 },
462 "indexes": {},
463 "foreignKeys": {
464 "application_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
465 "name": "application_customGitSSHKeyId_ssh-key_sshKeyId_fk",
466 "tableFrom": "application",
467 "tableTo": "ssh-key",
468 "columnsFrom": [
469 "customGitSSHKeyId"
470 ],
471 "columnsTo": [
472 "sshKeyId"
473 ],
474 "onDelete": "set null",
475 "onUpdate": "no action"
476 },
477 "application_registryId_registry_registryId_fk": {
478 "name": "application_registryId_registry_registryId_fk",
479 "tableFrom": "application",
480 "tableTo": "registry",
481 "columnsFrom": [
482 "registryId"
483 ],
484 "columnsTo": [
485 "registryId"
486 ],
487 "onDelete": "set null",
488 "onUpdate": "no action"
489 },
490 "application_projectId_project_projectId_fk": {
491 "name": "application_projectId_project_projectId_fk",
492 "tableFrom": "application",
493 "tableTo": "project",
494 "columnsFrom": [
495 "projectId"
496 ],
497 "columnsTo": [
498 "projectId"
499 ],
500 "onDelete": "cascade",
501 "onUpdate": "no action"
502 },
503 "application_githubId_github_githubId_fk": {
504 "name": "application_githubId_github_githubId_fk",
505 "tableFrom": "application",
506 "tableTo": "github",
507 "columnsFrom": [
508 "githubId"
509 ],
510 "columnsTo": [
511 "githubId"
512 ],
513 "onDelete": "set null",
514 "onUpdate": "no action"
515 },
516 "application_gitlabId_gitlab_gitlabId_fk": {
517 "name": "application_gitlabId_gitlab_gitlabId_fk",
518 "tableFrom": "application",
519 "tableTo": "gitlab",
520 "columnsFrom": [
521 "gitlabId"
522 ],
523 "columnsTo": [
524 "gitlabId"
525 ],
526 "onDelete": "set null",
527 "onUpdate": "no action"
528 },
529 "application_bitbucketId_bitbucket_bitbucketId_fk": {
530 "name": "application_bitbucketId_bitbucket_bitbucketId_fk",
531 "tableFrom": "application",
532 "tableTo": "bitbucket",
533 "columnsFrom": [
534 "bitbucketId"
535 ],
536 "columnsTo": [
537 "bitbucketId"
538 ],
539 "onDelete": "set null",
540 "onUpdate": "no action"
541 },
542 "application_serverId_server_serverId_fk": {
543 "name": "application_serverId_server_serverId_fk",
544 "tableFrom": "application",
545 "tableTo": "server",
546 "columnsFrom": [
547 "serverId"
548 ],
549 "columnsTo": [
550 "serverId"
551 ],
552 "onDelete": "cascade",
553 "onUpdate": "no action"
554 }
555 },
556 "compositePrimaryKeys": {},
557 "uniqueConstraints": {
558 "application_appName_unique": {
559 "name": "application_appName_unique",
560 "nullsNotDistinct": false,
561 "columns": [
562 "appName"
563 ]
564 }
565 },
566 "policies": {},
567 "checkConstraints": {},
568 "isRLSEnabled": false
569 },
570 "public.postgres": {
571 "name": "postgres",
572 "schema": "",
573 "columns": {
574 "postgresId": {
575 "name": "postgresId",
576 "type": "text",
577 "primaryKey": true,
578 "notNull": true
579 },
580 "name": {
581 "name": "name",
582 "type": "text",
583 "primaryKey": false,
584 "notNull": true
585 },
586 "appName": {
587 "name": "appName",
588 "type": "text",
589 "primaryKey": false,
590 "notNull": true
591 },
592 "databaseName": {
593 "name": "databaseName",
594 "type": "text",
595 "primaryKey": false,
596 "notNull": true
597 },
598 "databaseUser": {
599 "name": "databaseUser",
600 "type": "text",
601 "primaryKey": false,
602 "notNull": true
603 },
604 "databasePassword": {
605 "name": "databasePassword",
606 "type": "text",
607 "primaryKey": false,
608 "notNull": true
609 },
610 "description": {
611 "name": "description",
612 "type": "text",
613 "primaryKey": false,
614 "notNull": false
615 },
616 "dockerImage": {
617 "name": "dockerImage",
618 "type": "text",
619 "primaryKey": false,
620 "notNull": true
621 },
622 "command": {
623 "name": "command",
624 "type": "text",
625 "primaryKey": false,
626 "notNull": false
627 },
628 "env": {
629 "name": "env",
630 "type": "text",
631 "primaryKey": false,
632 "notNull": false
633 },
634 "memoryReservation": {
635 "name": "memoryReservation",
636 "type": "text",
637 "primaryKey": false,
638 "notNull": false
639 },
640 "externalPort": {
641 "name": "externalPort",
642 "type": "integer",
643 "primaryKey": false,
644 "notNull": false
645 },
646 "memoryLimit": {
647 "name": "memoryLimit",
648 "type": "text",
649 "primaryKey": false,
650 "notNull": false
651 },
652 "cpuReservation": {
653 "name": "cpuReservation",
654 "type": "text",
655 "primaryKey": false,
656 "notNull": false
657 },
658 "cpuLimit": {
659 "name": "cpuLimit",
660 "type": "text",
661 "primaryKey": false,
662 "notNull": false
663 },
664 "applicationStatus": {
665 "name": "applicationStatus",
666 "type": "applicationStatus",
667 "typeSchema": "public",
668 "primaryKey": false,
669 "notNull": true,
670 "default": "'idle'"
671 },
672 "createdAt": {
673 "name": "createdAt",
674 "type": "text",
675 "primaryKey": false,
676 "notNull": true
677 },
678 "projectId": {
679 "name": "projectId",
680 "type": "text",
681 "primaryKey": false,
682 "notNull": true
683 },
684 "serverId": {
685 "name": "serverId",
686 "type": "text",
687 "primaryKey": false,
688 "notNull": false
689 }
690 },
691 "indexes": {},
692 "foreignKeys": {
693 "postgres_projectId_project_projectId_fk": {
694 "name": "postgres_projectId_project_projectId_fk",
695 "tableFrom": "postgres",
696 "tableTo": "project",
697 "columnsFrom": [
698 "projectId"
699 ],
700 "columnsTo": [
701 "projectId"
702 ],
703 "onDelete": "cascade",
704 "onUpdate": "no action"
705 },
706 "postgres_serverId_server_serverId_fk": {
707 "name": "postgres_serverId_server_serverId_fk",
708 "tableFrom": "postgres",
709 "tableTo": "server",
710 "columnsFrom": [
711 "serverId"
712 ],
713 "columnsTo": [
714 "serverId"
715 ],
716 "onDelete": "cascade",
717 "onUpdate": "no action"
718 }
719 },
720 "compositePrimaryKeys": {},
721 "uniqueConstraints": {
722 "postgres_appName_unique": {
723 "name": "postgres_appName_unique",
724 "nullsNotDistinct": false,
725 "columns": [
726 "appName"
727 ]
728 }
729 },
730 "policies": {},
731 "checkConstraints": {},
732 "isRLSEnabled": false
733 },
734 "public.user_temp": {
735 "name": "user_temp",
736 "schema": "",
737 "columns": {
738 "id": {
739 "name": "id",
740 "type": "text",
741 "primaryKey": true,
742 "notNull": true
743 },
744 "name": {
745 "name": "name",
746 "type": "text",
747 "primaryKey": false,
748 "notNull": true,
749 "default": "''"
750 },
751 "isRegistered": {
752 "name": "isRegistered",
753 "type": "boolean",
754 "primaryKey": false,
755 "notNull": true,
756 "default": false
757 },
758 "expirationDate": {
759 "name": "expirationDate",
760 "type": "text",
761 "primaryKey": false,
762 "notNull": true
763 },
764 "createdAt": {
765 "name": "createdAt",
766 "type": "text",
767 "primaryKey": false,
768 "notNull": true
769 },
770 "created_at": {
771 "name": "created_at",
772 "type": "timestamp",
773 "primaryKey": false,
774 "notNull": false,
775 "default": "now()"
776 },
777 "two_factor_enabled": {
778 "name": "two_factor_enabled",
779 "type": "boolean",
780 "primaryKey": false,
781 "notNull": false
782 },
783 "email": {
784 "name": "email",
785 "type": "text",
786 "primaryKey": false,
787 "notNull": true
788 },
789 "email_verified": {
790 "name": "email_verified",
791 "type": "boolean",
792 "primaryKey": false,
793 "notNull": true
794 },
795 "image": {
796 "name": "image",
797 "type": "text",
798 "primaryKey": false,
799 "notNull": false
800 },
801 "banned": {
802 "name": "banned",
803 "type": "boolean",
804 "primaryKey": false,
805 "notNull": false
806 },
807 "ban_reason": {
808 "name": "ban_reason",
809 "type": "text",
810 "primaryKey": false,
811 "notNull": false
812 },
813 "ban_expires": {
814 "name": "ban_expires",
815 "type": "timestamp",
816 "primaryKey": false,
817 "notNull": false
818 },
819 "updated_at": {
820 "name": "updated_at",
821 "type": "timestamp",
822 "primaryKey": false,
823 "notNull": true
824 },
825 "serverIp": {
826 "name": "serverIp",
827 "type": "text",
828 "primaryKey": false,
829 "notNull": false
830 },
831 "certificateType": {
832 "name": "certificateType",
833 "type": "certificateType",
834 "typeSchema": "public",
835 "primaryKey": false,
836 "notNull": true,
837 "default": "'none'"
838 },
839 "host": {
840 "name": "host",
841 "type": "text",
842 "primaryKey": false,
843 "notNull": false
844 },
845 "letsEncryptEmail": {
846 "name": "letsEncryptEmail",
847 "type": "text",
848 "primaryKey": false,
849 "notNull": false
850 },
851 "sshPrivateKey": {
852 "name": "sshPrivateKey",
853 "type": "text",
854 "primaryKey": false,
855 "notNull": false
856 },
857 "enableDockerCleanup": {
858 "name": "enableDockerCleanup",
859 "type": "boolean",
860 "primaryKey": false,
861 "notNull": true,
862 "default": false
863 },
864 "enableLogRotation": {
865 "name": "enableLogRotation",
866 "type": "boolean",
867 "primaryKey": false,
868 "notNull": true,
869 "default": false
870 },
871 "enablePaidFeatures": {
872 "name": "enablePaidFeatures",
873 "type": "boolean",
874 "primaryKey": false,
875 "notNull": true,
876 "default": false
877 },
878 "metricsConfig": {
879 "name": "metricsConfig",
880 "type": "jsonb",
881 "primaryKey": false,
882 "notNull": true,
883 "default": "'{\"server\":{\"type\":\"Dokploy\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"retentionDays\":2,\"cronJob\":\"\",\"urlCallback\":\"\",\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
884 },
885 "cleanupCacheApplications": {
886 "name": "cleanupCacheApplications",
887 "type": "boolean",
888 "primaryKey": false,
889 "notNull": true,
890 "default": false
891 },
892 "cleanupCacheOnPreviews": {
893 "name": "cleanupCacheOnPreviews",
894 "type": "boolean",
895 "primaryKey": false,
896 "notNull": true,
897 "default": false
898 },
899 "cleanupCacheOnCompose": {
900 "name": "cleanupCacheOnCompose",
901 "type": "boolean",
902 "primaryKey": false,
903 "notNull": true,
904 "default": false
905 },
906 "stripeCustomerId": {
907 "name": "stripeCustomerId",
908 "type": "text",
909 "primaryKey": false,
910 "notNull": false
911 },
912 "stripeSubscriptionId": {
913 "name": "stripeSubscriptionId",
914 "type": "text",
915 "primaryKey": false,
916 "notNull": false
917 },
918 "serversQuantity": {
919 "name": "serversQuantity",
920 "type": "integer",
921 "primaryKey": false,
922 "notNull": true,
923 "default": 0
924 }
925 },
926 "indexes": {},
927 "foreignKeys": {},
928 "compositePrimaryKeys": {},
929 "uniqueConstraints": {
930 "user_temp_email_unique": {
931 "name": "user_temp_email_unique",
932 "nullsNotDistinct": false,
933 "columns": [
934 "email"
935 ]
936 }
937 },
938 "policies": {},
939 "checkConstraints": {},
940 "isRLSEnabled": false
941 },
942 "public.project": {
943 "name": "project",
944 "schema": "",
945 "columns": {
946 "projectId": {
947 "name": "projectId",
948 "type": "text",
949 "primaryKey": true,
950 "notNull": true
951 },
952 "name": {
953 "name": "name",
954 "type": "text",
955 "primaryKey": false,
956 "notNull": true
957 },
958 "description": {
959 "name": "description",
960 "type": "text",
961 "primaryKey": false,
962 "notNull": false
963 },
964 "createdAt": {
965 "name": "createdAt",
966 "type": "text",
967 "primaryKey": false,
968 "notNull": true
969 },
970 "organizationId": {
971 "name": "organizationId",
972 "type": "text",
973 "primaryKey": false,
974 "notNull": true
975 },
976 "env": {
977 "name": "env",
978 "type": "text",
979 "primaryKey": false,
980 "notNull": true,
981 "default": "''"
982 }
983 },
984 "indexes": {},
985 "foreignKeys": {
986 "project_organizationId_organization_id_fk": {
987 "name": "project_organizationId_organization_id_fk",
988 "tableFrom": "project",
989 "tableTo": "organization",
990 "columnsFrom": [
991 "organizationId"
992 ],
993 "columnsTo": [
994 "id"
995 ],
996 "onDelete": "cascade",
997 "onUpdate": "no action"
998 }
999 },
1000 "compositePrimaryKeys": {},
1001 "uniqueConstraints": {},
1002 "policies": {},
1003 "checkConstraints": {},
1004 "isRLSEnabled": false
1005 },
1006 "public.domain": {
1007 "name": "domain",
1008 "schema": "",
1009 "columns": {
1010 "domainId": {
1011 "name": "domainId",
1012 "type": "text",
1013 "primaryKey": true,
1014 "notNull": true
1015 },
1016 "host": {
1017 "name": "host",
1018 "type": "text",
1019 "primaryKey": false,
1020 "notNull": true
1021 },
1022 "https": {
1023 "name": "https",
1024 "type": "boolean",
1025 "primaryKey": false,
1026 "notNull": true,
1027 "default": false
1028 },
1029 "port": {
1030 "name": "port",
1031 "type": "integer",
1032 "primaryKey": false,
1033 "notNull": false,
1034 "default": 3000
1035 },
1036 "path": {
1037 "name": "path",
1038 "type": "text",
1039 "primaryKey": false,
1040 "notNull": false,
1041 "default": "'/'"
1042 },
1043 "serviceName": {
1044 "name": "serviceName",
1045 "type": "text",
1046 "primaryKey": false,
1047 "notNull": false
1048 },
1049 "domainType": {
1050 "name": "domainType",
1051 "type": "domainType",
1052 "typeSchema": "public",
1053 "primaryKey": false,
1054 "notNull": false,
1055 "default": "'application'"
1056 },
1057 "uniqueConfigKey": {
1058 "name": "uniqueConfigKey",
1059 "type": "serial",
1060 "primaryKey": false,
1061 "notNull": true
1062 },
1063 "createdAt": {
1064 "name": "createdAt",
1065 "type": "text",
1066 "primaryKey": false,
1067 "notNull": true
1068 },
1069 "composeId": {
1070 "name": "composeId",
1071 "type": "text",
1072 "primaryKey": false,
1073 "notNull": false
1074 },
1075 "applicationId": {
1076 "name": "applicationId",
1077 "type": "text",
1078 "primaryKey": false,
1079 "notNull": false
1080 },
1081 "previewDeploymentId": {
1082 "name": "previewDeploymentId",
1083 "type": "text",
1084 "primaryKey": false,
1085 "notNull": false
1086 },
1087 "certificateType": {
1088 "name": "certificateType",
1089 "type": "certificateType",
1090 "typeSchema": "public",
1091 "primaryKey": false,
1092 "notNull": true,
1093 "default": "'none'"
1094 }
1095 },
1096 "indexes": {},
1097 "foreignKeys": {
1098 "domain_composeId_compose_composeId_fk": {
1099 "name": "domain_composeId_compose_composeId_fk",
1100 "tableFrom": "domain",
1101 "tableTo": "compose",
1102 "columnsFrom": [
1103 "composeId"
1104 ],
1105 "columnsTo": [
1106 "composeId"
1107 ],
1108 "onDelete": "cascade",
1109 "onUpdate": "no action"
1110 },
1111 "domain_applicationId_application_applicationId_fk": {
1112 "name": "domain_applicationId_application_applicationId_fk",
1113 "tableFrom": "domain",
1114 "tableTo": "application",
1115 "columnsFrom": [
1116 "applicationId"
1117 ],
1118 "columnsTo": [
1119 "applicationId"
1120 ],
1121 "onDelete": "cascade",
1122 "onUpdate": "no action"
1123 },
1124 "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
1125 "name": "domain_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
1126 "tableFrom": "domain",
1127 "tableTo": "preview_deployments",
1128 "columnsFrom": [
1129 "previewDeploymentId"
1130 ],
1131 "columnsTo": [
1132 "previewDeploymentId"
1133 ],
1134 "onDelete": "cascade",
1135 "onUpdate": "no action"
1136 }
1137 },
1138 "compositePrimaryKeys": {},
1139 "uniqueConstraints": {},
1140 "policies": {},
1141 "checkConstraints": {},
1142 "isRLSEnabled": false
1143 },
1144 "public.mariadb": {
1145 "name": "mariadb",
1146 "schema": "",
1147 "columns": {
1148 "mariadbId": {
1149 "name": "mariadbId",
1150 "type": "text",
1151 "primaryKey": true,
1152 "notNull": true
1153 },
1154 "name": {
1155 "name": "name",
1156 "type": "text",
1157 "primaryKey": false,
1158 "notNull": true
1159 },
1160 "appName": {
1161 "name": "appName",
1162 "type": "text",
1163 "primaryKey": false,
1164 "notNull": true
1165 },
1166 "description": {
1167 "name": "description",
1168 "type": "text",
1169 "primaryKey": false,
1170 "notNull": false
1171 },
1172 "databaseName": {
1173 "name": "databaseName",
1174 "type": "text",
1175 "primaryKey": false,
1176 "notNull": true
1177 },
1178 "databaseUser": {
1179 "name": "databaseUser",
1180 "type": "text",
1181 "primaryKey": false,
1182 "notNull": true
1183 },
1184 "databasePassword": {
1185 "name": "databasePassword",
1186 "type": "text",
1187 "primaryKey": false,
1188 "notNull": true
1189 },
1190 "rootPassword": {
1191 "name": "rootPassword",
1192 "type": "text",
1193 "primaryKey": false,
1194 "notNull": true
1195 },
1196 "dockerImage": {
1197 "name": "dockerImage",
1198 "type": "text",
1199 "primaryKey": false,
1200 "notNull": true
1201 },
1202 "command": {
1203 "name": "command",
1204 "type": "text",
1205 "primaryKey": false,
1206 "notNull": false
1207 },
1208 "env": {
1209 "name": "env",
1210 "type": "text",
1211 "primaryKey": false,
1212 "notNull": false
1213 },
1214 "memoryReservation": {
1215 "name": "memoryReservation",
1216 "type": "text",
1217 "primaryKey": false,
1218 "notNull": false
1219 },
1220 "memoryLimit": {
1221 "name": "memoryLimit",
1222 "type": "text",
1223 "primaryKey": false,
1224 "notNull": false
1225 },
1226 "cpuReservation": {
1227 "name": "cpuReservation",
1228 "type": "text",
1229 "primaryKey": false,
1230 "notNull": false
1231 },
1232 "cpuLimit": {
1233 "name": "cpuLimit",
1234 "type": "text",
1235 "primaryKey": false,
1236 "notNull": false
1237 },
1238 "externalPort": {
1239 "name": "externalPort",
1240 "type": "integer",
1241 "primaryKey": false,
1242 "notNull": false
1243 },
1244 "applicationStatus": {
1245 "name": "applicationStatus",
1246 "type": "applicationStatus",
1247 "typeSchema": "public",
1248 "primaryKey": false,
1249 "notNull": true,
1250 "default": "'idle'"
1251 },
1252 "createdAt": {
1253 "name": "createdAt",
1254 "type": "text",
1255 "primaryKey": false,
1256 "notNull": true
1257 },
1258 "projectId": {
1259 "name": "projectId",
1260 "type": "text",
1261 "primaryKey": false,
1262 "notNull": true
1263 },
1264 "serverId": {
1265 "name": "serverId",
1266 "type": "text",
1267 "primaryKey": false,
1268 "notNull": false
1269 }
1270 },
1271 "indexes": {},
1272 "foreignKeys": {
1273 "mariadb_projectId_project_projectId_fk": {
1274 "name": "mariadb_projectId_project_projectId_fk",
1275 "tableFrom": "mariadb",
1276 "tableTo": "project",
1277 "columnsFrom": [
1278 "projectId"
1279 ],
1280 "columnsTo": [
1281 "projectId"
1282 ],
1283 "onDelete": "cascade",
1284 "onUpdate": "no action"
1285 },
1286 "mariadb_serverId_server_serverId_fk": {
1287 "name": "mariadb_serverId_server_serverId_fk",
1288 "tableFrom": "mariadb",
1289 "tableTo": "server",
1290 "columnsFrom": [
1291 "serverId"
1292 ],
1293 "columnsTo": [
1294 "serverId"
1295 ],
1296 "onDelete": "cascade",
1297 "onUpdate": "no action"
1298 }
1299 },
1300 "compositePrimaryKeys": {},
1301 "uniqueConstraints": {
1302 "mariadb_appName_unique": {
1303 "name": "mariadb_appName_unique",
1304 "nullsNotDistinct": false,
1305 "columns": [
1306 "appName"
1307 ]
1308 }
1309 },
1310 "policies": {},
1311 "checkConstraints": {},
1312 "isRLSEnabled": false
1313 },
1314 "public.mongo": {
1315 "name": "mongo",
1316 "schema": "",
1317 "columns": {
1318 "mongoId": {
1319 "name": "mongoId",
1320 "type": "text",
1321 "primaryKey": true,
1322 "notNull": true
1323 },
1324 "name": {
1325 "name": "name",
1326 "type": "text",
1327 "primaryKey": false,
1328 "notNull": true
1329 },
1330 "appName": {
1331 "name": "appName",
1332 "type": "text",
1333 "primaryKey": false,
1334 "notNull": true
1335 },
1336 "description": {
1337 "name": "description",
1338 "type": "text",
1339 "primaryKey": false,
1340 "notNull": false
1341 },
1342 "databaseUser": {
1343 "name": "databaseUser",
1344 "type": "text",
1345 "primaryKey": false,
1346 "notNull": true
1347 },
1348 "databasePassword": {
1349 "name": "databasePassword",
1350 "type": "text",
1351 "primaryKey": false,
1352 "notNull": true
1353 },
1354 "dockerImage": {
1355 "name": "dockerImage",
1356 "type": "text",
1357 "primaryKey": false,
1358 "notNull": true
1359 },
1360 "command": {
1361 "name": "command",
1362 "type": "text",
1363 "primaryKey": false,
1364 "notNull": false
1365 },
1366 "env": {
1367 "name": "env",
1368 "type": "text",
1369 "primaryKey": false,
1370 "notNull": false
1371 },
1372 "memoryReservation": {
1373 "name": "memoryReservation",
1374 "type": "text",
1375 "primaryKey": false,
1376 "notNull": false
1377 },
1378 "memoryLimit": {
1379 "name": "memoryLimit",
1380 "type": "text",
1381 "primaryKey": false,
1382 "notNull": false
1383 },
1384 "cpuReservation": {
1385 "name": "cpuReservation",
1386 "type": "text",
1387 "primaryKey": false,
1388 "notNull": false
1389 },
1390 "cpuLimit": {
1391 "name": "cpuLimit",
1392 "type": "text",
1393 "primaryKey": false,
1394 "notNull": false
1395 },
1396 "externalPort": {
1397 "name": "externalPort",
1398 "type": "integer",
1399 "primaryKey": false,
1400 "notNull": false
1401 },
1402 "applicationStatus": {
1403 "name": "applicationStatus",
1404 "type": "applicationStatus",
1405 "typeSchema": "public",
1406 "primaryKey": false,
1407 "notNull": true,
1408 "default": "'idle'"
1409 },
1410 "createdAt": {
1411 "name": "createdAt",
1412 "type": "text",
1413 "primaryKey": false,
1414 "notNull": true
1415 },
1416 "projectId": {
1417 "name": "projectId",
1418 "type": "text",
1419 "primaryKey": false,
1420 "notNull": true
1421 },
1422 "serverId": {
1423 "name": "serverId",
1424 "type": "text",
1425 "primaryKey": false,
1426 "notNull": false
1427 },
1428 "replicaSets": {
1429 "name": "replicaSets",
1430 "type": "boolean",
1431 "primaryKey": false,
1432 "notNull": false,
1433 "default": false
1434 }
1435 },
1436 "indexes": {},
1437 "foreignKeys": {
1438 "mongo_projectId_project_projectId_fk": {
1439 "name": "mongo_projectId_project_projectId_fk",
1440 "tableFrom": "mongo",
1441 "tableTo": "project",
1442 "columnsFrom": [
1443 "projectId"
1444 ],
1445 "columnsTo": [
1446 "projectId"
1447 ],
1448 "onDelete": "cascade",
1449 "onUpdate": "no action"
1450 },
1451 "mongo_serverId_server_serverId_fk": {
1452 "name": "mongo_serverId_server_serverId_fk",
1453 "tableFrom": "mongo",
1454 "tableTo": "server",
1455 "columnsFrom": [
1456 "serverId"
1457 ],
1458 "columnsTo": [
1459 "serverId"
1460 ],
1461 "onDelete": "cascade",
1462 "onUpdate": "no action"
1463 }
1464 },
1465 "compositePrimaryKeys": {},
1466 "uniqueConstraints": {
1467 "mongo_appName_unique": {
1468 "name": "mongo_appName_unique",
1469 "nullsNotDistinct": false,
1470 "columns": [
1471 "appName"
1472 ]
1473 }
1474 },
1475 "policies": {},
1476 "checkConstraints": {},
1477 "isRLSEnabled": false
1478 },
1479 "public.mysql": {
1480 "name": "mysql",
1481 "schema": "",
1482 "columns": {
1483 "mysqlId": {
1484 "name": "mysqlId",
1485 "type": "text",
1486 "primaryKey": true,
1487 "notNull": true
1488 },
1489 "name": {
1490 "name": "name",
1491 "type": "text",
1492 "primaryKey": false,
1493 "notNull": true
1494 },
1495 "appName": {
1496 "name": "appName",
1497 "type": "text",
1498 "primaryKey": false,
1499 "notNull": true
1500 },
1501 "description": {
1502 "name": "description",
1503 "type": "text",
1504 "primaryKey": false,
1505 "notNull": false
1506 },
1507 "databaseName": {
1508 "name": "databaseName",
1509 "type": "text",
1510 "primaryKey": false,
1511 "notNull": true
1512 },
1513 "databaseUser": {
1514 "name": "databaseUser",
1515 "type": "text",
1516 "primaryKey": false,
1517 "notNull": true
1518 },
1519 "databasePassword": {
1520 "name": "databasePassword",
1521 "type": "text",
1522 "primaryKey": false,
1523 "notNull": true
1524 },
1525 "rootPassword": {
1526 "name": "rootPassword",
1527 "type": "text",
1528 "primaryKey": false,
1529 "notNull": true
1530 },
1531 "dockerImage": {
1532 "name": "dockerImage",
1533 "type": "text",
1534 "primaryKey": false,
1535 "notNull": true
1536 },
1537 "command": {
1538 "name": "command",
1539 "type": "text",
1540 "primaryKey": false,
1541 "notNull": false
1542 },
1543 "env": {
1544 "name": "env",
1545 "type": "text",
1546 "primaryKey": false,
1547 "notNull": false
1548 },
1549 "memoryReservation": {
1550 "name": "memoryReservation",
1551 "type": "text",
1552 "primaryKey": false,
1553 "notNull": false
1554 },
1555 "memoryLimit": {
1556 "name": "memoryLimit",
1557 "type": "text",
1558 "primaryKey": false,
1559 "notNull": false
1560 },
1561 "cpuReservation": {
1562 "name": "cpuReservation",
1563 "type": "text",
1564 "primaryKey": false,
1565 "notNull": false
1566 },
1567 "cpuLimit": {
1568 "name": "cpuLimit",
1569 "type": "text",
1570 "primaryKey": false,
1571 "notNull": false
1572 },
1573 "externalPort": {
1574 "name": "externalPort",
1575 "type": "integer",
1576 "primaryKey": false,
1577 "notNull": false
1578 },
1579 "applicationStatus": {
1580 "name": "applicationStatus",
1581 "type": "applicationStatus",
1582 "typeSchema": "public",
1583 "primaryKey": false,
1584 "notNull": true,
1585 "default": "'idle'"
1586 },
1587 "createdAt": {
1588 "name": "createdAt",
1589 "type": "text",
1590 "primaryKey": false,
1591 "notNull": true
1592 },
1593 "projectId": {
1594 "name": "projectId",
1595 "type": "text",
1596 "primaryKey": false,
1597 "notNull": true
1598 },
1599 "serverId": {
1600 "name": "serverId",
1601 "type": "text",
1602 "primaryKey": false,
1603 "notNull": false
1604 }
1605 },
1606 "indexes": {},
1607 "foreignKeys": {
1608 "mysql_projectId_project_projectId_fk": {
1609 "name": "mysql_projectId_project_projectId_fk",
1610 "tableFrom": "mysql",
1611 "tableTo": "project",
1612 "columnsFrom": [
1613 "projectId"
1614 ],
1615 "columnsTo": [
1616 "projectId"
1617 ],
1618 "onDelete": "cascade",
1619 "onUpdate": "no action"
1620 },
1621 "mysql_serverId_server_serverId_fk": {
1622 "name": "mysql_serverId_server_serverId_fk",
1623 "tableFrom": "mysql",
1624 "tableTo": "server",
1625 "columnsFrom": [
1626 "serverId"
1627 ],
1628 "columnsTo": [
1629 "serverId"
1630 ],
1631 "onDelete": "cascade",
1632 "onUpdate": "no action"
1633 }
1634 },
1635 "compositePrimaryKeys": {},
1636 "uniqueConstraints": {
1637 "mysql_appName_unique": {
1638 "name": "mysql_appName_unique",
1639 "nullsNotDistinct": false,
1640 "columns": [
1641 "appName"
1642 ]
1643 }
1644 },
1645 "policies": {},
1646 "checkConstraints": {},
1647 "isRLSEnabled": false
1648 },
1649 "public.backup": {
1650 "name": "backup",
1651 "schema": "",
1652 "columns": {
1653 "backupId": {
1654 "name": "backupId",
1655 "type": "text",
1656 "primaryKey": true,
1657 "notNull": true
1658 },
1659 "schedule": {
1660 "name": "schedule",
1661 "type": "text",
1662 "primaryKey": false,
1663 "notNull": true
1664 },
1665 "enabled": {
1666 "name": "enabled",
1667 "type": "boolean",
1668 "primaryKey": false,
1669 "notNull": false
1670 },
1671 "database": {
1672 "name": "database",
1673 "type": "text",
1674 "primaryKey": false,
1675 "notNull": true
1676 },
1677 "prefix": {
1678 "name": "prefix",
1679 "type": "text",
1680 "primaryKey": false,
1681 "notNull": true
1682 },
1683 "destinationId": {
1684 "name": "destinationId",
1685 "type": "text",
1686 "primaryKey": false,
1687 "notNull": true
1688 },
1689 "databaseType": {
1690 "name": "databaseType",
1691 "type": "databaseType",
1692 "typeSchema": "public",
1693 "primaryKey": false,
1694 "notNull": true
1695 },
1696 "postgresId": {
1697 "name": "postgresId",
1698 "type": "text",
1699 "primaryKey": false,
1700 "notNull": false
1701 },
1702 "mariadbId": {
1703 "name": "mariadbId",
1704 "type": "text",
1705 "primaryKey": false,
1706 "notNull": false
1707 },
1708 "mysqlId": {
1709 "name": "mysqlId",
1710 "type": "text",
1711 "primaryKey": false,
1712 "notNull": false
1713 },
1714 "mongoId": {
1715 "name": "mongoId",
1716 "type": "text",
1717 "primaryKey": false,
1718 "notNull": false
1719 }
1720 },
1721 "indexes": {},
1722 "foreignKeys": {
1723 "backup_destinationId_destination_destinationId_fk": {
1724 "name": "backup_destinationId_destination_destinationId_fk",
1725 "tableFrom": "backup",
1726 "tableTo": "destination",
1727 "columnsFrom": [
1728 "destinationId"
1729 ],
1730 "columnsTo": [
1731 "destinationId"
1732 ],
1733 "onDelete": "cascade",
1734 "onUpdate": "no action"
1735 },
1736 "backup_postgresId_postgres_postgresId_fk": {
1737 "name": "backup_postgresId_postgres_postgresId_fk",
1738 "tableFrom": "backup",
1739 "tableTo": "postgres",
1740 "columnsFrom": [
1741 "postgresId"
1742 ],
1743 "columnsTo": [
1744 "postgresId"
1745 ],
1746 "onDelete": "cascade",
1747 "onUpdate": "no action"
1748 },
1749 "backup_mariadbId_mariadb_mariadbId_fk": {
1750 "name": "backup_mariadbId_mariadb_mariadbId_fk",
1751 "tableFrom": "backup",
1752 "tableTo": "mariadb",
1753 "columnsFrom": [
1754 "mariadbId"
1755 ],
1756 "columnsTo": [
1757 "mariadbId"
1758 ],
1759 "onDelete": "cascade",
1760 "onUpdate": "no action"
1761 },
1762 "backup_mysqlId_mysql_mysqlId_fk": {
1763 "name": "backup_mysqlId_mysql_mysqlId_fk",
1764 "tableFrom": "backup",
1765 "tableTo": "mysql",
1766 "columnsFrom": [
1767 "mysqlId"
1768 ],
1769 "columnsTo": [
1770 "mysqlId"
1771 ],
1772 "onDelete": "cascade",
1773 "onUpdate": "no action"
1774 },
1775 "backup_mongoId_mongo_mongoId_fk": {
1776 "name": "backup_mongoId_mongo_mongoId_fk",
1777 "tableFrom": "backup",
1778 "tableTo": "mongo",
1779 "columnsFrom": [
1780 "mongoId"
1781 ],
1782 "columnsTo": [
1783 "mongoId"
1784 ],
1785 "onDelete": "cascade",
1786 "onUpdate": "no action"
1787 }
1788 },
1789 "compositePrimaryKeys": {},
1790 "uniqueConstraints": {},
1791 "policies": {},
1792 "checkConstraints": {},
1793 "isRLSEnabled": false
1794 },
1795 "public.destination": {
1796 "name": "destination",
1797 "schema": "",
1798 "columns": {
1799 "destinationId": {
1800 "name": "destinationId",
1801 "type": "text",
1802 "primaryKey": true,
1803 "notNull": true
1804 },
1805 "name": {
1806 "name": "name",
1807 "type": "text",
1808 "primaryKey": false,
1809 "notNull": true
1810 },
1811 "provider": {
1812 "name": "provider",
1813 "type": "text",
1814 "primaryKey": false,
1815 "notNull": false
1816 },
1817 "accessKey": {
1818 "name": "accessKey",
1819 "type": "text",
1820 "primaryKey": false,
1821 "notNull": true
1822 },
1823 "secretAccessKey": {
1824 "name": "secretAccessKey",
1825 "type": "text",
1826 "primaryKey": false,
1827 "notNull": true
1828 },
1829 "bucket": {
1830 "name": "bucket",
1831 "type": "text",
1832 "primaryKey": false,
1833 "notNull": true
1834 },
1835 "region": {
1836 "name": "region",
1837 "type": "text",
1838 "primaryKey": false,
1839 "notNull": true
1840 },
1841 "endpoint": {
1842 "name": "endpoint",
1843 "type": "text",
1844 "primaryKey": false,
1845 "notNull": true
1846 },
1847 "organizationId": {
1848 "name": "organizationId",
1849 "type": "text",
1850 "primaryKey": false,
1851 "notNull": true
1852 },
1853 "createdAt": {
1854 "name": "createdAt",
1855 "type": "timestamp",
1856 "primaryKey": false,
1857 "notNull": true,
1858 "default": "now()"
1859 }
1860 },
1861 "indexes": {},
1862 "foreignKeys": {
1863 "destination_organizationId_organization_id_fk": {
1864 "name": "destination_organizationId_organization_id_fk",
1865 "tableFrom": "destination",
1866 "tableTo": "organization",
1867 "columnsFrom": [
1868 "organizationId"
1869 ],
1870 "columnsTo": [
1871 "id"
1872 ],
1873 "onDelete": "cascade",
1874 "onUpdate": "no action"
1875 }
1876 },
1877 "compositePrimaryKeys": {},
1878 "uniqueConstraints": {},
1879 "policies": {},
1880 "checkConstraints": {},
1881 "isRLSEnabled": false
1882 },
1883 "public.deployment": {
1884 "name": "deployment",
1885 "schema": "",
1886 "columns": {
1887 "deploymentId": {
1888 "name": "deploymentId",
1889 "type": "text",
1890 "primaryKey": true,
1891 "notNull": true
1892 },
1893 "title": {
1894 "name": "title",
1895 "type": "text",
1896 "primaryKey": false,
1897 "notNull": true
1898 },
1899 "description": {
1900 "name": "description",
1901 "type": "text",
1902 "primaryKey": false,
1903 "notNull": false
1904 },
1905 "status": {
1906 "name": "status",
1907 "type": "deploymentStatus",
1908 "typeSchema": "public",
1909 "primaryKey": false,
1910 "notNull": false,
1911 "default": "'running'"
1912 },
1913 "logPath": {
1914 "name": "logPath",
1915 "type": "text",
1916 "primaryKey": false,
1917 "notNull": true
1918 },
1919 "applicationId": {
1920 "name": "applicationId",
1921 "type": "text",
1922 "primaryKey": false,
1923 "notNull": false
1924 },
1925 "composeId": {
1926 "name": "composeId",
1927 "type": "text",
1928 "primaryKey": false,
1929 "notNull": false
1930 },
1931 "serverId": {
1932 "name": "serverId",
1933 "type": "text",
1934 "primaryKey": false,
1935 "notNull": false
1936 },
1937 "isPreviewDeployment": {
1938 "name": "isPreviewDeployment",
1939 "type": "boolean",
1940 "primaryKey": false,
1941 "notNull": false,
1942 "default": false
1943 },
1944 "previewDeploymentId": {
1945 "name": "previewDeploymentId",
1946 "type": "text",
1947 "primaryKey": false,
1948 "notNull": false
1949 },
1950 "createdAt": {
1951 "name": "createdAt",
1952 "type": "text",
1953 "primaryKey": false,
1954 "notNull": true
1955 },
1956 "errorMessage": {
1957 "name": "errorMessage",
1958 "type": "text",
1959 "primaryKey": false,
1960 "notNull": false
1961 }
1962 },
1963 "indexes": {},
1964 "foreignKeys": {
1965 "deployment_applicationId_application_applicationId_fk": {
1966 "name": "deployment_applicationId_application_applicationId_fk",
1967 "tableFrom": "deployment",
1968 "tableTo": "application",
1969 "columnsFrom": [
1970 "applicationId"
1971 ],
1972 "columnsTo": [
1973 "applicationId"
1974 ],
1975 "onDelete": "cascade",
1976 "onUpdate": "no action"
1977 },
1978 "deployment_composeId_compose_composeId_fk": {
1979 "name": "deployment_composeId_compose_composeId_fk",
1980 "tableFrom": "deployment",
1981 "tableTo": "compose",
1982 "columnsFrom": [
1983 "composeId"
1984 ],
1985 "columnsTo": [
1986 "composeId"
1987 ],
1988 "onDelete": "cascade",
1989 "onUpdate": "no action"
1990 },
1991 "deployment_serverId_server_serverId_fk": {
1992 "name": "deployment_serverId_server_serverId_fk",
1993 "tableFrom": "deployment",
1994 "tableTo": "server",
1995 "columnsFrom": [
1996 "serverId"
1997 ],
1998 "columnsTo": [
1999 "serverId"
2000 ],
2001 "onDelete": "cascade",
2002 "onUpdate": "no action"
2003 },
2004 "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk": {
2005 "name": "deployment_previewDeploymentId_preview_deployments_previewDeploymentId_fk",
2006 "tableFrom": "deployment",
2007 "tableTo": "preview_deployments",
2008 "columnsFrom": [
2009 "previewDeploymentId"
2010 ],
2011 "columnsTo": [
2012 "previewDeploymentId"
2013 ],
2014 "onDelete": "cascade",
2015 "onUpdate": "no action"
2016 }
2017 },
2018 "compositePrimaryKeys": {},
2019 "uniqueConstraints": {},
2020 "policies": {},
2021 "checkConstraints": {},
2022 "isRLSEnabled": false
2023 },
2024 "public.mount": {
2025 "name": "mount",
2026 "schema": "",
2027 "columns": {
2028 "mountId": {
2029 "name": "mountId",
2030 "type": "text",
2031 "primaryKey": true,
2032 "notNull": true
2033 },
2034 "type": {
2035 "name": "type",
2036 "type": "mountType",
2037 "typeSchema": "public",
2038 "primaryKey": false,
2039 "notNull": true
2040 },
2041 "hostPath": {
2042 "name": "hostPath",
2043 "type": "text",
2044 "primaryKey": false,
2045 "notNull": false
2046 },
2047 "volumeName": {
2048 "name": "volumeName",
2049 "type": "text",
2050 "primaryKey": false,
2051 "notNull": false
2052 },
2053 "filePath": {
2054 "name": "filePath",
2055 "type": "text",
2056 "primaryKey": false,
2057 "notNull": false
2058 },
2059 "content": {
2060 "name": "content",
2061 "type": "text",
2062 "primaryKey": false,
2063 "notNull": false
2064 },
2065 "serviceType": {
2066 "name": "serviceType",
2067 "type": "serviceType",
2068 "typeSchema": "public",
2069 "primaryKey": false,
2070 "notNull": true,
2071 "default": "'application'"
2072 },
2073 "mountPath": {
2074 "name": "mountPath",
2075 "type": "text",
2076 "primaryKey": false,
2077 "notNull": true
2078 },
2079 "applicationId": {
2080 "name": "applicationId",
2081 "type": "text",
2082 "primaryKey": false,
2083 "notNull": false
2084 },
2085 "postgresId": {
2086 "name": "postgresId",
2087 "type": "text",
2088 "primaryKey": false,
2089 "notNull": false
2090 },
2091 "mariadbId": {
2092 "name": "mariadbId",
2093 "type": "text",
2094 "primaryKey": false,
2095 "notNull": false
2096 },
2097 "mongoId": {
2098 "name": "mongoId",
2099 "type": "text",
2100 "primaryKey": false,
2101 "notNull": false
2102 },
2103 "mysqlId": {
2104 "name": "mysqlId",
2105 "type": "text",
2106 "primaryKey": false,
2107 "notNull": false
2108 },
2109 "redisId": {
2110 "name": "redisId",
2111 "type": "text",
2112 "primaryKey": false,
2113 "notNull": false
2114 },
2115 "composeId": {
2116 "name": "composeId",
2117 "type": "text",
2118 "primaryKey": false,
2119 "notNull": false
2120 }
2121 },
2122 "indexes": {},
2123 "foreignKeys": {
2124 "mount_applicationId_application_applicationId_fk": {
2125 "name": "mount_applicationId_application_applicationId_fk",
2126 "tableFrom": "mount",
2127 "tableTo": "application",
2128 "columnsFrom": [
2129 "applicationId"
2130 ],
2131 "columnsTo": [
2132 "applicationId"
2133 ],
2134 "onDelete": "cascade",
2135 "onUpdate": "no action"
2136 },
2137 "mount_postgresId_postgres_postgresId_fk": {
2138 "name": "mount_postgresId_postgres_postgresId_fk",
2139 "tableFrom": "mount",
2140 "tableTo": "postgres",
2141 "columnsFrom": [
2142 "postgresId"
2143 ],
2144 "columnsTo": [
2145 "postgresId"
2146 ],
2147 "onDelete": "cascade",
2148 "onUpdate": "no action"
2149 },
2150 "mount_mariadbId_mariadb_mariadbId_fk": {
2151 "name": "mount_mariadbId_mariadb_mariadbId_fk",
2152 "tableFrom": "mount",
2153 "tableTo": "mariadb",
2154 "columnsFrom": [
2155 "mariadbId"
2156 ],
2157 "columnsTo": [
2158 "mariadbId"
2159 ],
2160 "onDelete": "cascade",
2161 "onUpdate": "no action"
2162 },
2163 "mount_mongoId_mongo_mongoId_fk": {
2164 "name": "mount_mongoId_mongo_mongoId_fk",
2165 "tableFrom": "mount",
2166 "tableTo": "mongo",
2167 "columnsFrom": [
2168 "mongoId"
2169 ],
2170 "columnsTo": [
2171 "mongoId"
2172 ],
2173 "onDelete": "cascade",
2174 "onUpdate": "no action"
2175 },
2176 "mount_mysqlId_mysql_mysqlId_fk": {
2177 "name": "mount_mysqlId_mysql_mysqlId_fk",
2178 "tableFrom": "mount",
2179 "tableTo": "mysql",
2180 "columnsFrom": [
2181 "mysqlId"
2182 ],
2183 "columnsTo": [
2184 "mysqlId"
2185 ],
2186 "onDelete": "cascade",
2187 "onUpdate": "no action"
2188 },
2189 "mount_redisId_redis_redisId_fk": {
2190 "name": "mount_redisId_redis_redisId_fk",
2191 "tableFrom": "mount",
2192 "tableTo": "redis",
2193 "columnsFrom": [
2194 "redisId"
2195 ],
2196 "columnsTo": [
2197 "redisId"
2198 ],
2199 "onDelete": "cascade",
2200 "onUpdate": "no action"
2201 },
2202 "mount_composeId_compose_composeId_fk": {
2203 "name": "mount_composeId_compose_composeId_fk",
2204 "tableFrom": "mount",
2205 "tableTo": "compose",
2206 "columnsFrom": [
2207 "composeId"
2208 ],
2209 "columnsTo": [
2210 "composeId"
2211 ],
2212 "onDelete": "cascade",
2213 "onUpdate": "no action"
2214 }
2215 },
2216 "compositePrimaryKeys": {},
2217 "uniqueConstraints": {},
2218 "policies": {},
2219 "checkConstraints": {},
2220 "isRLSEnabled": false
2221 },
2222 "public.certificate": {
2223 "name": "certificate",
2224 "schema": "",
2225 "columns": {
2226 "certificateId": {
2227 "name": "certificateId",
2228 "type": "text",
2229 "primaryKey": true,
2230 "notNull": true
2231 },
2232 "name": {
2233 "name": "name",
2234 "type": "text",
2235 "primaryKey": false,
2236 "notNull": true
2237 },
2238 "certificateData": {
2239 "name": "certificateData",
2240 "type": "text",
2241 "primaryKey": false,
2242 "notNull": true
2243 },
2244 "privateKey": {
2245 "name": "privateKey",
2246 "type": "text",
2247 "primaryKey": false,
2248 "notNull": true
2249 },
2250 "certificatePath": {
2251 "name": "certificatePath",
2252 "type": "text",
2253 "primaryKey": false,
2254 "notNull": true
2255 },
2256 "autoRenew": {
2257 "name": "autoRenew",
2258 "type": "boolean",
2259 "primaryKey": false,
2260 "notNull": false
2261 },
2262 "organizationId": {
2263 "name": "organizationId",
2264 "type": "text",
2265 "primaryKey": false,
2266 "notNull": true
2267 },
2268 "serverId": {
2269 "name": "serverId",
2270 "type": "text",
2271 "primaryKey": false,
2272 "notNull": false
2273 }
2274 },
2275 "indexes": {},
2276 "foreignKeys": {
2277 "certificate_organizationId_organization_id_fk": {
2278 "name": "certificate_organizationId_organization_id_fk",
2279 "tableFrom": "certificate",
2280 "tableTo": "organization",
2281 "columnsFrom": [
2282 "organizationId"
2283 ],
2284 "columnsTo": [
2285 "id"
2286 ],
2287 "onDelete": "cascade",
2288 "onUpdate": "no action"
2289 },
2290 "certificate_serverId_server_serverId_fk": {
2291 "name": "certificate_serverId_server_serverId_fk",
2292 "tableFrom": "certificate",
2293 "tableTo": "server",
2294 "columnsFrom": [
2295 "serverId"
2296 ],
2297 "columnsTo": [
2298 "serverId"
2299 ],
2300 "onDelete": "cascade",
2301 "onUpdate": "no action"
2302 }
2303 },
2304 "compositePrimaryKeys": {},
2305 "uniqueConstraints": {
2306 "certificate_certificatePath_unique": {
2307 "name": "certificate_certificatePath_unique",
2308 "nullsNotDistinct": false,
2309 "columns": [
2310 "certificatePath"
2311 ]
2312 }
2313 },
2314 "policies": {},
2315 "checkConstraints": {},
2316 "isRLSEnabled": false
2317 },
2318 "public.session_temp": {
2319 "name": "session_temp",
2320 "schema": "",
2321 "columns": {
2322 "id": {
2323 "name": "id",
2324 "type": "text",
2325 "primaryKey": true,
2326 "notNull": true
2327 },
2328 "expires_at": {
2329 "name": "expires_at",
2330 "type": "timestamp",
2331 "primaryKey": false,
2332 "notNull": true
2333 },
2334 "token": {
2335 "name": "token",
2336 "type": "text",
2337 "primaryKey": false,
2338 "notNull": true
2339 },
2340 "created_at": {
2341 "name": "created_at",
2342 "type": "timestamp",
2343 "primaryKey": false,
2344 "notNull": true
2345 },
2346 "updated_at": {
2347 "name": "updated_at",
2348 "type": "timestamp",
2349 "primaryKey": false,
2350 "notNull": true
2351 },
2352 "ip_address": {
2353 "name": "ip_address",
2354 "type": "text",
2355 "primaryKey": false,
2356 "notNull": false
2357 },
2358 "user_agent": {
2359 "name": "user_agent",
2360 "type": "text",
2361 "primaryKey": false,
2362 "notNull": false
2363 },
2364 "user_id": {
2365 "name": "user_id",
2366 "type": "text",
2367 "primaryKey": false,
2368 "notNull": true
2369 },
2370 "impersonated_by": {
2371 "name": "impersonated_by",
2372 "type": "text",
2373 "primaryKey": false,
2374 "notNull": false
2375 },
2376 "active_organization_id": {
2377 "name": "active_organization_id",
2378 "type": "text",
2379 "primaryKey": false,
2380 "notNull": false
2381 }
2382 },
2383 "indexes": {},
2384 "foreignKeys": {
2385 "session_temp_user_id_user_temp_id_fk": {
2386 "name": "session_temp_user_id_user_temp_id_fk",
2387 "tableFrom": "session_temp",
2388 "tableTo": "user_temp",
2389 "columnsFrom": [
2390 "user_id"
2391 ],
2392 "columnsTo": [
2393 "id"
2394 ],
2395 "onDelete": "cascade",
2396 "onUpdate": "no action"
2397 }
2398 },
2399 "compositePrimaryKeys": {},
2400 "uniqueConstraints": {
2401 "session_temp_token_unique": {
2402 "name": "session_temp_token_unique",
2403 "nullsNotDistinct": false,
2404 "columns": [
2405 "token"
2406 ]
2407 }
2408 },
2409 "policies": {},
2410 "checkConstraints": {},
2411 "isRLSEnabled": false
2412 },
2413 "public.redirect": {
2414 "name": "redirect",
2415 "schema": "",
2416 "columns": {
2417 "redirectId": {
2418 "name": "redirectId",
2419 "type": "text",
2420 "primaryKey": true,
2421 "notNull": true
2422 },
2423 "regex": {
2424 "name": "regex",
2425 "type": "text",
2426 "primaryKey": false,
2427 "notNull": true
2428 },
2429 "replacement": {
2430 "name": "replacement",
2431 "type": "text",
2432 "primaryKey": false,
2433 "notNull": true
2434 },
2435 "permanent": {
2436 "name": "permanent",
2437 "type": "boolean",
2438 "primaryKey": false,
2439 "notNull": true,
2440 "default": false
2441 },
2442 "uniqueConfigKey": {
2443 "name": "uniqueConfigKey",
2444 "type": "serial",
2445 "primaryKey": false,
2446 "notNull": true
2447 },
2448 "createdAt": {
2449 "name": "createdAt",
2450 "type": "text",
2451 "primaryKey": false,
2452 "notNull": true
2453 },
2454 "applicationId": {
2455 "name": "applicationId",
2456 "type": "text",
2457 "primaryKey": false,
2458 "notNull": true
2459 }
2460 },
2461 "indexes": {},
2462 "foreignKeys": {
2463 "redirect_applicationId_application_applicationId_fk": {
2464 "name": "redirect_applicationId_application_applicationId_fk",
2465 "tableFrom": "redirect",
2466 "tableTo": "application",
2467 "columnsFrom": [
2468 "applicationId"
2469 ],
2470 "columnsTo": [
2471 "applicationId"
2472 ],
2473 "onDelete": "cascade",
2474 "onUpdate": "no action"
2475 }
2476 },
2477 "compositePrimaryKeys": {},
2478 "uniqueConstraints": {},
2479 "policies": {},
2480 "checkConstraints": {},
2481 "isRLSEnabled": false
2482 },
2483 "public.security": {
2484 "name": "security",
2485 "schema": "",
2486 "columns": {
2487 "securityId": {
2488 "name": "securityId",
2489 "type": "text",
2490 "primaryKey": true,
2491 "notNull": true
2492 },
2493 "username": {
2494 "name": "username",
2495 "type": "text",
2496 "primaryKey": false,
2497 "notNull": true
2498 },
2499 "password": {
2500 "name": "password",
2501 "type": "text",
2502 "primaryKey": false,
2503 "notNull": true
2504 },
2505 "createdAt": {
2506 "name": "createdAt",
2507 "type": "text",
2508 "primaryKey": false,
2509 "notNull": true
2510 },
2511 "applicationId": {
2512 "name": "applicationId",
2513 "type": "text",
2514 "primaryKey": false,
2515 "notNull": true
2516 }
2517 },
2518 "indexes": {},
2519 "foreignKeys": {
2520 "security_applicationId_application_applicationId_fk": {
2521 "name": "security_applicationId_application_applicationId_fk",
2522 "tableFrom": "security",
2523 "tableTo": "application",
2524 "columnsFrom": [
2525 "applicationId"
2526 ],
2527 "columnsTo": [
2528 "applicationId"
2529 ],
2530 "onDelete": "cascade",
2531 "onUpdate": "no action"
2532 }
2533 },
2534 "compositePrimaryKeys": {},
2535 "uniqueConstraints": {
2536 "security_username_applicationId_unique": {
2537 "name": "security_username_applicationId_unique",
2538 "nullsNotDistinct": false,
2539 "columns": [
2540 "username",
2541 "applicationId"
2542 ]
2543 }
2544 },
2545 "policies": {},
2546 "checkConstraints": {},
2547 "isRLSEnabled": false
2548 },
2549 "public.port": {
2550 "name": "port",
2551 "schema": "",
2552 "columns": {
2553 "portId": {
2554 "name": "portId",
2555 "type": "text",
2556 "primaryKey": true,
2557 "notNull": true
2558 },
2559 "publishedPort": {
2560 "name": "publishedPort",
2561 "type": "integer",
2562 "primaryKey": false,
2563 "notNull": true
2564 },
2565 "targetPort": {
2566 "name": "targetPort",
2567 "type": "integer",
2568 "primaryKey": false,
2569 "notNull": true
2570 },
2571 "protocol": {
2572 "name": "protocol",
2573 "type": "protocolType",
2574 "typeSchema": "public",
2575 "primaryKey": false,
2576 "notNull": true
2577 },
2578 "applicationId": {
2579 "name": "applicationId",
2580 "type": "text",
2581 "primaryKey": false,
2582 "notNull": true
2583 }
2584 },
2585 "indexes": {},
2586 "foreignKeys": {
2587 "port_applicationId_application_applicationId_fk": {
2588 "name": "port_applicationId_application_applicationId_fk",
2589 "tableFrom": "port",
2590 "tableTo": "application",
2591 "columnsFrom": [
2592 "applicationId"
2593 ],
2594 "columnsTo": [
2595 "applicationId"
2596 ],
2597 "onDelete": "cascade",
2598 "onUpdate": "no action"
2599 }
2600 },
2601 "compositePrimaryKeys": {},
2602 "uniqueConstraints": {},
2603 "policies": {},
2604 "checkConstraints": {},
2605 "isRLSEnabled": false
2606 },
2607 "public.redis": {
2608 "name": "redis",
2609 "schema": "",
2610 "columns": {
2611 "redisId": {
2612 "name": "redisId",
2613 "type": "text",
2614 "primaryKey": true,
2615 "notNull": true
2616 },
2617 "name": {
2618 "name": "name",
2619 "type": "text",
2620 "primaryKey": false,
2621 "notNull": true
2622 },
2623 "appName": {
2624 "name": "appName",
2625 "type": "text",
2626 "primaryKey": false,
2627 "notNull": true
2628 },
2629 "description": {
2630 "name": "description",
2631 "type": "text",
2632 "primaryKey": false,
2633 "notNull": false
2634 },
2635 "password": {
2636 "name": "password",
2637 "type": "text",
2638 "primaryKey": false,
2639 "notNull": true
2640 },
2641 "dockerImage": {
2642 "name": "dockerImage",
2643 "type": "text",
2644 "primaryKey": false,
2645 "notNull": true
2646 },
2647 "command": {
2648 "name": "command",
2649 "type": "text",
2650 "primaryKey": false,
2651 "notNull": false
2652 },
2653 "env": {
2654 "name": "env",
2655 "type": "text",
2656 "primaryKey": false,
2657 "notNull": false
2658 },
2659 "memoryReservation": {
2660 "name": "memoryReservation",
2661 "type": "text",
2662 "primaryKey": false,
2663 "notNull": false
2664 },
2665 "memoryLimit": {
2666 "name": "memoryLimit",
2667 "type": "text",
2668 "primaryKey": false,
2669 "notNull": false
2670 },
2671 "cpuReservation": {
2672 "name": "cpuReservation",
2673 "type": "text",
2674 "primaryKey": false,
2675 "notNull": false
2676 },
2677 "cpuLimit": {
2678 "name": "cpuLimit",
2679 "type": "text",
2680 "primaryKey": false,
2681 "notNull": false
2682 },
2683 "externalPort": {
2684 "name": "externalPort",
2685 "type": "integer",
2686 "primaryKey": false,
2687 "notNull": false
2688 },
2689 "createdAt": {
2690 "name": "createdAt",
2691 "type": "text",
2692 "primaryKey": false,
2693 "notNull": true
2694 },
2695 "applicationStatus": {
2696 "name": "applicationStatus",
2697 "type": "applicationStatus",
2698 "typeSchema": "public",
2699 "primaryKey": false,
2700 "notNull": true,
2701 "default": "'idle'"
2702 },
2703 "projectId": {
2704 "name": "projectId",
2705 "type": "text",
2706 "primaryKey": false,
2707 "notNull": true
2708 },
2709 "serverId": {
2710 "name": "serverId",
2711 "type": "text",
2712 "primaryKey": false,
2713 "notNull": false
2714 }
2715 },
2716 "indexes": {},
2717 "foreignKeys": {
2718 "redis_projectId_project_projectId_fk": {
2719 "name": "redis_projectId_project_projectId_fk",
2720 "tableFrom": "redis",
2721 "tableTo": "project",
2722 "columnsFrom": [
2723 "projectId"
2724 ],
2725 "columnsTo": [
2726 "projectId"
2727 ],
2728 "onDelete": "cascade",
2729 "onUpdate": "no action"
2730 },
2731 "redis_serverId_server_serverId_fk": {
2732 "name": "redis_serverId_server_serverId_fk",
2733 "tableFrom": "redis",
2734 "tableTo": "server",
2735 "columnsFrom": [
2736 "serverId"
2737 ],
2738 "columnsTo": [
2739 "serverId"
2740 ],
2741 "onDelete": "cascade",
2742 "onUpdate": "no action"
2743 }
2744 },
2745 "compositePrimaryKeys": {},
2746 "uniqueConstraints": {
2747 "redis_appName_unique": {
2748 "name": "redis_appName_unique",
2749 "nullsNotDistinct": false,
2750 "columns": [
2751 "appName"
2752 ]
2753 }
2754 },
2755 "policies": {},
2756 "checkConstraints": {},
2757 "isRLSEnabled": false
2758 },
2759 "public.compose": {
2760 "name": "compose",
2761 "schema": "",
2762 "columns": {
2763 "composeId": {
2764 "name": "composeId",
2765 "type": "text",
2766 "primaryKey": true,
2767 "notNull": true
2768 },
2769 "name": {
2770 "name": "name",
2771 "type": "text",
2772 "primaryKey": false,
2773 "notNull": true
2774 },
2775 "appName": {
2776 "name": "appName",
2777 "type": "text",
2778 "primaryKey": false,
2779 "notNull": true
2780 },
2781 "description": {
2782 "name": "description",
2783 "type": "text",
2784 "primaryKey": false,
2785 "notNull": false
2786 },
2787 "env": {
2788 "name": "env",
2789 "type": "text",
2790 "primaryKey": false,
2791 "notNull": false
2792 },
2793 "composeFile": {
2794 "name": "composeFile",
2795 "type": "text",
2796 "primaryKey": false,
2797 "notNull": true,
2798 "default": "''"
2799 },
2800 "refreshToken": {
2801 "name": "refreshToken",
2802 "type": "text",
2803 "primaryKey": false,
2804 "notNull": false
2805 },
2806 "sourceType": {
2807 "name": "sourceType",
2808 "type": "sourceTypeCompose",
2809 "typeSchema": "public",
2810 "primaryKey": false,
2811 "notNull": true,
2812 "default": "'github'"
2813 },
2814 "composeType": {
2815 "name": "composeType",
2816 "type": "composeType",
2817 "typeSchema": "public",
2818 "primaryKey": false,
2819 "notNull": true,
2820 "default": "'docker-compose'"
2821 },
2822 "repository": {
2823 "name": "repository",
2824 "type": "text",
2825 "primaryKey": false,
2826 "notNull": false
2827 },
2828 "owner": {
2829 "name": "owner",
2830 "type": "text",
2831 "primaryKey": false,
2832 "notNull": false
2833 },
2834 "branch": {
2835 "name": "branch",
2836 "type": "text",
2837 "primaryKey": false,
2838 "notNull": false
2839 },
2840 "autoDeploy": {
2841 "name": "autoDeploy",
2842 "type": "boolean",
2843 "primaryKey": false,
2844 "notNull": false
2845 },
2846 "gitlabProjectId": {
2847 "name": "gitlabProjectId",
2848 "type": "integer",
2849 "primaryKey": false,
2850 "notNull": false
2851 },
2852 "gitlabRepository": {
2853 "name": "gitlabRepository",
2854 "type": "text",
2855 "primaryKey": false,
2856 "notNull": false
2857 },
2858 "gitlabOwner": {
2859 "name": "gitlabOwner",
2860 "type": "text",
2861 "primaryKey": false,
2862 "notNull": false
2863 },
2864 "gitlabBranch": {
2865 "name": "gitlabBranch",
2866 "type": "text",
2867 "primaryKey": false,
2868 "notNull": false
2869 },
2870 "gitlabPathNamespace": {
2871 "name": "gitlabPathNamespace",
2872 "type": "text",
2873 "primaryKey": false,
2874 "notNull": false
2875 },
2876 "bitbucketRepository": {
2877 "name": "bitbucketRepository",
2878 "type": "text",
2879 "primaryKey": false,
2880 "notNull": false
2881 },
2882 "bitbucketOwner": {
2883 "name": "bitbucketOwner",
2884 "type": "text",
2885 "primaryKey": false,
2886 "notNull": false
2887 },
2888 "bitbucketBranch": {
2889 "name": "bitbucketBranch",
2890 "type": "text",
2891 "primaryKey": false,
2892 "notNull": false
2893 },
2894 "customGitUrl": {
2895 "name": "customGitUrl",
2896 "type": "text",
2897 "primaryKey": false,
2898 "notNull": false
2899 },
2900 "customGitBranch": {
2901 "name": "customGitBranch",
2902 "type": "text",
2903 "primaryKey": false,
2904 "notNull": false
2905 },
2906 "customGitSSHKeyId": {
2907 "name": "customGitSSHKeyId",
2908 "type": "text",
2909 "primaryKey": false,
2910 "notNull": false
2911 },
2912 "command": {
2913 "name": "command",
2914 "type": "text",
2915 "primaryKey": false,
2916 "notNull": true,
2917 "default": "''"
2918 },
2919 "composePath": {
2920 "name": "composePath",
2921 "type": "text",
2922 "primaryKey": false,
2923 "notNull": true,
2924 "default": "'./docker-compose.yml'"
2925 },
2926 "suffix": {
2927 "name": "suffix",
2928 "type": "text",
2929 "primaryKey": false,
2930 "notNull": true,
2931 "default": "''"
2932 },
2933 "randomize": {
2934 "name": "randomize",
2935 "type": "boolean",
2936 "primaryKey": false,
2937 "notNull": true,
2938 "default": false
2939 },
2940 "isolatedDeployment": {
2941 "name": "isolatedDeployment",
2942 "type": "boolean",
2943 "primaryKey": false,
2944 "notNull": true,
2945 "default": false
2946 },
2947 "composeStatus": {
2948 "name": "composeStatus",
2949 "type": "applicationStatus",
2950 "typeSchema": "public",
2951 "primaryKey": false,
2952 "notNull": true,
2953 "default": "'idle'"
2954 },
2955 "projectId": {
2956 "name": "projectId",
2957 "type": "text",
2958 "primaryKey": false,
2959 "notNull": true
2960 },
2961 "createdAt": {
2962 "name": "createdAt",
2963 "type": "text",
2964 "primaryKey": false,
2965 "notNull": true
2966 },
2967 "githubId": {
2968 "name": "githubId",
2969 "type": "text",
2970 "primaryKey": false,
2971 "notNull": false
2972 },
2973 "gitlabId": {
2974 "name": "gitlabId",
2975 "type": "text",
2976 "primaryKey": false,
2977 "notNull": false
2978 },
2979 "bitbucketId": {
2980 "name": "bitbucketId",
2981 "type": "text",
2982 "primaryKey": false,
2983 "notNull": false
2984 },
2985 "serverId": {
2986 "name": "serverId",
2987 "type": "text",
2988 "primaryKey": false,
2989 "notNull": false
2990 }
2991 },
2992 "indexes": {},
2993 "foreignKeys": {
2994 "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk": {
2995 "name": "compose_customGitSSHKeyId_ssh-key_sshKeyId_fk",
2996 "tableFrom": "compose",
2997 "tableTo": "ssh-key",
2998 "columnsFrom": [
2999 "customGitSSHKeyId"
3000 ],
3001 "columnsTo": [
3002 "sshKeyId"
3003 ],
3004 "onDelete": "set null",
3005 "onUpdate": "no action"
3006 },
3007 "compose_projectId_project_projectId_fk": {
3008 "name": "compose_projectId_project_projectId_fk",
3009 "tableFrom": "compose",
3010 "tableTo": "project",
3011 "columnsFrom": [
3012 "projectId"
3013 ],
3014 "columnsTo": [
3015 "projectId"
3016 ],
3017 "onDelete": "cascade",
3018 "onUpdate": "no action"
3019 },
3020 "compose_githubId_github_githubId_fk": {
3021 "name": "compose_githubId_github_githubId_fk",
3022 "tableFrom": "compose",
3023 "tableTo": "github",
3024 "columnsFrom": [
3025 "githubId"
3026 ],
3027 "columnsTo": [
3028 "githubId"
3029 ],
3030 "onDelete": "set null",
3031 "onUpdate": "no action"
3032 },
3033 "compose_gitlabId_gitlab_gitlabId_fk": {
3034 "name": "compose_gitlabId_gitlab_gitlabId_fk",
3035 "tableFrom": "compose",
3036 "tableTo": "gitlab",
3037 "columnsFrom": [
3038 "gitlabId"
3039 ],
3040 "columnsTo": [
3041 "gitlabId"
3042 ],
3043 "onDelete": "set null",
3044 "onUpdate": "no action"
3045 },
3046 "compose_bitbucketId_bitbucket_bitbucketId_fk": {
3047 "name": "compose_bitbucketId_bitbucket_bitbucketId_fk",
3048 "tableFrom": "compose",
3049 "tableTo": "bitbucket",
3050 "columnsFrom": [
3051 "bitbucketId"
3052 ],
3053 "columnsTo": [
3054 "bitbucketId"
3055 ],
3056 "onDelete": "set null",
3057 "onUpdate": "no action"
3058 },
3059 "compose_serverId_server_serverId_fk": {
3060 "name": "compose_serverId_server_serverId_fk",
3061 "tableFrom": "compose",
3062 "tableTo": "server",
3063 "columnsFrom": [
3064 "serverId"
3065 ],
3066 "columnsTo": [
3067 "serverId"
3068 ],
3069 "onDelete": "cascade",
3070 "onUpdate": "no action"
3071 }
3072 },
3073 "compositePrimaryKeys": {},
3074 "uniqueConstraints": {},
3075 "policies": {},
3076 "checkConstraints": {},
3077 "isRLSEnabled": false
3078 },
3079 "public.registry": {
3080 "name": "registry",
3081 "schema": "",
3082 "columns": {
3083 "registryId": {
3084 "name": "registryId",
3085 "type": "text",
3086 "primaryKey": true,
3087 "notNull": true
3088 },
3089 "registryName": {
3090 "name": "registryName",
3091 "type": "text",
3092 "primaryKey": false,
3093 "notNull": true
3094 },
3095 "imagePrefix": {
3096 "name": "imagePrefix",
3097 "type": "text",
3098 "primaryKey": false,
3099 "notNull": false
3100 },
3101 "username": {
3102 "name": "username",
3103 "type": "text",
3104 "primaryKey": false,
3105 "notNull": true
3106 },
3107 "password": {
3108 "name": "password",
3109 "type": "text",
3110 "primaryKey": false,
3111 "notNull": true
3112 },
3113 "registryUrl": {
3114 "name": "registryUrl",
3115 "type": "text",
3116 "primaryKey": false,
3117 "notNull": true,
3118 "default": "''"
3119 },
3120 "createdAt": {
3121 "name": "createdAt",
3122 "type": "text",
3123 "primaryKey": false,
3124 "notNull": true
3125 },
3126 "selfHosted": {
3127 "name": "selfHosted",
3128 "type": "RegistryType",
3129 "typeSchema": "public",
3130 "primaryKey": false,
3131 "notNull": true,
3132 "default": "'cloud'"
3133 },
3134 "organizationId": {
3135 "name": "organizationId",
3136 "type": "text",
3137 "primaryKey": false,
3138 "notNull": true
3139 }
3140 },
3141 "indexes": {},
3142 "foreignKeys": {
3143 "registry_organizationId_organization_id_fk": {
3144 "name": "registry_organizationId_organization_id_fk",
3145 "tableFrom": "registry",
3146 "tableTo": "organization",
3147 "columnsFrom": [
3148 "organizationId"
3149 ],
3150 "columnsTo": [
3151 "id"
3152 ],
3153 "onDelete": "cascade",
3154 "onUpdate": "no action"
3155 }
3156 },
3157 "compositePrimaryKeys": {},
3158 "uniqueConstraints": {},
3159 "policies": {},
3160 "checkConstraints": {},
3161 "isRLSEnabled": false
3162 },
3163 "public.discord": {
3164 "name": "discord",
3165 "schema": "",
3166 "columns": {
3167 "discordId": {
3168 "name": "discordId",
3169 "type": "text",
3170 "primaryKey": true,
3171 "notNull": true
3172 },
3173 "webhookUrl": {
3174 "name": "webhookUrl",
3175 "type": "text",
3176 "primaryKey": false,
3177 "notNull": true
3178 },
3179 "decoration": {
3180 "name": "decoration",
3181 "type": "boolean",
3182 "primaryKey": false,
3183 "notNull": false
3184 }
3185 },
3186 "indexes": {},
3187 "foreignKeys": {},
3188 "compositePrimaryKeys": {},
3189 "uniqueConstraints": {},
3190 "policies": {},
3191 "checkConstraints": {},
3192 "isRLSEnabled": false
3193 },
3194 "public.email": {
3195 "name": "email",
3196 "schema": "",
3197 "columns": {
3198 "emailId": {
3199 "name": "emailId",
3200 "type": "text",
3201 "primaryKey": true,
3202 "notNull": true
3203 },
3204 "smtpServer": {
3205 "name": "smtpServer",
3206 "type": "text",
3207 "primaryKey": false,
3208 "notNull": true
3209 },
3210 "smtpPort": {
3211 "name": "smtpPort",
3212 "type": "integer",
3213 "primaryKey": false,
3214 "notNull": true
3215 },
3216 "username": {
3217 "name": "username",
3218 "type": "text",
3219 "primaryKey": false,
3220 "notNull": true
3221 },
3222 "password": {
3223 "name": "password",
3224 "type": "text",
3225 "primaryKey": false,
3226 "notNull": true
3227 },
3228 "fromAddress": {
3229 "name": "fromAddress",
3230 "type": "text",
3231 "primaryKey": false,
3232 "notNull": true
3233 },
3234 "toAddress": {
3235 "name": "toAddress",
3236 "type": "text[]",
3237 "primaryKey": false,
3238 "notNull": true
3239 }
3240 },
3241 "indexes": {},
3242 "foreignKeys": {},
3243 "compositePrimaryKeys": {},
3244 "uniqueConstraints": {},
3245 "policies": {},
3246 "checkConstraints": {},
3247 "isRLSEnabled": false
3248 },
3249 "public.gotify": {
3250 "name": "gotify",
3251 "schema": "",
3252 "columns": {
3253 "gotifyId": {
3254 "name": "gotifyId",
3255 "type": "text",
3256 "primaryKey": true,
3257 "notNull": true
3258 },
3259 "serverUrl": {
3260 "name": "serverUrl",
3261 "type": "text",
3262 "primaryKey": false,
3263 "notNull": true
3264 },
3265 "appToken": {
3266 "name": "appToken",
3267 "type": "text",
3268 "primaryKey": false,
3269 "notNull": true
3270 },
3271 "priority": {
3272 "name": "priority",
3273 "type": "integer",
3274 "primaryKey": false,
3275 "notNull": true,
3276 "default": 5
3277 },
3278 "decoration": {
3279 "name": "decoration",
3280 "type": "boolean",
3281 "primaryKey": false,
3282 "notNull": false
3283 }
3284 },
3285 "indexes": {},
3286 "foreignKeys": {},
3287 "compositePrimaryKeys": {},
3288 "uniqueConstraints": {},
3289 "policies": {},
3290 "checkConstraints": {},
3291 "isRLSEnabled": false
3292 },
3293 "public.notification": {
3294 "name": "notification",
3295 "schema": "",
3296 "columns": {
3297 "notificationId": {
3298 "name": "notificationId",
3299 "type": "text",
3300 "primaryKey": true,
3301 "notNull": true
3302 },
3303 "name": {
3304 "name": "name",
3305 "type": "text",
3306 "primaryKey": false,
3307 "notNull": true
3308 },
3309 "appDeploy": {
3310 "name": "appDeploy",
3311 "type": "boolean",
3312 "primaryKey": false,
3313 "notNull": true,
3314 "default": false
3315 },
3316 "appBuildError": {
3317 "name": "appBuildError",
3318 "type": "boolean",
3319 "primaryKey": false,
3320 "notNull": true,
3321 "default": false
3322 },
3323 "databaseBackup": {
3324 "name": "databaseBackup",
3325 "type": "boolean",
3326 "primaryKey": false,
3327 "notNull": true,
3328 "default": false
3329 },
3330 "dokployRestart": {
3331 "name": "dokployRestart",
3332 "type": "boolean",
3333 "primaryKey": false,
3334 "notNull": true,
3335 "default": false
3336 },
3337 "dockerCleanup": {
3338 "name": "dockerCleanup",
3339 "type": "boolean",
3340 "primaryKey": false,
3341 "notNull": true,
3342 "default": false
3343 },
3344 "serverThreshold": {
3345 "name": "serverThreshold",
3346 "type": "boolean",
3347 "primaryKey": false,
3348 "notNull": true,
3349 "default": false
3350 },
3351 "notificationType": {
3352 "name": "notificationType",
3353 "type": "notificationType",
3354 "typeSchema": "public",
3355 "primaryKey": false,
3356 "notNull": true
3357 },
3358 "createdAt": {
3359 "name": "createdAt",
3360 "type": "text",
3361 "primaryKey": false,
3362 "notNull": true
3363 },
3364 "slackId": {
3365 "name": "slackId",
3366 "type": "text",
3367 "primaryKey": false,
3368 "notNull": false
3369 },
3370 "telegramId": {
3371 "name": "telegramId",
3372 "type": "text",
3373 "primaryKey": false,
3374 "notNull": false
3375 },
3376 "discordId": {
3377 "name": "discordId",
3378 "type": "text",
3379 "primaryKey": false,
3380 "notNull": false
3381 },
3382 "emailId": {
3383 "name": "emailId",
3384 "type": "text",
3385 "primaryKey": false,
3386 "notNull": false
3387 },
3388 "gotifyId": {
3389 "name": "gotifyId",
3390 "type": "text",
3391 "primaryKey": false,
3392 "notNull": false
3393 },
3394 "organizationId": {
3395 "name": "organizationId",
3396 "type": "text",
3397 "primaryKey": false,
3398 "notNull": true
3399 }
3400 },
3401 "indexes": {},
3402 "foreignKeys": {
3403 "notification_slackId_slack_slackId_fk": {
3404 "name": "notification_slackId_slack_slackId_fk",
3405 "tableFrom": "notification",
3406 "tableTo": "slack",
3407 "columnsFrom": [
3408 "slackId"
3409 ],
3410 "columnsTo": [
3411 "slackId"
3412 ],
3413 "onDelete": "cascade",
3414 "onUpdate": "no action"
3415 },
3416 "notification_telegramId_telegram_telegramId_fk": {
3417 "name": "notification_telegramId_telegram_telegramId_fk",
3418 "tableFrom": "notification",
3419 "tableTo": "telegram",
3420 "columnsFrom": [
3421 "telegramId"
3422 ],
3423 "columnsTo": [
3424 "telegramId"
3425 ],
3426 "onDelete": "cascade",
3427 "onUpdate": "no action"
3428 },
3429 "notification_discordId_discord_discordId_fk": {
3430 "name": "notification_discordId_discord_discordId_fk",
3431 "tableFrom": "notification",
3432 "tableTo": "discord",
3433 "columnsFrom": [
3434 "discordId"
3435 ],
3436 "columnsTo": [
3437 "discordId"
3438 ],
3439 "onDelete": "cascade",
3440 "onUpdate": "no action"
3441 },
3442 "notification_emailId_email_emailId_fk": {
3443 "name": "notification_emailId_email_emailId_fk",
3444 "tableFrom": "notification",
3445 "tableTo": "email",
3446 "columnsFrom": [
3447 "emailId"
3448 ],
3449 "columnsTo": [
3450 "emailId"
3451 ],
3452 "onDelete": "cascade",
3453 "onUpdate": "no action"
3454 },
3455 "notification_gotifyId_gotify_gotifyId_fk": {
3456 "name": "notification_gotifyId_gotify_gotifyId_fk",
3457 "tableFrom": "notification",
3458 "tableTo": "gotify",
3459 "columnsFrom": [
3460 "gotifyId"
3461 ],
3462 "columnsTo": [
3463 "gotifyId"
3464 ],
3465 "onDelete": "cascade",
3466 "onUpdate": "no action"
3467 },
3468 "notification_organizationId_organization_id_fk": {
3469 "name": "notification_organizationId_organization_id_fk",
3470 "tableFrom": "notification",
3471 "tableTo": "organization",
3472 "columnsFrom": [
3473 "organizationId"
3474 ],
3475 "columnsTo": [
3476 "id"
3477 ],
3478 "onDelete": "cascade",
3479 "onUpdate": "no action"
3480 }
3481 },
3482 "compositePrimaryKeys": {},
3483 "uniqueConstraints": {},
3484 "policies": {},
3485 "checkConstraints": {},
3486 "isRLSEnabled": false
3487 },
3488 "public.slack": {
3489 "name": "slack",
3490 "schema": "",
3491 "columns": {
3492 "slackId": {
3493 "name": "slackId",
3494 "type": "text",
3495 "primaryKey": true,
3496 "notNull": true
3497 },
3498 "webhookUrl": {
3499 "name": "webhookUrl",
3500 "type": "text",
3501 "primaryKey": false,
3502 "notNull": true
3503 },
3504 "channel": {
3505 "name": "channel",
3506 "type": "text",
3507 "primaryKey": false,
3508 "notNull": false
3509 }
3510 },
3511 "indexes": {},
3512 "foreignKeys": {},
3513 "compositePrimaryKeys": {},
3514 "uniqueConstraints": {},
3515 "policies": {},
3516 "checkConstraints": {},
3517 "isRLSEnabled": false
3518 },
3519 "public.telegram": {
3520 "name": "telegram",
3521 "schema": "",
3522 "columns": {
3523 "telegramId": {
3524 "name": "telegramId",
3525 "type": "text",
3526 "primaryKey": true,
3527 "notNull": true
3528 },
3529 "botToken": {
3530 "name": "botToken",
3531 "type": "text",
3532 "primaryKey": false,
3533 "notNull": true
3534 },
3535 "chatId": {
3536 "name": "chatId",
3537 "type": "text",
3538 "primaryKey": false,
3539 "notNull": true
3540 },
3541 "messageThreadId": {
3542 "name": "messageThreadId",
3543 "type": "text",
3544 "primaryKey": false,
3545 "notNull": false
3546 }
3547 },
3548 "indexes": {},
3549 "foreignKeys": {},
3550 "compositePrimaryKeys": {},
3551 "uniqueConstraints": {},
3552 "policies": {},
3553 "checkConstraints": {},
3554 "isRLSEnabled": false
3555 },
3556 "public.ssh-key": {
3557 "name": "ssh-key",
3558 "schema": "",
3559 "columns": {
3560 "sshKeyId": {
3561 "name": "sshKeyId",
3562 "type": "text",
3563 "primaryKey": true,
3564 "notNull": true
3565 },
3566 "privateKey": {
3567 "name": "privateKey",
3568 "type": "text",
3569 "primaryKey": false,
3570 "notNull": true,
3571 "default": "''"
3572 },
3573 "publicKey": {
3574 "name": "publicKey",
3575 "type": "text",
3576 "primaryKey": false,
3577 "notNull": true
3578 },
3579 "name": {
3580 "name": "name",
3581 "type": "text",
3582 "primaryKey": false,
3583 "notNull": true
3584 },
3585 "description": {
3586 "name": "description",
3587 "type": "text",
3588 "primaryKey": false,
3589 "notNull": false
3590 },
3591 "createdAt": {
3592 "name": "createdAt",
3593 "type": "text",
3594 "primaryKey": false,
3595 "notNull": true
3596 },
3597 "lastUsedAt": {
3598 "name": "lastUsedAt",
3599 "type": "text",
3600 "primaryKey": false,
3601 "notNull": false
3602 },
3603 "organizationId": {
3604 "name": "organizationId",
3605 "type": "text",
3606 "primaryKey": false,
3607 "notNull": true
3608 }
3609 },
3610 "indexes": {},
3611 "foreignKeys": {
3612 "ssh-key_organizationId_organization_id_fk": {
3613 "name": "ssh-key_organizationId_organization_id_fk",
3614 "tableFrom": "ssh-key",
3615 "tableTo": "organization",
3616 "columnsFrom": [
3617 "organizationId"
3618 ],
3619 "columnsTo": [
3620 "id"
3621 ],
3622 "onDelete": "cascade",
3623 "onUpdate": "no action"
3624 }
3625 },
3626 "compositePrimaryKeys": {},
3627 "uniqueConstraints": {},
3628 "policies": {},
3629 "checkConstraints": {},
3630 "isRLSEnabled": false
3631 },
3632 "public.git_provider": {
3633 "name": "git_provider",
3634 "schema": "",
3635 "columns": {
3636 "gitProviderId": {
3637 "name": "gitProviderId",
3638 "type": "text",
3639 "primaryKey": true,
3640 "notNull": true
3641 },
3642 "name": {
3643 "name": "name",
3644 "type": "text",
3645 "primaryKey": false,
3646 "notNull": true
3647 },
3648 "providerType": {
3649 "name": "providerType",
3650 "type": "gitProviderType",
3651 "typeSchema": "public",
3652 "primaryKey": false,
3653 "notNull": true,
3654 "default": "'github'"
3655 },
3656 "createdAt": {
3657 "name": "createdAt",
3658 "type": "text",
3659 "primaryKey": false,
3660 "notNull": true
3661 },
3662 "organizationId": {
3663 "name": "organizationId",
3664 "type": "text",
3665 "primaryKey": false,
3666 "notNull": true
3667 }
3668 },
3669 "indexes": {},
3670 "foreignKeys": {
3671 "git_provider_organizationId_organization_id_fk": {
3672 "name": "git_provider_organizationId_organization_id_fk",
3673 "tableFrom": "git_provider",
3674 "tableTo": "organization",
3675 "columnsFrom": [
3676 "organizationId"
3677 ],
3678 "columnsTo": [
3679 "id"
3680 ],
3681 "onDelete": "cascade",
3682 "onUpdate": "no action"
3683 }
3684 },
3685 "compositePrimaryKeys": {},
3686 "uniqueConstraints": {},
3687 "policies": {},
3688 "checkConstraints": {},
3689 "isRLSEnabled": false
3690 },
3691 "public.bitbucket": {
3692 "name": "bitbucket",
3693 "schema": "",
3694 "columns": {
3695 "bitbucketId": {
3696 "name": "bitbucketId",
3697 "type": "text",
3698 "primaryKey": true,
3699 "notNull": true
3700 },
3701 "bitbucketUsername": {
3702 "name": "bitbucketUsername",
3703 "type": "text",
3704 "primaryKey": false,
3705 "notNull": false
3706 },
3707 "appPassword": {
3708 "name": "appPassword",
3709 "type": "text",
3710 "primaryKey": false,
3711 "notNull": false
3712 },
3713 "bitbucketWorkspaceName": {
3714 "name": "bitbucketWorkspaceName",
3715 "type": "text",
3716 "primaryKey": false,
3717 "notNull": false
3718 },
3719 "gitProviderId": {
3720 "name": "gitProviderId",
3721 "type": "text",
3722 "primaryKey": false,
3723 "notNull": true
3724 }
3725 },
3726 "indexes": {},
3727 "foreignKeys": {
3728 "bitbucket_gitProviderId_git_provider_gitProviderId_fk": {
3729 "name": "bitbucket_gitProviderId_git_provider_gitProviderId_fk",
3730 "tableFrom": "bitbucket",
3731 "tableTo": "git_provider",
3732 "columnsFrom": [
3733 "gitProviderId"
3734 ],
3735 "columnsTo": [
3736 "gitProviderId"
3737 ],
3738 "onDelete": "cascade",
3739 "onUpdate": "no action"
3740 }
3741 },
3742 "compositePrimaryKeys": {},
3743 "uniqueConstraints": {},
3744 "policies": {},
3745 "checkConstraints": {},
3746 "isRLSEnabled": false
3747 },
3748 "public.github": {
3749 "name": "github",
3750 "schema": "",
3751 "columns": {
3752 "githubId": {
3753 "name": "githubId",
3754 "type": "text",
3755 "primaryKey": true,
3756 "notNull": true
3757 },
3758 "githubAppName": {
3759 "name": "githubAppName",
3760 "type": "text",
3761 "primaryKey": false,
3762 "notNull": false
3763 },
3764 "githubAppId": {
3765 "name": "githubAppId",
3766 "type": "integer",
3767 "primaryKey": false,
3768 "notNull": false
3769 },
3770 "githubClientId": {
3771 "name": "githubClientId",
3772 "type": "text",
3773 "primaryKey": false,
3774 "notNull": false
3775 },
3776 "githubClientSecret": {
3777 "name": "githubClientSecret",
3778 "type": "text",
3779 "primaryKey": false,
3780 "notNull": false
3781 },
3782 "githubInstallationId": {
3783 "name": "githubInstallationId",
3784 "type": "text",
3785 "primaryKey": false,
3786 "notNull": false
3787 },
3788 "githubPrivateKey": {
3789 "name": "githubPrivateKey",
3790 "type": "text",
3791 "primaryKey": false,
3792 "notNull": false
3793 },
3794 "githubWebhookSecret": {
3795 "name": "githubWebhookSecret",
3796 "type": "text",
3797 "primaryKey": false,
3798 "notNull": false
3799 },
3800 "gitProviderId": {
3801 "name": "gitProviderId",
3802 "type": "text",
3803 "primaryKey": false,
3804 "notNull": true
3805 }
3806 },
3807 "indexes": {},
3808 "foreignKeys": {
3809 "github_gitProviderId_git_provider_gitProviderId_fk": {
3810 "name": "github_gitProviderId_git_provider_gitProviderId_fk",
3811 "tableFrom": "github",
3812 "tableTo": "git_provider",
3813 "columnsFrom": [
3814 "gitProviderId"
3815 ],
3816 "columnsTo": [
3817 "gitProviderId"
3818 ],
3819 "onDelete": "cascade",
3820 "onUpdate": "no action"
3821 }
3822 },
3823 "compositePrimaryKeys": {},
3824 "uniqueConstraints": {},
3825 "policies": {},
3826 "checkConstraints": {},
3827 "isRLSEnabled": false
3828 },
3829 "public.gitlab": {
3830 "name": "gitlab",
3831 "schema": "",
3832 "columns": {
3833 "gitlabId": {
3834 "name": "gitlabId",
3835 "type": "text",
3836 "primaryKey": true,
3837 "notNull": true
3838 },
3839 "gitlabUrl": {
3840 "name": "gitlabUrl",
3841 "type": "text",
3842 "primaryKey": false,
3843 "notNull": true,
3844 "default": "'https://gitlab.com'"
3845 },
3846 "application_id": {
3847 "name": "application_id",
3848 "type": "text",
3849 "primaryKey": false,
3850 "notNull": false
3851 },
3852 "redirect_uri": {
3853 "name": "redirect_uri",
3854 "type": "text",
3855 "primaryKey": false,
3856 "notNull": false
3857 },
3858 "secret": {
3859 "name": "secret",
3860 "type": "text",
3861 "primaryKey": false,
3862 "notNull": false
3863 },
3864 "access_token": {
3865 "name": "access_token",
3866 "type": "text",
3867 "primaryKey": false,
3868 "notNull": false
3869 },
3870 "refresh_token": {
3871 "name": "refresh_token",
3872 "type": "text",
3873 "primaryKey": false,
3874 "notNull": false
3875 },
3876 "group_name": {
3877 "name": "group_name",
3878 "type": "text",
3879 "primaryKey": false,
3880 "notNull": false
3881 },
3882 "expires_at": {
3883 "name": "expires_at",
3884 "type": "integer",
3885 "primaryKey": false,
3886 "notNull": false
3887 },
3888 "gitProviderId": {
3889 "name": "gitProviderId",
3890 "type": "text",
3891 "primaryKey": false,
3892 "notNull": true
3893 }
3894 },
3895 "indexes": {},
3896 "foreignKeys": {
3897 "gitlab_gitProviderId_git_provider_gitProviderId_fk": {
3898 "name": "gitlab_gitProviderId_git_provider_gitProviderId_fk",
3899 "tableFrom": "gitlab",
3900 "tableTo": "git_provider",
3901 "columnsFrom": [
3902 "gitProviderId"
3903 ],
3904 "columnsTo": [
3905 "gitProviderId"
3906 ],
3907 "onDelete": "cascade",
3908 "onUpdate": "no action"
3909 }
3910 },
3911 "compositePrimaryKeys": {},
3912 "uniqueConstraints": {},
3913 "policies": {},
3914 "checkConstraints": {},
3915 "isRLSEnabled": false
3916 },
3917 "public.server": {
3918 "name": "server",
3919 "schema": "",
3920 "columns": {
3921 "serverId": {
3922 "name": "serverId",
3923 "type": "text",
3924 "primaryKey": true,
3925 "notNull": true
3926 },
3927 "name": {
3928 "name": "name",
3929 "type": "text",
3930 "primaryKey": false,
3931 "notNull": true
3932 },
3933 "description": {
3934 "name": "description",
3935 "type": "text",
3936 "primaryKey": false,
3937 "notNull": false
3938 },
3939 "ipAddress": {
3940 "name": "ipAddress",
3941 "type": "text",
3942 "primaryKey": false,
3943 "notNull": true
3944 },
3945 "port": {
3946 "name": "port",
3947 "type": "integer",
3948 "primaryKey": false,
3949 "notNull": true
3950 },
3951 "username": {
3952 "name": "username",
3953 "type": "text",
3954 "primaryKey": false,
3955 "notNull": true,
3956 "default": "'root'"
3957 },
3958 "appName": {
3959 "name": "appName",
3960 "type": "text",
3961 "primaryKey": false,
3962 "notNull": true
3963 },
3964 "enableDockerCleanup": {
3965 "name": "enableDockerCleanup",
3966 "type": "boolean",
3967 "primaryKey": false,
3968 "notNull": true,
3969 "default": false
3970 },
3971 "createdAt": {
3972 "name": "createdAt",
3973 "type": "text",
3974 "primaryKey": false,
3975 "notNull": true
3976 },
3977 "organizationId": {
3978 "name": "organizationId",
3979 "type": "text",
3980 "primaryKey": false,
3981 "notNull": true
3982 },
3983 "serverStatus": {
3984 "name": "serverStatus",
3985 "type": "serverStatus",
3986 "typeSchema": "public",
3987 "primaryKey": false,
3988 "notNull": true,
3989 "default": "'active'"
3990 },
3991 "command": {
3992 "name": "command",
3993 "type": "text",
3994 "primaryKey": false,
3995 "notNull": true,
3996 "default": "''"
3997 },
3998 "sshKeyId": {
3999 "name": "sshKeyId",
4000 "type": "text",
4001 "primaryKey": false,
4002 "notNull": false
4003 },
4004 "metricsConfig": {
4005 "name": "metricsConfig",
4006 "type": "jsonb",
4007 "primaryKey": false,
4008 "notNull": true,
4009 "default": "'{\"server\":{\"type\":\"Remote\",\"refreshRate\":60,\"port\":4500,\"token\":\"\",\"urlCallback\":\"\",\"cronJob\":\"\",\"retentionDays\":2,\"thresholds\":{\"cpu\":0,\"memory\":0}},\"containers\":{\"refreshRate\":60,\"services\":{\"include\":[],\"exclude\":[]}}}'::jsonb"
4010 }
4011 },
4012 "indexes": {},
4013 "foreignKeys": {
4014 "server_organizationId_organization_id_fk": {
4015 "name": "server_organizationId_organization_id_fk",
4016 "tableFrom": "server",
4017 "tableTo": "organization",
4018 "columnsFrom": [
4019 "organizationId"
4020 ],
4021 "columnsTo": [
4022 "id"
4023 ],
4024 "onDelete": "cascade",
4025 "onUpdate": "no action"
4026 },
4027 "server_sshKeyId_ssh-key_sshKeyId_fk": {
4028 "name": "server_sshKeyId_ssh-key_sshKeyId_fk",
4029 "tableFrom": "server",
4030 "tableTo": "ssh-key",
4031 "columnsFrom": [
4032 "sshKeyId"
4033 ],
4034 "columnsTo": [
4035 "sshKeyId"
4036 ],
4037 "onDelete": "set null",
4038 "onUpdate": "no action"
4039 }
4040 },
4041 "compositePrimaryKeys": {},
4042 "uniqueConstraints": {},
4043 "policies": {},
4044 "checkConstraints": {},
4045 "isRLSEnabled": false
4046 },
4047 "public.preview_deployments": {
4048 "name": "preview_deployments",
4049 "schema": "",
4050 "columns": {
4051 "previewDeploymentId": {
4052 "name": "previewDeploymentId",
4053 "type": "text",
4054 "primaryKey": true,
4055 "notNull": true
4056 },
4057 "branch": {
4058 "name": "branch",
4059 "type": "text",
4060 "primaryKey": false,
4061 "notNull": true
4062 },
4063 "pullRequestId": {
4064 "name": "pullRequestId",
4065 "type": "text",
4066 "primaryKey": false,
4067 "notNull": true
4068 },
4069 "pullRequestNumber": {
4070 "name": "pullRequestNumber",
4071 "type": "text",
4072 "primaryKey": false,
4073 "notNull": true
4074 },
4075 "pullRequestURL": {
4076 "name": "pullRequestURL",
4077 "type": "text",
4078 "primaryKey": false,
4079 "notNull": true
4080 },
4081 "pullRequestTitle": {
4082 "name": "pullRequestTitle",
4083 "type": "text",
4084 "primaryKey": false,
4085 "notNull": true
4086 },
4087 "pullRequestCommentId": {
4088 "name": "pullRequestCommentId",
4089 "type": "text",
4090 "primaryKey": false,
4091 "notNull": true
4092 },
4093 "previewStatus": {
4094 "name": "previewStatus",
4095 "type": "applicationStatus",
4096 "typeSchema": "public",
4097 "primaryKey": false,
4098 "notNull": true,
4099 "default": "'idle'"
4100 },
4101 "appName": {
4102 "name": "appName",
4103 "type": "text",
4104 "primaryKey": false,
4105 "notNull": true
4106 },
4107 "applicationId": {
4108 "name": "applicationId",
4109 "type": "text",
4110 "primaryKey": false,
4111 "notNull": true
4112 },
4113 "domainId": {
4114 "name": "domainId",
4115 "type": "text",
4116 "primaryKey": false,
4117 "notNull": false
4118 },
4119 "createdAt": {
4120 "name": "createdAt",
4121 "type": "text",
4122 "primaryKey": false,
4123 "notNull": true
4124 },
4125 "expiresAt": {
4126 "name": "expiresAt",
4127 "type": "text",
4128 "primaryKey": false,
4129 "notNull": false
4130 }
4131 },
4132 "indexes": {},
4133 "foreignKeys": {
4134 "preview_deployments_applicationId_application_applicationId_fk": {
4135 "name": "preview_deployments_applicationId_application_applicationId_fk",
4136 "tableFrom": "preview_deployments",
4137 "tableTo": "application",
4138 "columnsFrom": [
4139 "applicationId"
4140 ],
4141 "columnsTo": [
4142 "applicationId"
4143 ],
4144 "onDelete": "cascade",
4145 "onUpdate": "no action"
4146 },
4147 "preview_deployments_domainId_domain_domainId_fk": {
4148 "name": "preview_deployments_domainId_domain_domainId_fk",
4149 "tableFrom": "preview_deployments",
4150 "tableTo": "domain",
4151 "columnsFrom": [
4152 "domainId"
4153 ],
4154 "columnsTo": [
4155 "domainId"
4156 ],
4157 "onDelete": "cascade",
4158 "onUpdate": "no action"
4159 }
4160 },
4161 "compositePrimaryKeys": {},
4162 "uniqueConstraints": {
4163 "preview_deployments_appName_unique": {
4164 "name": "preview_deployments_appName_unique",
4165 "nullsNotDistinct": false,
4166 "columns": [
4167 "appName"
4168 ]
4169 }
4170 },
4171 "policies": {},
4172 "checkConstraints": {},
4173 "isRLSEnabled": false
4174 },
4175 "public.ai": {
4176 "name": "ai",
4177 "schema": "",
4178 "columns": {
4179 "aiId": {
4180 "name": "aiId",
4181 "type": "text",
4182 "primaryKey": true,
4183 "notNull": true
4184 },
4185 "name": {
4186 "name": "name",
4187 "type": "text",
4188 "primaryKey": false,
4189 "notNull": true
4190 },
4191 "apiUrl": {
4192 "name": "apiUrl",
4193 "type": "text",
4194 "primaryKey": false,
4195 "notNull": true
4196 },
4197 "apiKey": {
4198 "name": "apiKey",
4199 "type": "text",
4200 "primaryKey": false,
4201 "notNull": true
4202 },
4203 "model": {
4204 "name": "model",
4205 "type": "text",
4206 "primaryKey": false,
4207 "notNull": true
4208 },
4209 "isEnabled": {
4210 "name": "isEnabled",
4211 "type": "boolean",
4212 "primaryKey": false,
4213 "notNull": true,
4214 "default": true
4215 },
4216 "organizationId": {
4217 "name": "organizationId",
4218 "type": "text",
4219 "primaryKey": false,
4220 "notNull": true
4221 },
4222 "createdAt": {
4223 "name": "createdAt",
4224 "type": "text",
4225 "primaryKey": false,
4226 "notNull": true
4227 }
4228 },
4229 "indexes": {},
4230 "foreignKeys": {
4231 "ai_organizationId_organization_id_fk": {
4232 "name": "ai_organizationId_organization_id_fk",
4233 "tableFrom": "ai",
4234 "tableTo": "organization",
4235 "columnsFrom": [
4236 "organizationId"
4237 ],
4238 "columnsTo": [
4239 "id"
4240 ],
4241 "onDelete": "cascade",
4242 "onUpdate": "no action"
4243 }
4244 },
4245 "compositePrimaryKeys": {},
4246 "uniqueConstraints": {},
4247 "policies": {},
4248 "checkConstraints": {},
4249 "isRLSEnabled": false
4250 },
4251 "public.account": {
4252 "name": "account",
4253 "schema": "",
4254 "columns": {
4255 "id": {
4256 "name": "id",
4257 "type": "text",
4258 "primaryKey": true,
4259 "notNull": true
4260 },
4261 "account_id": {
4262 "name": "account_id",
4263 "type": "text",
4264 "primaryKey": false,
4265 "notNull": true
4266 },
4267 "provider_id": {
4268 "name": "provider_id",
4269 "type": "text",
4270 "primaryKey": false,
4271 "notNull": true
4272 },
4273 "user_id": {
4274 "name": "user_id",
4275 "type": "text",
4276 "primaryKey": false,
4277 "notNull": true
4278 },
4279 "access_token": {
4280 "name": "access_token",
4281 "type": "text",
4282 "primaryKey": false,
4283 "notNull": false
4284 },
4285 "refresh_token": {
4286 "name": "refresh_token",
4287 "type": "text",
4288 "primaryKey": false,
4289 "notNull": false
4290 },
4291 "id_token": {
4292 "name": "id_token",
4293 "type": "text",
4294 "primaryKey": false,
4295 "notNull": false
4296 },
4297 "access_token_expires_at": {
4298 "name": "access_token_expires_at",
4299 "type": "timestamp",
4300 "primaryKey": false,
4301 "notNull": false
4302 },
4303 "refresh_token_expires_at": {
4304 "name": "refresh_token_expires_at",
4305 "type": "timestamp",
4306 "primaryKey": false,
4307 "notNull": false
4308 },
4309 "scope": {
4310 "name": "scope",
4311 "type": "text",
4312 "primaryKey": false,
4313 "notNull": false
4314 },
4315 "password": {
4316 "name": "password",
4317 "type": "text",
4318 "primaryKey": false,
4319 "notNull": false
4320 },
4321 "is2FAEnabled": {
4322 "name": "is2FAEnabled",
4323 "type": "boolean",
4324 "primaryKey": false,
4325 "notNull": true,
4326 "default": false
4327 },
4328 "created_at": {
4329 "name": "created_at",
4330 "type": "timestamp",
4331 "primaryKey": false,
4332 "notNull": true
4333 },
4334 "updated_at": {
4335 "name": "updated_at",
4336 "type": "timestamp",
4337 "primaryKey": false,
4338 "notNull": true
4339 },
4340 "resetPasswordToken": {
4341 "name": "resetPasswordToken",
4342 "type": "text",
4343 "primaryKey": false,
4344 "notNull": false
4345 },
4346 "resetPasswordExpiresAt": {
4347 "name": "resetPasswordExpiresAt",
4348 "type": "text",
4349 "primaryKey": false,
4350 "notNull": false
4351 },
4352 "confirmationToken": {
4353 "name": "confirmationToken",
4354 "type": "text",
4355 "primaryKey": false,
4356 "notNull": false
4357 },
4358 "confirmationExpiresAt": {
4359 "name": "confirmationExpiresAt",
4360 "type": "text",
4361 "primaryKey": false,
4362 "notNull": false
4363 }
4364 },
4365 "indexes": {},
4366 "foreignKeys": {
4367 "account_user_id_user_temp_id_fk": {
4368 "name": "account_user_id_user_temp_id_fk",
4369 "tableFrom": "account",
4370 "tableTo": "user_temp",
4371 "columnsFrom": [
4372 "user_id"
4373 ],
4374 "columnsTo": [
4375 "id"
4376 ],
4377 "onDelete": "cascade",
4378 "onUpdate": "no action"
4379 }
4380 },
4381 "compositePrimaryKeys": {},
4382 "uniqueConstraints": {},
4383 "policies": {},
4384 "checkConstraints": {},
4385 "isRLSEnabled": false
4386 },
4387 "public.apikey": {
4388 "name": "apikey",
4389 "schema": "",
4390 "columns": {
4391 "id": {
4392 "name": "id",
4393 "type": "text",
4394 "primaryKey": true,
4395 "notNull": true
4396 },
4397 "name": {
4398 "name": "name",
4399 "type": "text",
4400 "primaryKey": false,
4401 "notNull": false
4402 },
4403 "start": {
4404 "name": "start",
4405 "type": "text",
4406 "primaryKey": false,
4407 "notNull": false
4408 },
4409 "prefix": {
4410 "name": "prefix",
4411 "type": "text",
4412 "primaryKey": false,
4413 "notNull": false
4414 },
4415 "key": {
4416 "name": "key",
4417 "type": "text",
4418 "primaryKey": false,
4419 "notNull": true
4420 },
4421 "user_id": {
4422 "name": "user_id",
4423 "type": "text",
4424 "primaryKey": false,
4425 "notNull": true
4426 },
4427 "refill_interval": {
4428 "name": "refill_interval",
4429 "type": "integer",
4430 "primaryKey": false,
4431 "notNull": false
4432 },
4433 "refill_amount": {
4434 "name": "refill_amount",
4435 "type": "integer",
4436 "primaryKey": false,
4437 "notNull": false
4438 },
4439 "last_refill_at": {
4440 "name": "last_refill_at",
4441 "type": "timestamp",
4442 "primaryKey": false,
4443 "notNull": false
4444 },
4445 "enabled": {
4446 "name": "enabled",
4447 "type": "boolean",
4448 "primaryKey": false,
4449 "notNull": false
4450 },
4451 "rate_limit_enabled": {
4452 "name": "rate_limit_enabled",
4453 "type": "boolean",
4454 "primaryKey": false,
4455 "notNull": false
4456 },
4457 "rate_limit_time_window": {
4458 "name": "rate_limit_time_window",
4459 "type": "integer",
4460 "primaryKey": false,
4461 "notNull": false
4462 },
4463 "rate_limit_max": {
4464 "name": "rate_limit_max",
4465 "type": "integer",
4466 "primaryKey": false,
4467 "notNull": false
4468 },
4469 "request_count": {
4470 "name": "request_count",
4471 "type": "integer",
4472 "primaryKey": false,
4473 "notNull": false
4474 },
4475 "remaining": {
4476 "name": "remaining",
4477 "type": "integer",
4478 "primaryKey": false,
4479 "notNull": false
4480 },
4481 "last_request": {
4482 "name": "last_request",
4483 "type": "timestamp",
4484 "primaryKey": false,
4485 "notNull": false
4486 },
4487 "expires_at": {
4488 "name": "expires_at",
4489 "type": "timestamp",
4490 "primaryKey": false,
4491 "notNull": false
4492 },
4493 "created_at": {
4494 "name": "created_at",
4495 "type": "timestamp",
4496 "primaryKey": false,
4497 "notNull": true
4498 },
4499 "updated_at": {
4500 "name": "updated_at",
4501 "type": "timestamp",
4502 "primaryKey": false,
4503 "notNull": true
4504 },
4505 "permissions": {
4506 "name": "permissions",
4507 "type": "text",
4508 "primaryKey": false,
4509 "notNull": false
4510 },
4511 "metadata": {
4512 "name": "metadata",
4513 "type": "text",
4514 "primaryKey": false,
4515 "notNull": false
4516 }
4517 },
4518 "indexes": {},
4519 "foreignKeys": {
4520 "apikey_user_id_user_temp_id_fk": {
4521 "name": "apikey_user_id_user_temp_id_fk",
4522 "tableFrom": "apikey",
4523 "tableTo": "user_temp",
4524 "columnsFrom": [
4525 "user_id"
4526 ],
4527 "columnsTo": [
4528 "id"
4529 ],
4530 "onDelete": "cascade",
4531 "onUpdate": "no action"
4532 }
4533 },
4534 "compositePrimaryKeys": {},
4535 "uniqueConstraints": {},
4536 "policies": {},
4537 "checkConstraints": {},
4538 "isRLSEnabled": false
4539 },
4540 "public.invitation": {
4541 "name": "invitation",
4542 "schema": "",
4543 "columns": {
4544 "id": {
4545 "name": "id",
4546 "type": "text",
4547 "primaryKey": true,
4548 "notNull": true
4549 },
4550 "organization_id": {
4551 "name": "organization_id",
4552 "type": "text",
4553 "primaryKey": false,
4554 "notNull": true
4555 },
4556 "email": {
4557 "name": "email",
4558 "type": "text",
4559 "primaryKey": false,
4560 "notNull": true
4561 },
4562 "role": {
4563 "name": "role",
4564 "type": "text",
4565 "primaryKey": false,
4566 "notNull": false
4567 },
4568 "status": {
4569 "name": "status",
4570 "type": "text",
4571 "primaryKey": false,
4572 "notNull": true
4573 },
4574 "expires_at": {
4575 "name": "expires_at",
4576 "type": "timestamp",
4577 "primaryKey": false,
4578 "notNull": true
4579 },
4580 "inviter_id": {
4581 "name": "inviter_id",
4582 "type": "text",
4583 "primaryKey": false,
4584 "notNull": true
4585 },
4586 "team_id": {
4587 "name": "team_id",
4588 "type": "text",
4589 "primaryKey": false,
4590 "notNull": false
4591 }
4592 },
4593 "indexes": {},
4594 "foreignKeys": {
4595 "invitation_organization_id_organization_id_fk": {
4596 "name": "invitation_organization_id_organization_id_fk",
4597 "tableFrom": "invitation",
4598 "tableTo": "organization",
4599 "columnsFrom": [
4600 "organization_id"
4601 ],
4602 "columnsTo": [
4603 "id"
4604 ],
4605 "onDelete": "cascade",
4606 "onUpdate": "no action"
4607 },
4608 "invitation_inviter_id_user_temp_id_fk": {
4609 "name": "invitation_inviter_id_user_temp_id_fk",
4610 "tableFrom": "invitation",
4611 "tableTo": "user_temp",
4612 "columnsFrom": [
4613 "inviter_id"
4614 ],
4615 "columnsTo": [
4616 "id"
4617 ],
4618 "onDelete": "cascade",
4619 "onUpdate": "no action"
4620 }
4621 },
4622 "compositePrimaryKeys": {},
4623 "uniqueConstraints": {},
4624 "policies": {},
4625 "checkConstraints": {},
4626 "isRLSEnabled": false
4627 },
4628 "public.member": {
4629 "name": "member",
4630 "schema": "",
4631 "columns": {
4632 "id": {
4633 "name": "id",
4634 "type": "text",
4635 "primaryKey": true,
4636 "notNull": true
4637 },
4638 "organization_id": {
4639 "name": "organization_id",
4640 "type": "text",
4641 "primaryKey": false,
4642 "notNull": true
4643 },
4644 "user_id": {
4645 "name": "user_id",
4646 "type": "text",
4647 "primaryKey": false,
4648 "notNull": true
4649 },
4650 "role": {
4651 "name": "role",
4652 "type": "text",
4653 "primaryKey": false,
4654 "notNull": true
4655 },
4656 "created_at": {
4657 "name": "created_at",
4658 "type": "timestamp",
4659 "primaryKey": false,
4660 "notNull": true
4661 },
4662 "team_id": {
4663 "name": "team_id",
4664 "type": "text",
4665 "primaryKey": false,
4666 "notNull": false
4667 },
4668 "canCreateProjects": {
4669 "name": "canCreateProjects",
4670 "type": "boolean",
4671 "primaryKey": false,
4672 "notNull": true,
4673 "default": false
4674 },
4675 "canAccessToSSHKeys": {
4676 "name": "canAccessToSSHKeys",
4677 "type": "boolean",
4678 "primaryKey": false,
4679 "notNull": true,
4680 "default": false
4681 },
4682 "canCreateServices": {
4683 "name": "canCreateServices",
4684 "type": "boolean",
4685 "primaryKey": false,
4686 "notNull": true,
4687 "default": false
4688 },
4689 "canDeleteProjects": {
4690 "name": "canDeleteProjects",
4691 "type": "boolean",
4692 "primaryKey": false,
4693 "notNull": true,
4694 "default": false
4695 },
4696 "canDeleteServices": {
4697 "name": "canDeleteServices",
4698 "type": "boolean",
4699 "primaryKey": false,
4700 "notNull": true,
4701 "default": false
4702 },
4703 "canAccessToDocker": {
4704 "name": "canAccessToDocker",
4705 "type": "boolean",
4706 "primaryKey": false,
4707 "notNull": true,
4708 "default": false
4709 },
4710 "canAccessToAPI": {
4711 "name": "canAccessToAPI",
4712 "type": "boolean",
4713 "primaryKey": false,
4714 "notNull": true,
4715 "default": false
4716 },
4717 "canAccessToGitProviders": {
4718 "name": "canAccessToGitProviders",
4719 "type": "boolean",
4720 "primaryKey": false,
4721 "notNull": true,
4722 "default": false
4723 },
4724 "canAccessToTraefikFiles": {
4725 "name": "canAccessToTraefikFiles",
4726 "type": "boolean",
4727 "primaryKey": false,
4728 "notNull": true,
4729 "default": false
4730 },
4731 "accesedProjects": {
4732 "name": "accesedProjects",
4733 "type": "text[]",
4734 "primaryKey": false,
4735 "notNull": true,
4736 "default": "ARRAY[]::text[]"
4737 },
4738 "accesedServices": {
4739 "name": "accesedServices",
4740 "type": "text[]",
4741 "primaryKey": false,
4742 "notNull": true,
4743 "default": "ARRAY[]::text[]"
4744 }
4745 },
4746 "indexes": {},
4747 "foreignKeys": {
4748 "member_organization_id_organization_id_fk": {
4749 "name": "member_organization_id_organization_id_fk",
4750 "tableFrom": "member",
4751 "tableTo": "organization",
4752 "columnsFrom": [
4753 "organization_id"
4754 ],
4755 "columnsTo": [
4756 "id"
4757 ],
4758 "onDelete": "cascade",
4759 "onUpdate": "no action"
4760 },
4761 "member_user_id_user_temp_id_fk": {
4762 "name": "member_user_id_user_temp_id_fk",
4763 "tableFrom": "member",
4764 "tableTo": "user_temp",
4765 "columnsFrom": [
4766 "user_id"
4767 ],
4768 "columnsTo": [
4769 "id"
4770 ],
4771 "onDelete": "cascade",
4772 "onUpdate": "no action"
4773 }
4774 },
4775 "compositePrimaryKeys": {},
4776 "uniqueConstraints": {},
4777 "policies": {},
4778 "checkConstraints": {},
4779 "isRLSEnabled": false
4780 },
4781 "public.organization": {
4782 "name": "organization",
4783 "schema": "",
4784 "columns": {
4785 "id": {
4786 "name": "id",
4787 "type": "text",
4788 "primaryKey": true,
4789 "notNull": true
4790 },
4791 "name": {
4792 "name": "name",
4793 "type": "text",
4794 "primaryKey": false,
4795 "notNull": true
4796 },
4797 "slug": {
4798 "name": "slug",
4799 "type": "text",
4800 "primaryKey": false,
4801 "notNull": false
4802 },
4803 "logo": {
4804 "name": "logo",
4805 "type": "text",
4806 "primaryKey": false,
4807 "notNull": false
4808 },
4809 "created_at": {
4810 "name": "created_at",
4811 "type": "timestamp",
4812 "primaryKey": false,
4813 "notNull": true
4814 },
4815 "metadata": {
4816 "name": "metadata",
4817 "type": "text",
4818 "primaryKey": false,
4819 "notNull": false
4820 },
4821 "owner_id": {
4822 "name": "owner_id",
4823 "type": "text",
4824 "primaryKey": false,
4825 "notNull": true
4826 }
4827 },
4828 "indexes": {},
4829 "foreignKeys": {
4830 "organization_owner_id_user_temp_id_fk": {
4831 "name": "organization_owner_id_user_temp_id_fk",
4832 "tableFrom": "organization",
4833 "tableTo": "user_temp",
4834 "columnsFrom": [
4835 "owner_id"
4836 ],
4837 "columnsTo": [
4838 "id"
4839 ],
4840 "onDelete": "cascade",
4841 "onUpdate": "no action"
4842 }
4843 },
4844 "compositePrimaryKeys": {},
4845 "uniqueConstraints": {
4846 "organization_slug_unique": {
4847 "name": "organization_slug_unique",
4848 "nullsNotDistinct": false,
4849 "columns": [
4850 "slug"
4851 ]
4852 }
4853 },
4854 "policies": {},
4855 "checkConstraints": {},
4856 "isRLSEnabled": false
4857 },
4858 "public.two_factor": {
4859 "name": "two_factor",
4860 "schema": "",
4861 "columns": {
4862 "id": {
4863 "name": "id",
4864 "type": "text",
4865 "primaryKey": true,
4866 "notNull": true
4867 },
4868 "secret": {
4869 "name": "secret",
4870 "type": "text",
4871 "primaryKey": false,
4872 "notNull": true
4873 },
4874 "backup_codes": {
4875 "name": "backup_codes",
4876 "type": "text",
4877 "primaryKey": false,
4878 "notNull": true
4879 },
4880 "user_id": {
4881 "name": "user_id",
4882 "type": "text",
4883 "primaryKey": false,
4884 "notNull": true
4885 }
4886 },
4887 "indexes": {},
4888 "foreignKeys": {
4889 "two_factor_user_id_user_temp_id_fk": {
4890 "name": "two_factor_user_id_user_temp_id_fk",
4891 "tableFrom": "two_factor",
4892 "tableTo": "user_temp",
4893 "columnsFrom": [
4894 "user_id"
4895 ],
4896 "columnsTo": [
4897 "id"
4898 ],
4899 "onDelete": "cascade",
4900 "onUpdate": "no action"
4901 }
4902 },
4903 "compositePrimaryKeys": {},
4904 "uniqueConstraints": {},
4905 "policies": {},
4906 "checkConstraints": {},
4907 "isRLSEnabled": false
4908 },
4909 "public.verification": {
4910 "name": "verification",
4911 "schema": "",
4912 "columns": {
4913 "id": {
4914 "name": "id",
4915 "type": "text",
4916 "primaryKey": true,
4917 "notNull": true
4918 },
4919 "identifier": {
4920 "name": "identifier",
4921 "type": "text",
4922 "primaryKey": false,
4923 "notNull": true
4924 },
4925 "value": {
4926 "name": "value",
4927 "type": "text",
4928 "primaryKey": false,
4929 "notNull": true
4930 },
4931 "expires_at": {
4932 "name": "expires_at",
4933 "type": "timestamp",
4934 "primaryKey": false,
4935 "notNull": true
4936 },
4937 "created_at": {
4938 "name": "created_at",
4939 "type": "timestamp",
4940 "primaryKey": false,
4941 "notNull": false
4942 },
4943 "updated_at": {
4944 "name": "updated_at",
4945 "type": "timestamp",
4946 "primaryKey": false,
4947 "notNull": false
4948 }
4949 },
4950 "indexes": {},
4951 "foreignKeys": {},
4952 "compositePrimaryKeys": {},
4953 "uniqueConstraints": {},
4954 "policies": {},
4955 "checkConstraints": {},
4956 "isRLSEnabled": false
4957 }
4958 },
4959 "enums": {
4960 "public.buildType": {
4961 "name": "buildType",
4962 "schema": "public",
4963 "values": [
4964 "dockerfile",
4965 "heroku_buildpacks",
4966 "paketo_buildpacks",
4967 "nixpacks",
4968 "static",
4969 "railpack"
4970 ]
4971 },
4972 "public.sourceType": {
4973 "name": "sourceType",
4974 "schema": "public",
4975 "values": [
4976 "docker",
4977 "git",
4978 "github",
4979 "gitlab",
4980 "bitbucket",
4981 "drop"
4982 ]
4983 },
4984 "public.domainType": {
4985 "name": "domainType",
4986 "schema": "public",
4987 "values": [
4988 "compose",
4989 "application",
4990 "preview"
4991 ]
4992 },
4993 "public.databaseType": {
4994 "name": "databaseType",
4995 "schema": "public",
4996 "values": [
4997 "postgres",
4998 "mariadb",
4999 "mysql",

127 more lines aren’t shown here.

apps/dokploy/drizzle/meta/_journal.json+7−0
@@ -491,6 +491,13 @@ · 490 unmodified lines
491 "when": 1741152916611,491 "when": 1741152916611,
492 "tag": "0069_legal_bill_hollister",492 "tag": "0069_legal_bill_hollister",
493 "breakpoints": true493 "breakpoints": true
494 },
495 {
496 "idx": 70,
497 "version": "7",
498 "when": 1741322697251,
499 "tag": "0070_useful_serpent_society",
500 "breakpoints": true
494 }501 }
495 ]502 ]
496}503}
apps/dokploy/server/api/routers/destination.ts+2−1
@@ -21,7 +21,7 @@ import { · 20 unmodified lines
21 updateDestinationById,21 updateDestinationById,
22} from "@dokploy/server";22} from "@dokploy/server";
23import { TRPCError } from "@trpc/server";23import { TRPCError } from "@trpc/server";
24import { eq } from "drizzle-orm";24import { eq, desc } from "drizzle-orm";
25 25
26export const destinationRouter = createTRPCRouter({26export const destinationRouter = createTRPCRouter({
27 create: adminProcedure27 create: adminProcedure
@@ -98,6 +98,7 @@ export const destinationRouter = createTRPCRouter({ · 70 unmodified lines
98 all: protectedProcedure.query(async ({ ctx }) => {98 all: protectedProcedure.query(async ({ ctx }) => {
99 return await db.query.destinations.findMany({99 return await db.query.destinations.findMany({
100 where: eq(destinations.organizationId, ctx.session.activeOrganizationId),100 where: eq(destinations.organizationId, ctx.session.activeOrganizationId),
101 orderBy: [desc(destinations.createdAt)],
101 });102 });
102 }),103 }),
103 remove: adminProcedure104 remove: adminProcedure
packages/server/src/db/schema/destination.ts+2−1
@@ -1,5 +1,5 @@
1import { relations } from "drizzle-orm";1import { relations } from "drizzle-orm";
2import { pgTable, text } from "drizzle-orm/pg-core";2import { pgTable, text, timestamp } from "drizzle-orm/pg-core";
3import { createInsertSchema } from "drizzle-zod";3import { createInsertSchema } from "drizzle-zod";
4import { nanoid } from "nanoid";4import { nanoid } from "nanoid";
5import { z } from "zod";5import { z } from "zod";
@@ -21,6 +21,7 @@ export const destinations = pgTable("destination", { · 15 unmodified lines
21 organizationId: text("organizationId")21 organizationId: text("organizationId")
22 .notNull()22 .notNull()
23 .references(() => organization.id, { onDelete: "cascade" }),23 .references(() => organization.id, { onDelete: "cascade" }),
24 createdAt: timestamp("createdAt").notNull().defaultNow(),
24});25});
25 26
26export const destinationsRelations = relations(27export const destinationsRelations = relations(