History

Resolve merge conflicts in drizzle migrations

Yash Kumar committed 2 months ago

Commit caca3c12 parents 6ed5746 1e6ab0f15 files · +9284 −23Browse files

Unified · Split

15 files
  1. apps/dokploy/components/dashboard/application/domains/handle-domain.tsx +12 −7
  2. apps/dokploy/components/dashboard/billing/trial-banner.tsx +34 −0
  3. apps/dokploy/components/dashboard/onboarding/steps/plan-step.tsx +3 −3
  4. apps/dokploy/components/dashboard/settings/billing/show-billing.tsx +3 −3
  5. apps/dokploy/components/layouts/side.tsx +2 −0
  6. apps/dokploy/components/proprietary/sso/register-oidc-dialog.tsx +7 −3
  7. apps/dokploy/drizzle/0194_acoustic_prima.sql +1 −0
  8. apps/dokploy/drizzle/0195_classy_whirlwind.sql +0 −0
  9. apps/dokploy/drizzle/meta/0194_snapshot.json +9 −2
  10. apps/dokploy/drizzle/meta/0195_snapshot.json +9163 −0
  11. apps/dokploy/drizzle/meta/_journal.json +9 −2
  12. apps/dokploy/package.json +1 −1
  13. packages/server/auth-schema2.ts +32 −0
  14. packages/server/src/db/schema/sso.ts +2 −1
  15. packages/server/src/lib/auth-cli.ts +6 −1
apps/dokploy/components/dashboard/application/domains/handle-domain.tsx+12−7
@@ -156,7 +156,7 @@ export const AddDomain = ({ id, type, domainId = "", children }: Props) => { · 155 unmodified lines
156156 domainId,
157157 },
158158 {
159− enabled: !!domainId,
159+ enabled: isOpen && !!domainId,
160160 },
161161 );
162162
@@ -167,7 +167,7 @@ export const AddDomain = ({ id, type, domainId = "", children }: Props) => { · 4 unmodified lines
167167 applicationId: id,
168168 },
169169 {
170− enabled: !!id,
170+ enabled: isOpen && !!id,
171171 },
172172 )
173173 : api.compose.one.useQuery(
@@ -175,7 +175,7 @@ export const AddDomain = ({ id, type, domainId = "", children }: Props) => { · 1 unmodified line
175175 composeId: id,
176176 },
177177 {
178− enabled: !!id,
178+ enabled: isOpen && !!id,
179179 },
180180 );
181181
@@ -187,9 +187,14 @@ export const AddDomain = ({ id, type, domainId = "", children }: Props) => { · 5 unmodified lines
187187 api.domain.generateDomain.useMutation();
188188
189189 const { data: canGenerateTraefikMeDomains } =
190− api.domain.canGenerateTraefikMeDomains.useQuery({
191− serverId: application?.serverId || "",
192− });
190+ api.domain.canGenerateTraefikMeDomains.useQuery(
191+ {
192+ serverId: application?.serverId || "",
193+ },
194+ {
195+ enabled: isOpen,
196+ },
197+ );
193198
194199 const {
195200 data: services,
@@ -204,7 +209,7 @@ export const AddDomain = ({ id, type, domainId = "", children }: Props) => { · 8 unmodified lines
204209 {
205210 retry: false,
206211 refetchOnWindowFocus: false,
207− enabled: type === "compose" && !!id,
212+ enabled: isOpen && type === "compose" && !!id,
208213 },
209214 );
210215
apps/dokploy/components/dashboard/billing/trial-banner.tsx+34−0
@@ -0,0 +1,34 @@
1+import { Rocket } from "lucide-react";
2+import { useRouter } from "next/router";
3+import { Button } from "@/components/ui/button";
4+import { api } from "@/utils/api";
5+
6+export const TrialBanner = () => {
7+ const router = useRouter();
8+ const { data: billingStatus } = api.stripe.getBillingStatus.useQuery();
9+
10+ if (!billingStatus?.isOnTrial) {
11+ return null;
12+ }
13+
14+ const daysRemaining = billingStatus.trialDaysRemaining ?? 0;
15+
16+ return (
17+ <div className="sticky top-0 z-20 mx-4 mt-4 flex flex-wrap items-center justify-center gap-x-3 gap-y-2 rounded-lg border border-primary/20 bg-primary/10 px-4 py-2 text-sm">
18+ <span className="flex items-center gap-2">
19+ <Rocket className="h-4 w-4 text-primary shrink-0" />
20+ {daysRemaining > 0
21+ ? `You have ${daysRemaining} day${daysRemaining === 1 ? "" : "s"} left in your free trial.`
22+ : "Your free trial ends today."}
23+ </span>
24+ <Button
25+ size="sm"
26+ variant="default"
27+ className="h-7"
28+ onClick={() => router.push("/dashboard/settings/billing")}
29+ >
30+ Upgrade now
31+ </Button>
32+ </div>
33+ );
34+};
apps/dokploy/components/dashboard/onboarding/steps/plan-step.tsx+3−3
@@ -97,7 +97,7 @@ export const PlanStep = ({ onNext }: Props) => { · 96 unmodified lines
9797 </p>
9898 <ul className="flex flex-col gap-1.5 mt-4">
9999 {[
100− "1 server included",
100+ "Setup 1 server",
101101 "Unlimited apps & databases",
102102 "Community support",
103103 ].map((f) => (
@@ -140,7 +140,7 @@ export const PlanStep = ({ onNext }: Props) => { · 36 unmodified lines
140140 </p>
141141 <ul className="flex flex-col gap-1.5 mt-4">
142142 {[
143− "1 server included",
143+ "Setup 1 server",
144144 "Unlimited apps & databases",
145145 "2 environments",
146146 "Community support",
@@ -183,7 +183,7 @@ export const PlanStep = ({ onNext }: Props) => { · 36 unmodified lines
183183 </p>
184184 <ul className="flex flex-col gap-1.5 mt-4">
185185 {[
186− `${STARTUP_SERVERS_INCLUDED} servers included`,
186+ `Setup up to ${STARTUP_SERVERS_INCLUDED} servers`,
187187 "Unlimited users & environments",
188188 "Basic RBAC + 2FA",
189189 "Email & chat support",
apps/dokploy/components/dashboard/settings/billing/show-billing.tsx+3−3
@@ -333,7 +333,7 @@ export const ShowBilling = () => { · 332 unmodified lines
333333 </span>
334334 <ul className="flex flex-col gap-1 mt-1">
335335 {[
336− "1 server included",
336+ "Setup 1 server",
337337 "Unlimited apps & databases",
338338 "Community support",
339339 ].map((feature) => (
@@ -917,7 +917,7 @@ export const ShowBilling = () => { · 577 unmodified lines
917917 "Unlimited Deployments",
918918 "Unlimited Databases",
919919 "Unlimited Applications",
920− "1 Server Included",
920+ "Setup 1 Server",
921921 "1 Organization",
922922 "1 User",
923923 "2 Environments",
@@ -1049,7 +1049,7 @@ export const ShowBilling = () => { · 125 unmodified lines
10491049 All the features of Hobby, plus…
10501050 </li>
10511051 {[
1052− "3 Servers Included",
1052+ "Setup up to 3 Servers",
10531053 "3 Organizations",
10541054 "Unlimited Users",
10551055 "Unlimited Environments",
apps/dokploy/components/layouts/side.tsx+2−0
@@ -101,6 +101,7 @@ import { authClient } from "@/lib/auth-client"; · 100 unmodified lines
101101 import { cn } from "@/lib/utils";
102102 import type { AppRouter } from "@/server/api/root";
103103 import { api } from "@/utils/api";
104+import { TrialBanner } from "../dashboard/billing/trial-banner";
104105 import { AddOrganization } from "../dashboard/organization/handle-organization";
105106 import { DialogAction } from "../shared/dialog-action";
106107 import { Logo } from "../shared/logo";
@@ -1229,6 +1230,7 @@ export default function Page({ children }: Props) { · 1122 unmodified lines
12291230 <SidebarRail />
12301231 </Sidebar>
12311232 <SidebarInset>
1233+ {isCloud === true && <TrialBanner />}
12321234 {!includesProjects && (
12331235 <header className="flex h-16 shrink-0 items-center gap-2 transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-12">
12341236 <div className="flex items-center justify-between w-full px-4">
apps/dokploy/components/proprietary/sso/register-oidc-dialog.tsx+7−3
@@ -83,6 +83,11 @@ const azureMapping: ClaimMapping = { · 82 unmodified lines
8383 image: "",
8484 };
8585
86+// id: "sub",
87+// email: "preferred_username",
88+// emailVerified: "email_verified",
89+// name: "name",
90+
8691 const genericMapping: ClaimMapping = {
8792 id: "sub",
8893 email: "email",
@@ -228,10 +233,9 @@ export function RegisterOidcDialog({ · 139 unmodified lines
228233 mapping: {
229234 id: oidc?.mapping?.id ?? baseMapping.id,
230235 email: oidc?.mapping?.email ?? baseMapping.email,
231− emailVerified:
232− oidc?.mapping?.emailVerified ?? baseMapping.emailVerified,
236+ emailVerified: oidc?.mapping?.emailVerified ?? "",
233237 name: oidc?.mapping?.name ?? baseMapping.name,
234− image: oidc?.mapping?.image ?? baseMapping.image,
238+ image: oidc?.mapping?.image ?? "",
235239 },
236240 });
237241 }, [data, open, form]);
apps/dokploy/drizzle/0194_acoustic_prima.sql+1−0
@@ -0,0 +1 @@
1+ALTER TABLE "sso_provider" ADD COLUMN "domain_verified" boolean DEFAULT true NOT NULL;
apps/dokploy/drizzle/0195_classy_whirlwind.sqlrenamed from apps/dokploy/drizzle/0194_freezing_skin.sql+0−0

File renamed without changes.

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

4164 more lines aren’t shown here.

apps/dokploy/drizzle/meta/_journal.json+9−2
@@ -1363,8 +1363,15 @@ · 1362 unmodified lines
13631363 {
13641364 "idx": 194,
13651365 "version": "7",
1366− "when": 1788849747825,
1367− "tag": "0194_freezing_skin",
1366+ "when": 1788858506799,
1367+ "tag": "0194_acoustic_prima",
1368+ "breakpoints": true
1369+ },
1370+ {
1371+ "idx": 195,
1372+ "version": "7",
1373+ "when": 1788867370653,
1374+ "tag": "0195_classy_whirlwind",
13681375 "breakpoints": true
13691376 }
13701377 ]
apps/dokploy/package.json+1−1
@@ -1,6 +1,6 @@
11 {
22 "name": "dokploy",
3− "version": "v0.30.5",
3+ "version": "v0.30.6",
44 "private": true,
55 "license": "Apache-2.0",
66 "type": "module",
packages/server/auth-schema2.ts+32−0
@@ -135,6 +135,7 @@ export const ssoProvider = pgTable("sso_provider", { · 134 unmodified lines
135135 providerId: text("provider_id").notNull().unique(),
136136 organizationId: text("organization_id"),
137137 domain: text("domain").notNull(),
138+ domainVerified: boolean("domain_verified"),
138139 });
139140
140141 export const twoFactor = pgTable(
@@ -156,6 +157,29 @@ export const twoFactor = pgTable( · 15 unmodified lines
156157 ],
157158 );
158159
160+export const passkey = pgTable(
161+ "passkey",
162+ {
163+ id: text("id").primaryKey(),
164+ name: text("name"),
165+ publicKey: text("public_key").notNull(),
166+ userId: text("user_id")
167+ .notNull()
168+ .references(() => user.id, { onDelete: "cascade" }),
169+ credentialID: text("credential_id").notNull(),
170+ counter: integer("counter").notNull(),
171+ deviceType: text("device_type").notNull(),
172+ backedUp: boolean("backed_up").notNull(),
173+ transports: text("transports"),
174+ createdAt: timestamp("created_at"),
175+ aaguid: text("aaguid"),
176+ },
177+ (table) => [
178+ index("passkey_userId_idx").on(table.userId),
179+ index("passkey_credentialID_idx").on(table.credentialID),
180+ ],
181+);
182+
159183 export const organization = pgTable(
160184 "organization",
161185 {
@@ -242,6 +266,7 @@ export const userRelations = relations(user, ({ many }) => ({ · 80 unmodified lines
242266 accounts: many(account),
243267 ssoProviders: many(ssoProvider),
244268 twoFactors: many(twoFactor),
269+ passkeys: many(passkey),
245270 members: many(member),
246271 invitations: many(invitation),
247272 }));
@@ -274,6 +299,13 @@ export const twoFactorRelations = relations(twoFactor, ({ one }) => ({ · 26 unmodified lines
274299 }),
275300 }));
276301
302+export const passkeyRelations = relations(passkey, ({ one }) => ({
303+ user: one(user, {
304+ fields: [passkey.userId],
305+ references: [user.id],
306+ }),
307+}));
308+
277309 export const organizationRelations = relations(organization, ({ many }) => ({
278310 organizationRoles: many(organizationRole),
279311 members: many(member),
packages/server/src/db/schema/sso.ts+2−1
@@ -1,5 +1,5 @@
11 import { relations } from "drizzle-orm";
2−import { pgTable, text, timestamp } from "drizzle-orm/pg-core";
2+import { boolean, pgTable, text, timestamp } from "drizzle-orm/pg-core";
33 import { z } from "zod";
44 import { organization } from "./account";
55 import { user } from "./user";
@@ -15,6 +15,7 @@ export const ssoProvider = pgTable("sso_provider", { · 9 unmodified lines
1515 onDelete: "cascade",
1616 }),
1717 domain: text("domain").notNull(),
18+ domainVerified: boolean("domain_verified").notNull().default(true),
1819 createdAt: timestamp("created_at").notNull().defaultNow(),
1920 });
2021
packages/server/src/lib/auth-cli.ts+6−1
@@ -32,7 +32,12 @@ export const auth = betterAuth({ · 31 unmodified lines
3232 },
3333 plugins: [
3434 apiKey({ enableMetadata: true, references: "user" }),
35− sso(),
35+ sso({
36+ trustEmailVerified: true,
37+ domainVerification: {
38+ enabled: true,
39+ },
40+ }),
3641 twoFactor(),
3742 passkey(),
3843 organization({